
- •Архитектуры параллельных систем. Средства программирования
- •Параллельная архитектура с распределенной памятью
- •Параллельная архитектура с распределенной памятью. Топология 2D решетка (тор)
- •Параллельная архитектура с распределенной памятью. Топология гиперкуб
- •Параллельная архитектура с общей памятью
- •Подходы к разработке программ для параллельных систем. Средства программирования
- •Программирование в модели с распределенной памятью.
- •История и технические сведения
- •О программировании на MPI.
- •Группы процессов - ключевое понятие. Процессы могут объединяться в группы, один процесс может
- •После запуска все процессы входят в группу MPI_COMM_WORLD.
- •Первая программа на MPI
- •Общие функции MPI.
- •5.Определение астрономического времени на процессоре DOUBLE PRECISION MPI_WTIME (ERR)
- •Измерение времени в MPI
- •Запустить программы
- •Сообщения .

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

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

Параллельная архитектура с распределенной памятью. Топология 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”