#include #include int main (int nargs, char** args) { int size0, rank0, size1, rank1, size2, rank2, i; MPI_Comm comm1, comm2; MPI_Init (&nargs, &args); MPI_Comm_size (MPI_COMM_WORLD, &size0); MPI_Comm_rank (MPI_COMM_WORLD, &rank0); i = rank0%2; MPI_Comm_split (MPI_COMM_WORLD, i, rank0, &comm1); MPI_Comm_size (comm1, &size1); MPI_Comm_rank (comm1, &rank1); i = rank0/2; MPI_Comm_split (MPI_COMM_WORLD, i, rank0, &comm2); MPI_Comm_size (comm2, &size2); MPI_Comm_rank (comm2, &rank2); printf("size0=%d, rank0=%d, size1=%d, rank1=%d, size2=%d, rank2=%d\n", size0, rank0, size1, rank1, size2, rank2); MPI_Finalize (); return 0; }