void send(void *buf, int count, int dest, int tag) { $atomic{ $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) { $atomic{ $message in = $comm_dequeue(&MPI_COMM_WORLD, source, rank, tag); $message_unpack(in, buf, count*sizeof(double));} } $when (__start);