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