программное обеспечение параллельных вычислений

 

параллельные вычисления

 
 

Современные параллельные ЭВМ, построенные по разным архитектурным канонам, и средства программирования для них - это большой и пестрый мир, в который входит современный пользователь, вооруженный, как правило, лишь опытом "последовательного" программирования. Авторы монографии как бы приглашают читателя совершить серию путешествий (число их равно числу глав книги, в которых описаны результаты экспериментальных вычислений на ЭВМ с различными архитектурами) в различные "среды параллельного программирования и вычислений". Впечатляют успехи в области создания параллельных вычислительных систем разных классов.

Однако зарубежный опыт применения таких машин для решения различных научных задач свидетельствует о том, что отношения между программистами и параллельными ЭВМ не всегда носят "дружественный" характер. Программирование для параллельных многопроцессорных систем - это нечто особое. Действительно, процесс программирования, отладки и решения задачи на параллельной ЭВМ сопряжен с возможностью возникновения новых для "последовательного" программиста типов ошибок и ситуаций (блокировки и состязания параллельных процессов, недетерминизм выполнения программы и др.).

Среди них суперЭВМ CRAY Х-МР (одна из наиболее высокопроизводительных современных коммерчески доступных вычислительных систем), суперЭВМ FPS Т фирмы Floating Point System, которая в области построения суперЭВМ стала играть заметную роль. Хотя параллельные ЭВМ становятся все более доступными для современных программистов, количество людей (в промышленности или академии -безразлично), которые действительно могли бы прогонять параллельные программы на ЭВМ, все еще мало. Эксперименты показывают, что любой программист может получить опыт, когда впервые столкнется с прекрасным новым миром параллельного программирования. Программирование для параллельных ЭВМ - это нечто особое, такое же как и компьютерные столы и детская мебель. В Фортране для HEP реализован очень простой и элегантный способ описания операций синхронизации, основанный на использовании ссылок к специальным переменным, имена которых начинаются со знака "доллар" (например, $1).

Такие переменные со знаком доллара размещаются в обычном блоке COMMON и доступны для подпрограмм, которые должны выполняться параллельно. Каждая такая переменная помимо своего обычного для Фортрана значения (целого или вещественного) имеет специальный бит, который указывает, является ли соответствующая переменная свободной или занятой. Попытка присвоить значение занятой переменной должно вызывать задержку процесса до тех пор, пока другой процесс не освободит эту переменную, считав ее значение. Аналогично если некоторый процесс попытается обратиться к значению свободной переменной (обычно такая переменная находится в правой части оператора присваивания), то он автоматически задерживается с помощью эффективного аппаратно реализованного механизма и будет активизирован лишь после того, как другой процесс запишет значение в эту переменную и в результате побочного эффекта переведет ее в состояние "занята".

Для выполнения более одной подпрограммы Фортрана используется оператор CREATE (параллельная версия обычного оператора CALL), который позволяет стартовать отдельным параллельным ветвям вычислений.

Видимо эти два безобидных расширения языка Фортран выпустили на волю "джина параллельных вычислений". Теперь он (не где-нибудь, а в надежном старомодном Фортране) "образовывает" семафоры, замки, процессы или задачи, "занятое ожидание", барьеры, критические секции и мониторы. С другой стороны, программисты, использующие в качестве мебели компьютерные кресла, теперь имеют дело с непредсказуемыми и обычно невоспроизводимыми ситуациями - блокировками (тупиками), зацикливанием при бесполезной передаче сообщений, "гонками" и недетерминизмом. Внезапно даже очень простые задачи, например, узнать как производится мягкая мебель, программируемые опытными программистами, которые были предназначены для того, чтобы идею параллельного программирования сделать практической реальностью, кажется, неизбежно вели к необнаруживаемым, непредсказуемым и абсолютно мистическим ошибкам.

Эти трудности казались значительно сложнее, чем сложности, которые могли быть объяснимы ошибками в аппаратуре и системных средствах, которые естественны для любой очень новой вычислительной системы.

  buy meridia online
 
 
Copyright (c) 2009. Использование материалов данного сайта возможно только при проставлении активной, не закрытой от индексации гиперссылки. http://soft-tlt.ru