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

Reply via email to