void send(void *buf, int count, int dest, int tag, int rank) { $message out = $message_pack(rank, dest, tag, buf, count*sizeof(double)); $comm_enqueue(&MPI_COMM_WORLD, out); } void recv(void *buf, int count, int source, int tag, int rank) { $message in = $comm_dequeue(&MPI_COMM_WORLD, source, rank, tag); $message_unpack(in, buf, count*sizeof(double)); } void reduce_send(void *buf, int count, int dest, int tag, int rank){ $message out = $message_pack(rank, dest, tag, buf, count*sizeof(double)); $comm_enqueue(&REDUCE_COMM, out); } void reduce_recv(void *buf, int count, int source, int tag, int rank){ $message in = $comm_dequeue(&REDUCE_COMM, source, rank, tag); $message_unpack(in, buf, count*sizeof(double)); }