
/* a very simple MPI demo
 */

#include <stdio.h>
#include "mpi.h"

main (int argc, char **argv) {
  int i, my_rank, p, source, dest, tag=50;
  char msg[100];
  MPI_Status status;

  MPI_Init(&argc, &argv);
  MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
  MPI_Comm_size(MPI_COMM_WORLD, &p);
   
  if (my_rank != 0) {
    sprintf(msg, "Greetings from process %d!", my_rank);
    dest = 0;

    MPI_Send(msg, strlen(msg)+1, 
	     MPI_CHAR, dest, tag, MPI_COMM_WORLD);
  } 
  else {
    for (source = 1; source < p; source++) {
      MPI_Recv(msg, 100, 
	       MPI_CHAR, source, tag, MPI_COMM_WORLD, &status);
      printf("%s\n", msg);
    }
  }
  MPI_Finalize();
}

