Looking back through the archives, a lot of people have hit error
messages like
> [bl302:26556] *** An error occurred in MPI_Cart_create
> [bl302:26556] *** on communicator MPI_COMM_WORLD
> [bl302:26556] *** MPI_ERR_ARG: invalid argument of some other kind
> [bl302:26556] *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort)
One of the reasons people *may* be hitting this is what I believe to
be an incorrect test in MPI_Cart_create():
if (0 > reorder || 1 < reorder) {
return OMPI_ERRHANDLER_INVOKE (old_comm, MPI_ERR_ARG,
FUNC_NAME);
}
reorder is a "logical" argument and "2.5.2 C bindings" in the MPI 1.3
standard says:
Logical flags are integers with value 0 meaning false and a
non-zero value meaning true.
So I'm not sure there should be any argument test.
We hit this because we (sorta erroneously) were trying to use a GNU build
of Open MPI with Intel compilers. gfortran has true=1 while ifort has
true=-1. It seems to all work (by luck, I know) except this test. Are
there any other tests like this in Open MPI?
David
|