Facebook
From Edgy Hedgehog, 6 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 312
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include "mpi.h"
  4.  
  5. int main( int argc, char **argv )
  6. {
  7.     int rank, value, size;
  8.     MPI_Status status;
  9.  
  10.     MPI_Init( &argc, &argv );
  11.  
  12.     MPI_Comm_rank( MPI_COMM_WORLD, &rank );
  13.     MPI_Comm_size( MPI_COMM_WORLD, &size );
  14.    
  15.           if (rank == 0)
  16.           {
  17.                  
  18.                  value = 5;
  19.                 MPI_Send(&value, 1, MPI_INT, rank + 1, 0, MPI_COMM_WORLD );
  20.           }
  21.           else
  22.           {
  23.             MPI_Recv(&value, 1, MPI_INT, rank - 1, 0, MPI_COMM_WORLD, &status );
  24.             if (rank < size - 1)
  25.                    MPI_Send( &value, 1, MPI_INT, rank + 1, 0, MPI_COMM_WORLD );
  26.           }
  27.           printf("Proces %d dostal %d\n", rank, value );
  28.           fflush(stdout);
  29.    
  30.     MPI_Finalize( );
  31.     return 0;
  32. }