ВУЗ:
Рубрика:
47
чтобы определить номер каждого активированного процесса,
который находится в диапазоне от 0 до size-1.
- В каждой MPI-программе активируются процессы, характер
выполнения которых может меняться по условию.
Взаимодействие процессов производится путем передачи
сообщений между отдельными процессами с помощью
вызова функций MPI_SEND и MPI_RECV.
- Все MPI-программы должны обращаться к MPI_FINALIZE
как к последнему вызову функций из MPI-библиотеки.
Таким образом, можно написать достаточное количество
MPI-программ, пользуясь только следующими шестью функциями:
MPI_INIT, MPI_COMM_SIZE, MPI_COMM_RANK, MPI_SEND,
MPI_RECV, MPI_FINALIZE.
Однако для более удобного программирования следует изучить
и несколько коллективных коммуникационных функций. Эти функ-
ции позволяют взаимодействовать нескольким процессам одновре-
менно.
Ниже представлены Fortran и С-версии параллельной MPI-
программы ‘Hello World’. Ее можно взять в качестве начального
примера при освоении правил написания MPI-программ. Эти про-
стые программы являются SPMD (Single Program Multiple Data) про-
граммами, где все процессы представляют собой запуск одного и
того же кода, но могут выполнять различные действия в зависимо-
сти от значений данных (например, номера процесса). В представ-
ленной ниже программе главный процесс (rank = 0) посылает сооб-
щение из символов ‘Hello World’ остальным процессам (rank > 0).
Они принимают это сообщение и печатают его на экране.
Если эта программа будет запущена командой
mpirun – np 3 ./hello ,
то на экране может быть напечатано следующее:
process 2 : Hello, world!
process 0 : Hello, world!
process 1 : Hello, world!
C-версия программы ‘Hello World’:
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
