Переход от эталонного языка представления языка программирования. . .
ев такого вида принято считать спецдирективы программного обес-
печения фирмы CONVEX для кластера SPP1000, который является
классическим примером мультипроцессорной архитектуры вычисли-
телей с общей памятью. Язык спецдиректив кластера имеет средства
для указания фрагментов программы, допускающих распараллелива-
ние, и синхронизации выполнения параллельных процессов. Кроме
обычных правил разделения данных процессов на локальные и гло-
бальные данные в этой системе программирования можно учитывать
архитектурные особенности оперативной памяти cc-NUMA класте-
ра SPP1000. Например, обработку «близкорасположенных» сегмен-
тов данных могут выполнять процессы, расположенные на таком же
уровне доступа. С этой проблемой так называемой миграции процес-
сов по ядрам в многоядерных микропроцессорах приходится считать-
ся в современных распределенных вычислениях. Для микропроцес-
соров фирмы НР кластера SPP1000 трансляторы с языков Фортран
и Си учитывают спецдирективы для управления работой кэш памяти,
межпроцедурной оптимизации, задания коэффициентов размножения
тел циклов и т. д. Существует даже директива, позволяющая переда-
вать системе программирования указание пользователя о вероятности
перехода по метке в заданном условном операторе программы при
ее выполнении. Трансляторы CONVEXа в режиме О3 — «Распарал-
лелить!» по тексту последовательных программ и без использования
спецдиректив могут генерировать параллельный объектный код. Ко-
нечно, техника ручного управления распараллеливанием последова-
тельных программ позволяет получать более эффективные результаты.
Возможность автоматического распараллеливания последователь-
ных программ ограничивается системами программирования для
векторных машин и мультисистем с общей памятью, поэтому для
самых массовых вычислительных кластеров — МРР-систем — бы-
ли востребованы средства ручной адаптации накопленного фонда
последовательных программ. Многообразие мультипроцессорных си-
стем и отсутствие языков параллельного программирования вызывало
естественный интерес к использованию для параллельного програм-
мирования конкретных расширений алгоритмических языков. Так,
для программирования методом передачи сообщений для МРР-систем
были предложены языки Фортран GNS и Си GNS, полученные добав-
лением средства описания и идентификации параллельных процессов,
коммуникационных операторов в основные конструкции эталонных
языков.
Самыми распространенными расширениями эталонных языков
для параллельного программирования, основанными на спецкоммен-
тариях, являются языки Фортран HPF, Фортран DVM и система
3