ВУЗ:
Составители:
Рубрика:
- 102 -
4.2 Системы параллельного программирования
на основе обмена сообщениями
Вышеописанные системы разработки параллельных программ, несмотря на
требования явного описания распределения вычислений и данных по процес-
сорам, все же возлагают на ‘параллельный’ компилятор работу по реализации
этих описаний. В некоторых случаях бывает полезным иметь возможность
самостоятельного максимально полного управления процессом обработки
информации (включая
распределение данных и вычислений и обмен сообще-
ниями между ветвями программы).
Модель программирования MPI (Message Passing Interface, 1994,
http://mpiforum.org
) основана на передаче сообщений. Сообщение состоит из
блока (блоков) передаваемых данных и дополнительной информации (тип
передаваемых данных, идентификатор сообщения, номер процесса-
получателя и др.).
MPI иногда называют ‘ассемблерным уровнем’ в параллельном програм-
мировании, основывая это необходимостью максимально подробного описа-
ния всех необходимых операций обменов данными между частями програм-
мы, выполняющимися
на отдельных процессорах; при этом распределение
данных и вычислений полностью возлагается на программиста и выполняет-
ся средствами базового языка программирования (что очень непросто, по-
этому и применяются синтетические подходы – например, вышеупомянутый
OpenMP+MPI). Возможности MPI реализованы как набор (размещенных в
соответствующей библиотеке) MPI-функций (существует интерфейс с Fortran
и C/C++); появившийся в 1997 г. проект стандарта MPI-2
существенно рас-
ширяет возможности MPI (напр., динамическое порождение и уничтожение
процессов; при этом для MPI-1 диаграмма процессов соответствует рис.3б, а
для MPI-2 – рис.3в). В настоящее время существуют две основные реализа-
ции MPI – MPICH (MPI & Chameleon,
http://www-unix.mcs.anl.gov/mpi/mpich
) и
LAM (Local Area Machine,
http://www.lam-mpi.org
). Существуют сведения, что
MPI-2 реализован в системе программирования векторно-параллельной сис-
темы Earth Simulator.
Вообще говоря, для написания подавляющего большинства программ дос-
таточно 6-ти функций интерфейса MPI:
MPI_Init
- инициализация MPI-библиотеки
MPI_Comm_size
- определение числа процессов
MPI_Comm_rank
- определение процессом собственного номера
MPI_Send
- посылка сообщения
MPI_Recv
- получение сообщения
MPI_Finalize
- завершение программы MPI
- 102 - 4.2 Системы параллельного программирования на основе обмена сообщениями Вышеописанные системы разработки параллельных программ, несмотря на требования явного описания распределения вычислений и данных по процес- сорам, все же возлагают на ‘параллельный’ компилятор работу по реализации этих описаний. В некоторых случаях бывает полезным иметь возможность самостоятельного максимально полного управления процессом обработки информации (включая распределение данных и вычислений и обмен сообще- ниями между ветвями программы). Модель программирования MPI (Message Passing Interface, 1994, http://mpiforum.org) основана на передаче сообщений. Сообщение состоит из блока (блоков) передаваемых данных и дополнительной информации (тип передаваемых данных, идентификатор сообщения, номер процесса- получателя и др.). MPI иногда называют ‘ассемблерным уровнем’ в параллельном програм- мировании, основывая это необходимостью максимально подробного описа- ния всех необходимых операций обменов данными между частями програм- мы, выполняющимися на отдельных процессорах; при этом распределение данных и вычислений полностью возлагается на программиста и выполняет- ся средствами базового языка программирования (что очень непросто, по- этому и применяются синтетические подходы – например, вышеупомянутый OpenMP+MPI). Возможности MPI реализованы как набор (размещенных в соответствующей библиотеке) MPI-функций (существует интерфейс с Fortran и C/C++); появившийся в 1997 г. проект стандарта MPI-2 существенно рас- ширяет возможности MPI (напр., динамическое порождение и уничтожение процессов; при этом для MPI-1 диаграмма процессов соответствует рис.3б, а для MPI-2 – рис.3в). В настоящее время существуют две основные реализа- ции MPI – MPICH (MPI & Chameleon, http://www-unix.mcs.anl.gov/mpi/mpich) и LAM (Local Area Machine, http://www.lam-mpi.org). Существуют сведения, что MPI-2 реализован в системе программирования векторно-параллельной сис- темы Earth Simulator. Вообще говоря, для написания подавляющего большинства программ дос- таточно 6-ти функций интерфейса MPI: MPI_Init - инициализация MPI-библиотеки MPI_Comm_size - определение числа процессов MPI_Comm_rank - определение процессом собственного номера MPI_Send - посылка сообщения MPI_Recv - получение сообщения MPI_Finalize - завершение программы MPI
Страницы
- « первая
- ‹ предыдущая
- …
- 100
- 101
- 102
- 103
- 104
- …
- следующая ›
- последняя »