Читаем Журнал «Компьютерра» №44 от 29 ноября 2005 года полностью

Грабли третьи: если недостаточное количество объектов синхронизации - зло, ибо программист рискует заполучить время от времени глючащую программу, то переизбыток этих объектов - жуткие вериги на шее проекта. Пусть, скажем, практически любой из наших объектов может изменять игровую землю и стремится получить ее для себя. Поскольку принадлежать двум объектам одновременно земля не сможет, то находится она в каждый момент времени только у одного объекта. Который и будет обрабатываться, а всем остальным потокам придется терпеливо ожидать своей очереди. Получится вот такая картинка (рис. 3), где параллельными вычислениями и не пахнет. С этим успешно борются, беря блокировку ровно на то время, пока она действительно необходима (прочитать состояние земли, проверить его и записать новое состояние), но тогда возникают новые грабли - дедлоки. Предположим, что мы угодили снарядом в землю совсем рядышком от стоящего на ней танка. Пострадала и земля, и танк. Программа добросовестно определяет, что, где и как требуется изменить (поменять рельеф земли и изменить «жизни» у танка), берет первый объект синхронизации «на землю», тянется ко второму объекту синхронизации «на танк»… и тут же виснет. В чем дело? Оказывается, этот танк ждет, когда освободится земля, чтобы внести в нее свои изменения. И пока он земли не дождется, он не отдаст блокировку на самого себя, которая нужна потоку, который «держит» блокировку на ту самую землю. Считаете, что подобный дедлок - надуманная штука? Значит, вы никогда не занимались параллельным программированием: подобные ситуации здесь возникают если не на каждом шагу, то, по крайней мере, очень часто. Еще одна ситуация того же рода - один из потоков взял блокировку на что-то, но забыл освободить, а сторонний поток некстати решил это что-то проверить. Отсюда вытекает второе золотое правило «параллельного» программиста - никогда не пытаться обладать двумя объектами одновременно и тщательно проверять, что все однажды взятые объекты своевременно освобождаются.

Неплохой джентльменский набор, не правда ли? А сколько занятных вопросов связано с работой в «параллельном» режиме стандартных библиотек! К примеру, функция GetHostByAddr в стандартном программном интерфейсе Microsoft, активно использующаяся сетевыми программами, одно время грешила тем, что при ее повторных вызовах с разными адресами из разных потоков выдавала обоим потокам указатель на одну и ту же структуру данных, хотя запрашивали они совсем разное. И если производитель клятвенно заверяет вас, что его библиотека совсем-совсем, ну честно-честно является thread-safe[Безопасной для использования в параллельном режиме], - вспомните, что даже Microsoft нет-нет да и ошибается, модифицируя продукт с десятилетней историей. А о трудности отыскания подобных глюков красноречиво свидетельствует то, сколько потребовалось времени, чтобы GetHostByAddr выловить[Исправили его в Windows XP SP1. Сколько лет он жил никем не замеченный, одному богу известно].


Интерфейс MPI


Еще один стандарт де-факто в мире параллельных вычислений - пакет MPI (Message Passing Interface), тоже разрабатывавшийся как универсальное средство облегчения жизни разработчику параллельного ПО. Только устроено оно совсем иначе, нежели OpenMP, и ориентировано в основном для других, «более возвышенных» целей.

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2000 № 08
«Если», 2000 № 08

ФАНТАСТИКАЕжемесячный журналСодержание:Джеймс Типтри-младший. ДЕВОЧКА, КОТОРУЮ ПОДКЛЮЧИЛИ, рассказВернисаж*Вл. Гаков. ЧУЖАК В ЧУЖОЙ СТРАНЕ, статьяКир Булычёв. ЧЕГО ДУША ЖЕЛАЕТ, рассказВидеодром*Атлас--- Галина Компаниченко. НА РОДИНЕ РОБОТОВ, статья*Скандал сезона--- Вл. Гаков. «НО НЕ ЛЮБИМ МЫ ЕГО НЕ ЗА ЭТО…», статья*Рецензии*Экранизация--- Дмитрий Байкалов. СТРАННАЯ ИСТОРИЯ СО ЗНАМЕНИТЫМ РАССКАЗОМ, статьяБрайан Олдисс. ВИДИМОСТЬ ЖИЗНИ, рассказВладимир Хлумов. МОЛЧАНИЕ КОСМОСА, статьяАлександр Громов. ВЫЧИСЛИТЕЛЬ, повестьДжеймс Келли. КРОШКА-МОШКА-ПАУЧОК, рассказАлександр Ройфе. В ПОИСКАХ НОВОГО ИДЕАЛА, круглый столКонкурс «Альтернативная реальность»*Валерия Илющенко. НАКАЗАНИЕ ПЕРВОЙ СТЕПЕНИ, рассказВладимир Михайлов. ХОЖДЕНИЕ СКВОЗЬ ЭРЫ, окончание эссеРецензииКрупный план*Дмитрий Володихин. ИЛЛЮЗИЯ РЕАЛЬНОСТИ, статья2100: история будущего*Алексей Зарубин. НА ЧАРЕ ВСЕ СПОКОЙНО…, рассказКурсорPersonaliaНа обложке иллюстрация И. Тарачкова к повести Александра Громова «Вычислитель».Иллюстрации А. Филиппова, А. Жабинского, А. Балдина, И. Тарачкова, О. Дунаевой.

Александр Николаевич Громов , Валерия Валерьевна Илющенко , Владимир Гаков , Джеймс Типтри-младший , Журнал «Если»

