ВУЗ:
Рубрика:
46
диняются в группы с единой областью связи, внутри которой каж-
дый процесс имеет свой уникальный номер в диапазоне от 0 до N–1,
где N – количество процессов в группе. Для взаимодействия про-
цессов в группе используется коммуникатор, который реализует
передачу сообщений (обмен данными) между процессами и их син-
хронизацию. Коммуникатор осуществляет обмены только внутри
области связи группы, с которой он ассоциируется.
Обычно MPI-программа для многопроцессорных вычислитель-
ных систем пишется на языке С, C++ или FORTRAN с использова-
нием коммуникационных функций библиотеки MPI. Запуск на вы-
полнение MPI-программы представляет собой одновременный за-
пуск совокупности параллельных процессов, количество которых
определяет пользователь при запуске. Параллельная часть програм-
мы начинается с инициализации MPI. При этом все активированные
процессы объединяются в группу с коммуникатором, который име-
ет имя MPI_COMM_WORLD. Далее средствами MPI в программу
передается число активированных процессов, каждому из них при-
сваивается свой номер. Процессы, как правило, отличаются тем, что
каждый отвечает за исполнение своей ветви параллельной MPI-
программы.
3.2 Начала MPI и программа `Hello World'
Полный стандарт MPI состоит из 129 функций. Однако начи-
нающему пользователю MPI достаточно научиться применять в
практической работе лишь несколько из них (6 или 24 – в зависимо-
сти от квалификации). Без чего действительно нельзя обойтись, так
это без функций, передающих и принимающих сообщения. Выпол-
нение следующих правил позволит легко сконструировать боль-
шинство MPI-программ.
- Все MPI-программы должны включать заголовочный файл (в
С-программе mpi.h; в FORTRAN-программе mpif.h).
- Все MPI-программы должны вызывать подпрограмму
MPI_INIT как первую вызываемую подпрограмму MPI для
того, чтобы инициализировать MPI.
- Большинство MPI-программ вызывает подпрограмму
MPI_COMM_SIZE, чтобы определить размер активированной
виртуальной машины, т.е. количество запущенных процессов
size.
- Большинство MPI-программ вызывает MPI_COMM_RANK,
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »
