I think you are mixing up two different things here: a NULL pointer is invalid, and thus Open MPI has to raise an error. If a request is MPI_REQUEST_NULL, that's perfectly legal according to the standard. However MPI_REQUEST_NULL is not a NULL pointer, its a well defined value.

Francisco Jesús Martínez Serrano wrote:
Hello Users,

the man page for MPI_Waitany states that

"The array_of_requests list *may contain null* or inactive handles. If
the list contains no active handles (list has length  zero  or all
entries are null or inactive), then the call returns immediately with
index = MPI_UNDEFINED, and an empty status."

I've been having problems with Open MPI and a code that runs fine with
LAM, I have managed to trace it to a call to MPI_Waitany with some
requests set to null (but properly allocated).

The current trunk code for ompi/mpi/c/waitany.c states:

int MPI_Waitany(int count, MPI_Request *requests, int *index,
MPI_Status *status)
{

    OPAL_CR_TEST_CHECKPOINT_READY();

    if ( MPI_PARAM_CHECK ) {
        int i, rc = MPI_SUCCESS;
        OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
        if ((NULL == requests) && (0 != count)) {
            rc = MPI_ERR_REQUEST;
        } else {
            for (i = 0; i < count; i++) {
                if (NULL == requests[i]) {
                    rc = MPI_ERR_REQUEST;
                    break;
                }
            }
        }
        if ((NULL == index) || (0 > count)) {
            rc = MPI_ERR_ARG;
        }
        OMPI_ERRHANDLER_CHECK(rc, MPI_COMM_WORLD, rc, FUNC_NAME);
    }
(...)

From what I understand in this code, if any of the requests is NULL
then an MPI_ERR_REQUEST error will be issued.

Is this a limitation of Open MPI (i.e. further processing of this
query will result in an error if a request is null), or a simple bug?
Of course, I could be mistaken... :-)

Cheers!
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to