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
|