void MPE_Counter_service(MPI_Comm comm)
  {
     static int counter = 0;
     int        requester, flag;
     MPI_Status status;
     /* Process all pending messages */
     do {
        MPI_Iprobe(MPI_ANY_SOURCE, COUNTER, comm, &flag, &status);
        if (flag) {
           requester = status.MPI_SOURCE;
           MPI_Recv(MPI_BOTTOM, 0, MPI_INT, requester, COUNTER,
                    comm, MPI_STATUS_IGNORE);
           counter++;
           MPI_Send(&counter, 1, MPI_INT, requester,
                    COUNTER, comm);
    	 }
     } while (flag);
   }