ibctest.c


/*
   ibctest.c

   test program for the ibcast library
   needs at least two processes !
*/

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

void
main(int argc, char *argv[]) {
  int            data1;
  int            data2;
  int            me;         /* rank in WORLD */
  Ibcast_handle *request1;
  Ibcast_handle *request2;
  
  MPI_Init(&argc, &argv);  /* enroll in MPI */
  MPI_Comm_rank(MPI_COMM_WORLD, &me);
  
  if (me == 0) {
    data1 = 42;
  }
  if (me == 1) {
    data2 = 4711;
  }

  /* start two different broadcasts */
  Ibcast(&data1, 1, MPI_INT, 0, MPI_COMM_WORLD, &request1);
  Ibcast(&data2, 1, MPI_INT, 1, MPI_COMM_WORLD, &request2);
  
  /* do some computations */
  
  /* finish broadcast */
  Ibcast_wait(&request1);
  Ibcast_wait(&request2);
  
  /* show that everything worked */
  printf("me = %3d,  data1 = %8d  data2 = %8d\n", me, data1, data2);
  
  MPI_Finalize();
}

previous    contents     next

Peter Junglas 11.5.2000