ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
52
Общие процедуры MPI
int MPI_Init( int* argc, char*** argv)
MPI_Init
- инициализация параллельной части приложения. Реальная инициа-
лизация для каждого приложения выполняется не более одного раза, а если MPI уже
был инициализирован, то никакие действия не выполняются и происходит немед-
ленный возврат из подпрограммы. Все оставшиеся MPI-процедуры могут быть вы-
званы только после вызова
MPI_Init
. Возвращает: в случае успешного выполнения -
MPI_SUCCESS,
иначе - код ошибки. (То же самое возвращают и все остальные
функции, рассматриваемые в данном руководстве.)
int MPI_Finalize( void )
MPI_Finalize
- завершение параллельной части приложения. Все последующие
обращения к любым MPI-процедурам, в том числе к
MPI_Init
, запрещены. К момен-
ту вызова
MPI_Finalize
некоторым процессом все действия, требующие его участия
в обмене сообщениями, должны быть завершены. Сложный тип аргументов
MPI_Init
предусмотрен для того, чтобы передавать всем процессам аргументы
main
:
Пример:
int main(int argc, char** argv)
{
MPI_Init(&argc, &argv);
...
MPI_Finalize();
}
int MPI_Comm_size( MPI_Comm comm, int* size)
•
comm - идентификатор группы;
•
OUT
size
- размер группы.
Определение общего числа параллельных процессов в группе
comm
.
int MPI_Comm_rank( MPI_Comm comm, int* rank)
•
comm
- идентификатор группы;
•
OUT
rank
- номер вызывающего процесса в группе
comm.
Определение номера процесса в группе
comm.
Значение, возвращаемое по
адресу
&rank
, лежит в диапазоне от
0
до
size_of_group-1
double MPI_Wtime(void)