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",send_value);
  46     send_value = 12;
  47 
  48     MPI_Wait (&send_request, &status);
  49     MPI_Wait (&recv_request, &status);
  50 
  51     
  52 
  53 
  54 
  55     printf("\nsent: %d\n",send_value);
  56     send_value = 16;
  57 
  58     MPI_Finalize ();
  59     return 0;
  60 }
  61