Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация и исследование параллельно-последовательных вычислений на кластере МЭИ при решении класса матричных задач большой разм.docx
Скачиваний:
101
Добавлен:
28.06.2014
Размер:
1.26 Mб
Скачать

1.2. Классификация моделей параллельного программирования

Рассмотрим модели параллельного программирования с разных точек зрения.

  1. С точки зрения доступа к разделяемым данным и синхронизации процессов. В настоящее время в области научно-технических вычислений превалируют три модели параллельного программирования: модель передачи сообщений, модель с общей памятью и модель параллелизма по данным [4]. На рис. 1.2 приведена общая схема такой классификации.

Рис.1.2. Классификация моделей параллельного программирования с точки зрения доступа к данным и синхронизации процессов

  1. С точки зрения построения ветвей параллельного алгоритма. MPMD – модель вычислений (Multiple program – Multiple Data). Параллельная программа представляет собой совокупность автономных процессов, функционирующих под управлением своих собственных программ и взаимодействующих посредством стандартного набора библиотечных процедур для передачи и приема сообщений. SPMD – модель вычислений (Single program – Multiple Data). Все процессы исполняют в общем случае различные ветви одной и той же программы. Этот подход обусловлен тем обстоятельством, что задача может быть достаточно естественным образом разбита на подзадачи, решаемые по одному алгоритму. Исходные данные задачи распределяются по процессам (ветвям параллельного алгоритма), а алгоритм является одним и тем же во всех процессах, но действия этого алгоритма распределяются в соответствии с имеющимися в этих процессах данными. Распределение действий алгоритма заключается, например, в присвоении разных значений переменным одних и тех же циклов в разных ветвях, либо в исполнении в разных ветвях разного количества итераций одних и тех же циклов и т.п. Другими словами, процесс в каждой ветви следует различными путями выполнения на той же самой программе. На практике чаще всего встречается эта модель программирования.

  2. С точки зрения размеров (по объему и времени) обрабатываемых параллельных блоков. Это методы крупнозернистого, среднезернистого и мелкозернистого распараллеливания [2, 4].

В модели передачи сообщений каждый процесс имеет собственное локальное адресное пространство. Обработка общих данных и синхронизация осуществляется посредством передачи сообщений. В рамках этой модели параллельного программирования реализуются обе подмодели с точки зрения построения ветвей параллельной программы: MPMD-модель вычислений и SPMD-модель вычислений. Для параллельных систем с передачей сообщений оптимальное соотношение между вычислениями и коммуникациями обеспечивают методы крупнозернистого распараллеливания, когда параллельные алгоритмы строятся из крупных и редко взаимодействующих блоков. Многие задачи линейной алгебры, задачи, решаемые сеточными методами, достаточно эффективно распараллеливаются крупнозернистыми методами [4]. Самой распространенной системой параллельного программирования, поддерживающей данную модель, является MPI.

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

В модели параллелизма по данным отсутствует понятие процесса и, как следствие, явная передача сообщений или явная синхронизация. В этой модели данные последовательной программы распределяются по узлам (процессорам) вычислительной системы. Последовательная программа преобразуется компилятором либо в модель передачи сообщений, либо в модель с общей памятью. В рамках данной модели параллельного программирования реализуются обе подмодели с точки зрения построения ветвей параллельной программы. Эта модель реализуется методом крупнозернистого распараллеливания [4].

В настоящей работе выбрана модель передачи сообщений, с точки зрения построения ветвей параллельной программы использована SPMD-модель методом крупнозернистого распараллеливания.

Соседние файлы в предмете Государственный экзамен