I have a problem with MPI_Comm_dup. When I call it in a function, it causes my application to hang. Are they any common causes for a problem like this? I'm using OpenMPI 1.2.8. Are there any known bugs that could be causing this?
My program seems to hang when it gets to MPI_Comm_dup. Here's an example of how I'm using it. #include "foo.h" /* MPI variables */ int my_rank; int num_proc; MPI_Comm euclid_comm; void foo(long *arg1, long *arg2, MPI_Comm old_comm); int main (int argc, char** argv) { /* get options */ MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); MPI_Comm_size(MPI_COMM_WORLD, &num_proc); /* read in some data, yadda, yadda yadda */ foo(&arg1, &arg2, MPI_COMM_WORLD); / *print results from foo */ MPI_Finalize(); } void foo(long *arg1, long *arg2, MPI_Comm old_comm) { MPI_Comm foo_comm; int foo_my_rank; int foo_num_proc; MPI_Comm_dup(old_comm, &foo_comm); MPI_Comm_rank(foo_comm, &foo_my_rank); MPI_Comm_size(foo_comm, &foo_num_proc); /* do stuff */ } -- Prentice