#include #include #include int main(int argc, char* argv[]) { MPI_Init(&argc, &argv); MPI_Comm spawn, new_comm; MPI_Comm_get_parent(&spawn); if(spawn == MPI_COMM_NULL) { int num_c = atoi(argv[1]); MPI_Comm_spawn(argv[0], MPI_ARGV_NULL, num_c, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &spawn, MPI_ERRCODES_IGNORE); MPI_Intercomm_merge(spawn, 0, &new_comm); } else { MPI_Intercomm_merge(spawn, 1, &new_comm); MPI_Barrier(MPI_COMM_WORLD); } MPI_Finalize(); }