include mpi include stdio int main int argc char argv int size rank MP

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <mpi.h>
#include <stdio.h>
int main( int argc, char **argv )
{
int size, rank, i;
MPI_Init( &argc, &argv ); // инициализация MPI-библиотеки
MPI_Comm_size( MPI_COMM_WORLD, &size ); // определение количества
// запущенных ветвей
MPI_Comm_rank( MPI_COMM_WORLD, &rank ); // определение своего ранга
// ветвь с нулевым рангом сообщает количество запущенных процессов
double t = MPU_Wtime();
if( rank==0 )
printf("Total processes count = %d\n", size );
// все ветви сообщают свой ранг
printf("Hello! My rank in MPI_COMM_WORLD = %d\n", rank );
// Точка синхронизации MPI_Barrier( MPI_COMM_WORLD );
// ветвь с рангом 0 сообщает аргументы командной строки,
// которая может содержать параметры, добавляемые загрузчиком MPIRUN
if( rank == 0 )
for( puts("Command line of process 0:"), i=0; i<argc; i++ )
printf( "%d: \"%s\"\n", i, argv[i] );
double t1 = MPU_Wtime();
printf("Spend %d\n", t1 - t);
MPI_Finalize(); // закрытие MPI-библиотеки
return 0;
}