Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lecture-2.ppt
Скачиваний:
0
Добавлен:
11.06.2024
Размер:
121.86 Кб
Скачать

Архитектуры параллельных систем. Средства программирования

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

учитывают особенности архитектуры

Параллельная архитектура с распределенной памятью

Параллельная архитектура с распределенной памятью. Топология решетка

Параллельная архитектура с распределенной памятью. Топология 2D решетка (тор)

Параллельная архитектура с распределенной памятью. Топология гиперкуб

Параллельная архитектура с общей памятью

Сейчас:

Архитектура с распределенной памятью, а в узле – многоядерный процессор

Гибридная архитектура (многоядерный кластер) Программировать для такой архитектуры стало еще сложнее

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

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

Системы автоматизации распараллеливания (ParaWise …)

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

(Сhapel, X10, Fortress, UPC, Coarray Fortran, Charm++, … )

3.Расширение существующих последовательных языков : библиотека передачи сообщений MPI (Message Passing Interface) стандарт OpenMP (Open specification MiltiProcessing)

+ {Фортран, Си}

Программирование в модели с распределенной памятью.

Библиотека (интерфейс) MPI

История и технические сведения

MPI – Message Passing Interface, интерфейс передачи сообщений Реализован в виде библиотеки функций

Стандарт де-факто, программы работают как на архитектурах с распределенной памятью,

так и на архитектурах с общей памятью.

Считается сложным в программировании.

MPI – это библиотека функций, их 125 примерно штук MPI версии 1.1

MPI версии 2.1 (примерно 1998 год) – сырой и слабо используется пока.

MPI используется с Фортраном и Си

mpif77 mpif90 mpicc

mpiCC

Компиляция программы:

 

mpif77 –o variant1

my_program.f

Выполнение программы на заданном <числе процессоров> mpirun –np <число процессоров> variant1 <аргументы>

О программировании на MPI.

Модель параллельности передачи сообщений

MPMD (SPMD)

SPMD – модель распараллеливания по данным

Процессы.

Все процессы работают по одной программе.

Данные распределяется по процессам.

Вычисления определяются данными (например, одна и та же переменная в разных процессах принимает разные значения, процессы следуют разными путями вычислений).

Процессы порождаются один раз.

Порождение новых или уничтожение существующих невозможно (вMPI 2.0 возможно).

Каждый процесс работает в своем адресном пространстве, общих переменных или данных процессы не имеют.

Процессы взаимодействуют, передавая сообщения.

Группы процессов - ключевое понятие. Процессы могут объединяться в группы, один процесс может входить в несколько групп.

Это надо как с содержательной точки зрения, так и с точки зрения безопасности. Все взаимодействия процессов протекают в рамках определенного коммуникатора

Для идентификации (именования) групп используются коммуникаторы.

Обозначения в MPI.

Имена, используемые в библиотеке MPI, имеют префикс MPI_ Префикс MPI_ гарантирует несовпадение имен.

Файлы mpif.h и mpi.h. INCLUDE ’ mpif.h’ #include ”mpi.h”

Соседние файлы в папке Лекции