Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
20.03.2015
Размер:
131.07 Кб
Скачать

Использование технологии параллельного программирования mpi-2

Е.С.Борисов

понедельник, 6 марта 2006 г.

http://mechanoid.narod.ru/parallel/mpi2/index.html

1 Введение

Существуют задачи, не решаемые на серийных персональных компьютерах за приемлемое время[1], к примеру прогнозирование погоды, моделирование процессов разрушения в механике (crash-тесты).

уровень 2: средства автоматизированного распараллеливания (Adaptor, Bert77)

уровень 1: коммуникационные библиотеки (MPI, PVM, OpenMP)

уровень 0: аппаратура (SMP, MPP, Кластеры)

Рис 1: Средства параллельных вычислений

Для решения таких задач используют многопроцессорные (параллельные) вычислители, множество архитектур которых весьма обширно. Для параллельных вычислительных систем необходимо создавать специальные программы. В тексте такой программы определяются части (ветки), которые могут выполнятся параллельно, а также алгоритм их взаимодействия. Параллельные программы, вообще говоря, являются архитектурно зависимыми. Средства параллельных вычислений можно разделить на три уровня (рис.1).

1.1 Аппаратные средства для параллельных вычислений

Основной характеристикой при классификации параллельных вычислительных систем является способ организации памяти[2]. Все множество архитектур можно разделить на две группы: системы с общей памятью и системы с распределенной памятью.

Рис.2: Система с общей памятью

Системы с общей памятью - все процессоры работают в едином адресном пространстве с равноправным доступом к памяти(рис.2). В эту группу попадают симметричные мультипроцессорные системы(SMP). В таких системах наличие общей памяти упрощает взаимодействие процессоров между собой, однако возникает необходимость в механизме разрешения конфликтов между процессорами за доступ к памяти, что накладывает сильные ограничения на число процессоров (обычно не более 32). Таким образом, при всем удобстве использования, производительность систем с общей памятью ограничена.

Рис.3: Система с распределенной памятью

Системы с распределенной памятью - каждый процессор имеет собственную локальную памятью, и прямой доступ к этой памяти других процессоров невозможен(рис.3). Этой группе принадлежат системы массового параллелизма(MPP) и их менее дорогой вариант кластеры. Такая система обычно состоит из нескольких самостоятельных вычислительных узлов. Для связи узлов используется определенная сетевая технология. Системы с распределенной памятью сложнее программировать, поскольку необходимо делить обрабатываемые данные на части и рассылать их по вычислительным узлам. Общее число процессоров в таких системах теоретически не ограничено.

1.2 Коммуникационные библиотеки

При написании параллельных программ можно пользоваться коммуникационными библиотеками. Такие библиотеки реализуют методы запуска и управления параллельными процессами, обычно они содержат функции обмена данными между ветвями параллельной программы, функции синхронизации процессов. Существует много библиотек и интерфейсов параллельного программирования[3]. Соответственно типу организации памяти параллельных вычислителей, выделим два основных типа библиотек:

  • Библиотеки использующие модель общей памяти. Например, OpenMP - программный интерфейс для программирования компьютеров с общей памятью (симметричные мультипроцессоры).

  • Библиотеки построенные по модели обмена сообщениями. Здесь наиболее популярный стандарт это Message Passing Interface(MPI). Этот стандарт используется для построения параллельных программ по модели обмена сообщениями. Существуют реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и MS Windows.

Соседние файлы в папке Архитектура компьютеров