5
int main( int argc, char **argv )
7
int rank, np, data = 777;
11
MPI_Init( &argc, &argv );
12
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
13
MPI_Comm_size( MPI_COMM_WORLD, &np );
17
printf( "4 processors or more required, %d done\n", rank );
22
MPI_Isend( &data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &handle );
23
MPI_Wait( &handle, &status );
24
MPI_Irecv( &data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &handle );
25
MPI_Wait( &handle, &status );
26
MPI_Isend( &data, 1, MPI_INT, 2, 0, MPI_COMM_WORLD, &handle );
27
MPI_Wait( &handle, &status );
28
MPI_Irecv( &data, 1, MPI_INT, 2, 0, MPI_COMM_WORLD, &handle );
29
MPI_Wait( &handle, &status );
32
MPI_Irecv( &data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &handle );
33
MPI_Wait( &handle, &status );
34
MPI_Isend( &data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &handle );
35
MPI_Wait( &handle, &status );
36
MPI_Isend( &data, 1, MPI_INT, 3, 0, MPI_COMM_WORLD, &handle );
37
MPI_Wait( &handle, &status );
38
MPI_Irecv( &data, 1, MPI_INT, 3, 0, MPI_COMM_WORLD, &handle );
39
MPI_Wait( &handle, &status );
42
MPI_Isend( &data, 1, MPI_INT, 3, 0, MPI_COMM_WORLD, &handle );
43
MPI_Wait( &handle, &status );
44
MPI_Irecv( &data, 1, MPI_INT, 3, 0, MPI_COMM_WORLD, &handle );
45
MPI_Wait( &handle, &status );
46
MPI_Irecv( &data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &handle );
47
MPI_Wait( &handle, &status );
48
MPI_Isend( &data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &handle );
49
MPI_Wait( &handle, &status );
52
MPI_Irecv( &data, 1, MPI_INT, 2, 0, MPI_COMM_WORLD, &handle );
53
MPI_Wait( &handle, &status );
54
MPI_Isend( &data, 1, MPI_INT, 2, 0, MPI_COMM_WORLD, &handle );
55
MPI_Wait( &handle, &status );
56
MPI_Irecv( &data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &handle );
57
MPI_Wait( &handle, &status );
58
MPI_Isend( &data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &handle );
59
MPI_Wait( &handle, &status );