Совместное использование MPI и OpenMP Для распараллеливания счета на распределенной памяти использу-
ется MPI – распараллеливание по математическим областям. Для рас-
параллеливания в модели общей памяти используется интерфейс
OpenMP – распараллеливание внутри математической области. На
кластерных системах возможно совместное использование этих двух
подходов при условии, что каждый кластер представляет собой много-
процессорный узел с общей памятью.
Преимущества OpenMP перед моделью с передачей сообщений Преимущества OpenMP:
• отсутствие затрат на подготовку и передачу данных между вычис-
лительными процессорами.
• эффективное использование преимуществ общей памяти;
• простота реализации программ (как правило, незначительная мо-
дификация последовательных программ);
• простота освоения (стандарт OpenMP 1.1 содержит всего 12 ди-
ректив, порядка 10 клауз и 15 подпрограмм и функций);
• возможность распараллеливание сверху вниз.
Хотя модель с передачей сообщений является наиболее универ-
сальной, однако она не лишена недостатков. Особенно ярко некоторые
из них проявляются при использовании в модели общей памяти.
Недостатки модели с передачей сообщений:
• затраты на подготовку данных для передачи (в некоторых ситуа-
циях такая подготовка может быть чрезвычайно сложной);
• затраты непосредственно на передачу данных (особенно больших
массивов);
• дополнительные затраты оперативной памяти, особенно в модели
общей памяти – логически ненужное дублирование данных, но не-
обходимое при использовании такой модели;
• необходимость весьма существенных доработок программ, напи-
сание новых модулей и процедур;
• сложна для освоения, так как требует особого «невычислительно-
го» мышления.