This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h>
12 #include "mpi.h"
13
14 int main( int argc, char *argv[] )
15 {
16 int rank, size;
17 int send_value,recv_value;
18
19 MPI_Status status;
20 MPI_Request send_request;
21 MPI_Request recv_request;
22
23 MPI_Init( &argc, &argv );
24
25 MPI_Comm_rank( MPI_COMM_WORLD, &rank );
26 MPI_Comm_size( MPI_COMM_WORLD, &size );
27
28 send_value = 10;
29 recv_value = 0;
30
31 if (size != 2) {
32 fprintf (stderr, "Error: Need 2 processes\n");
33 MPI_Finalize ();
34 }
35
36 MPI_Isend (&send_value, 1, MPI_INT,
37 (rank + 1) % size, 4711, MPI_COMM_WORLD, &send_request);
38 MPI_Irecv (&recv_value, 1, MPI_INT,
39 (rank + size - 1) % size, 4711, MPI_COMM_WORLD, &recv_request);
40
41
42
43
44
45 printf("\nsent: %d\n",recv_value);
46 recv_value = 12;
47
48 MPI_Wait (&send_request, &status);
49 MPI_Wait (&recv_request, &status);
50
51
52
53
54 printf("\nsent: %d\n",recv_value);
55 recv_value = 16;
56
57 MPI_Finalize ();
58 return 0;
59 }