РАЗРАБОТКА ПАРАЛЛЕЛЬНЫХ ПРОГРАММ ДЛЯ
ВЫЧИСЛИТЕЛЬНЫХ КЛАСТЕРОВ
*
В.А. Крюков
Институт прикладной математики им. М.В. Келдыша РАН, г.Москва
1. Введение
Последние годы во всем мире происходит бурное внедрение вы-
числительных кластеров. Это вызвано тем, что кластеры стали обще-
доступными и дешевыми аппаратными платформами для высокопро-
изводительных вычислений. Поскольку единого определения вычис-
лительного кластера не существует, для упрощения дальнейшего из-
ложения введем некоторую классификацию, которая будет отражать
свойства программно-аппаратной платформы, существенные с точки
зрения разработки прикладных параллельных программ.
Вычислительный кластер – это мулътикомпьютер, состоящий из
множества отдельных компьютеров (узлов), связанных между собой
единой коммуникационной системой. Каждый узел имеет свою ло-
кальную оперативную память. При этом общей физической оператив-
ной памяти для узлов не существует. Каждый узел может быть муль-
типроцессором (мультипроцессорный компьютер с общей памятью).
Коммуникационная система обычно позволяет узлам взаимодейство-
вать между собой только посредством передачи сообщений, но неко-
торые системы могут обеспечивать и односторонние коммуникации –
позволять любому узлу выполнять массовый обмен информацией ме-
жду своей памятью и локальной памятью любого другого узла.
*
Работа поддержана Российским фондом фундаментальных исследований,
грант № 99-01-00209
84
Если на вычислительном кластере аппаратно или программно-
аппаратно
реализована DSM (Distributed Shared Memory
–
распределенная общая память), позволяющая выполняющимся на раз-
ных узлах программам (любым, даже ассемблерным) взаимодейство-
вать через общие переменные, то такой кластер будем называть DSM-
кластер. Если такая DSM отсутствует, и прикладные программы взаи-
модействуют посредством передачи сообщений, то вычислительный
кластер будем называть DM-кластер (DM – Distributed Memory).
Если все входящие в состав вычислительного кластера узлы имеют
одну и ту же архитектуру и производительность, то мы имеем дело с
однородным вычислительным кластером. Иначе – с неоднородным.
Неоднородность же вносит следующие серьезные проблемы.
Различие в производительности процессоров требует соответст-
вующего учета при распределении работы между процессами, выпол-
няющимися на разных процессорах.
Различие в архитектуре процессоров требует подготовки разных
выполняемых файлов для разных узлов, а в случае различий в пред-
ставлении данных может потребоваться и преобразование информации
при передаче сообщений между узлами (не говоря уже о трудностях
использования двоичных файлов). Если существуют различия в пред-
ставлении данных, то построение неоднородного DSM-кластера пред-
ставляется просто невозможной.
Тем не менее, любой кластер можно рассматривать как единую
аппаратно-программную систему, имеющую единую коммуникацион-
ную систему, единый центр управления и планирования загрузки.
С 1992 года, когда мультикомпьютеры стали самыми производи-
тельными вычислительными системами, резко возрос интерес к про-
блеме разработки для них параллельных прикладных программ. К
этому моменту уже было ясно, что трудоемкость разработки приклад-
ных программ для многопроцессорных систем с распределенной памя-
тью является главным препятствием для их широкого внедрения.
За прошедший с тех пор период предложено много различных
подходов к разработке параллельных программ, созданы десятки раз-
личных языков параллельного программирования и множество раз-
личных инструментальных средств. Среди них можно отметить сле-
дующие интересные отечественные разработки – Норма, Фортран-
GNS, Фортран-DVM, mpC, Т-система.
85
Целью данной работы является сравнительный анализ пяти раз-
личных подходов к разработке параллельных программ для вычисли-
тельных кластеров и сетей – MPI, HPF, OpenMP, OpenMP+MPI и
DVM.
Предпочтительность использования того или иного подхода
определяют следующие факторы:
•
Легкость программирования;
•
Эффективность разработанных программ;
•
Переносимость и повторное использование программ;
•
Качество средств отладки программ (функциональной отладки и
отладки рективности).
Именно с этих позиций анализируются указанные подходы в дан-
ной работе.
Достарыңызбен бөлісу: |