Лабораторна робота №3. Введення в стандарт MPI.
Введение в MPI. Вивчення базової структури MPI-програми та засіб її запуску на кластері. Реалізації передачі даних типу “точка-точка” в MPI. Колективні обміни даними між MPI-процесами. Колективні операції та їх виконання.
Введение
В вычислительных системах с распределенной памятью процессоры работают независимо друг от друга.
Для организации параллельных вычислений в таких условиях необходимо иметь возможность распределять вычислительную нагрузку и организовать информационное взаимодействие (передачу данных) между процессорами (рис.3.1.).
Рис.3.1. Схема распределенной параллельной ВС.
Для решения перечисленных задач используется интерфейс передачи данных (message passing interface - MPI).
Интерфейс поддерживает параллельные, распределенные вычисления следующим образом:
1. Для распределения вычислений между процессорами необходимо проанализировать алгоритм решения задачи, выделить информационно независимые фрагменты вычислений, провести их программную реализацию и затем разместить полученные части программы на разных процессорах.
|
|
В рамках MPI принят следующий подход – для решения задачи разрабатывается одна программа и эта единственная программа запускается одновременно на выполнение на всех имеющихся процессорах!
При этом:
- подставляются разные данные для программы на разных процессорах
- предоставляется возможность организовать различия в вычислениях в зависимости от используемого программой процессора.
Подобный способ организации параллельных вычислений получил наименование модели "одна программа множество процессов" (single program multiple processes or SPMP1)).
2. Для организации информационного взаимодействия между процессорами в самом минимальном варианте достаточно операции приема и передачи данных (при этом должна существовать техническая возможность коммуникации между процессорами – каналы или линии связи). MPI поддерживает множество операций передачи данных. Они обеспечивают разные способы пересылки данных, реализуют практически все коммуникационные операции.