2. Модели и языки параллельного программирования Как было сказано выше, имеются две основные модели параллель-
ного выполнения программы на кластере – модель передачи сообще-
ний и модель общей. памяти.
В первой модели параллельная программа представляет собой сис-
тему процессов, взаимодействующих посредством передачи сообще-
ний. Эта модель может быть использована на любых кластерах.
Во второй модели параллельная программа представляет собой
систему нитей, взаимодействующих посредством общих переменных и
примитивов синхронизации. Вторая модель доступна для использова-
ния только на DSM-кластерах. Можно выбрать в качестве модели про-
граммирования одну из этих моделей выполнения.
Однако обе основные модели выполнения являются довольно низ-
коуровневыми. Поэтому главным недостатком выбора одной из них в
качестве модели программирования является то, что такая модель не-
привычна и неудобна для программистов, разрабатывающих вычисли-
тельные программы. Она заставляет его иметь дело с параллельными
процессами и низкоуровневыми примитивами передачи сообщений
или синхронизации.
Поэтому вполне естественно, что прикладной программист хотел
бы получить инструмент, автоматически преобразующий его последо-
вательную программу в параллельную программу для кластера. К со-
86
жалению, такое автоматическое распараллеливание невозможно в силу
ряда причин.
Теперь переходим к рассмотрению подходов, выбранных для
сравнительного анализа.