Фантастика / Научная Фантастика / Журналы, газеты
«Если», 2004 № 03
«Если», 2004 № 03

ФАНТАСТИКАЕжемесячный журналСодержание:Э. К. Грант. ЧЕЛОВЕК, НЕНАВИДЕВШИЙ «КАДИЛЛАКИ», рассказОлег Овчинников. ОПЕРАТОРЫ ОДНОСТОРОННЕЙ СВЯЗИ, рассказМария Галина. ЮГО-ЗАПАДНАЯ ЖЕЛЕЗНАЯ ДОРОГА, рассказНФ-факты**Евгений Харитонов. ПЕРВАЯ ЛЕДИ ФАНТАСТИКИ (очерк)Кит Рид. ФОКУСНАЯ ГРУППА, рассказВидеодром**Мнение***** ВСТРЕЧАЙТЕ КОРОЛЯ, отзывы о фильме, стр. 67-73**Рецензии**ЭкранизацияВл. Гаков. ШТАММ «КРАЙТОН» (статья)Юлий Буркин. ЛЮБИТЬ ДРАКОНА, рассказРоберт Чейз. НЕВИДИМКИ, рассказТерри Пратчетт. СТРАТА, начало романаВернисаж**Вл. Гаков. КАРТОГРАФ ПЛОСКОЙ ЗЕМЛИ (статья, иллюстрации Джоша Кирби)Леонид Кудрявцев. ВЫСШЕЕ МАСТЕРСТВО, повестьВладислав Гончаров. ВОЛШЕБНИКИ В ЗВЕЗДОЛЕТАХ (статья)Экспертиза темыКонкурс «Альтернативная реальность»**Дмитрий Попов. Быть сильным, рассказАлександр Ройфе. ВЗРОСЛОЕ ЧТИВО (статья)РецензииКурсорПерсоналииОбложка Игоря Тарачкова к роману Терри Пратчетта «Страта»

Владимир Гаков , Дмитрий Попов , Леонид Викторович Кудрявцев , Олег Овчинников , Терри Дэвид Джон Пратчетт

Фантастика / Журналы, газеты / Научная Фантастика
«Если», 1998 № 06
«Если», 1998 № 06

Михаил ТЫРИН. ИСТУКАНЗнаете ли вы, что Циолковский все-таки построил космический корабль, а русские купцы торговали с инопланетянами еще в начале века? Если нет, то читайте новую фантастическую повесть калужского автора.Дэвид АЛЕКСАНДЕР, Хейфорд ПИРС. ПОСРЕДНИКОказывается, Посредник — весьма значительное лицо в галактике. И даже лишившись лицензии, он не перестает улаживать конфликты между расами и решать множество других сложных вопросов.Грегори БЕНФОРД. ПОГРУЖЕНИЕОтправляясь в отпуск, на лоно девственной африканской природы, супруги-ученые и не предполагает, какие леденящие душу события их ждут.ДОН УЭББ. ЧУЖАЯ ИГРАПохоже, что авантюристы, мошенники и охотники за кошельками богатых простаков не переведутся никогда и нигде, в том числе и на дальних планетах.Мэл ГИЛДЕН. ЧТО С ХЕРБИ?Такого разнообразия форм инопланетной жизни, как в этом забавном и трогательном рассказе, читатель наверняка еще не встречал.Эллен ГУОН. ДА УСЛЫШИТ НАС ГОСПОДЬ!Пересадочная станция на грани краха, но никто из специалистов не способен «договориться» с центральным компьютером…Филип ДЖЕННИНГС. ВИРТУАЛЬНАЯ КАБАЛАКак отличить реальность от вымысла? Порою это почти невозможно.Константин БЕЛОРУЧЕВ. ПРОГНОЗ? ИМИТАЦИЯ? ВЫМЫСЕЛ…Альтернативный подход к истории известен не только писателям-фантастам, но и самим историкам.Сергей ДЕРЯБИН. ВЫЗОВ ХАОСУМыслящие кристаллы, неорганическая жизнь — насколько это невероятно?Андрей ЧЕРТКОВ. РОМАН С КИБЕРПАНКОМЧитателей ждет «издательская исповедь» страстного поклонника киберпанка.Грегори БЕНФОРД. СВЕЖИЕ НОВОСТИ ИЗ ЦЕНТРА ГАЛАКТИКИИнтервью с корифеем НФ-жанра.КУРСОРЖизнь бьет ключом в мире фантастики — новости, слухи, события, планы…РЕЦЕНЗИИПрежде чем идти в книжный магазин, узнайте мнение рецензентов…Евгений ЛУКИН. «К САТИРЕ ОТНОШУСЬ С ПОДОЗРЕНИЕМ…»В рубрике «Прямой разговор» на вопросы читателей отвечает один из самых популярных отечественных фантастов.ПЕРСОНАЛИИУэбб, Гилден, Гу он и другие.ВЕРНИСАЖПредставляем автора обложки этого номера.ВИДЕОДРОМКлонирование человека: в жизни — пока фантастика, в кино — давно известный метод.Судьба книг Александра Беляева в кинематографе складывалась весьма драматически.Музыка, которая звучит с экрана, стала равноправным действующим лицом многих знаменитых картин.

Владимир Гаков , Грегори (Альберт) Бенфорд , Дмитрий Караваев , Константин Валерьевич Белоручев , Мел (Мэл) Гилден , Сергей Дерябин , Сергей Никифоров , Хэйфорд Пирс

Фантастика / Журналы, газеты / Научная Фантастика