[mpich-devel] MPI_Reduce_scatter_block() with zero-size, NULL buffers.

Lisandro Dalcin dalcinl at gmail.com
Sun Jul 6 07:20:33 CDT 2014


On 6 July 2014 14:34, Balaji, Pavan <balaji at anl.gov> wrote:
>
> Yes, this is intentional.  It’s an additional error check and is showing a bug in your user code.
>



Do you really think this buffer specification is aliased?: sbuf=(nil),
rbuf=(nil), recvcount=0, MPI_INT

I mean, the message count are zero, and the buffers are both NULL. In
case of count=0, all reductions should be basically a non-op, there is
nothing to reduce. IMHO, using NULL pointers to represent zero-sized
buffers is common practice. Perhaps this check should be relaxed for
sbuf=rbuf=NULL ?

Please look at this test in mpi4py where I explicitly test for
zero-size messages:
https://bitbucket.org/mpi4py/mpi4py/src/master/test/test_msgzero.py

While this is in Python, the outcome is that the various p2p,
collectives and reductions are called with buf=NULL, count=0,
datatype=MPI_INT. From the tests there, all the block and vector
collectives pass, but the reductions do not.



-- 
Lisandro Dalcin
---------------
CIMEC (UNL/CONICET)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1016)
Tel/Fax: +54-342-4511169


More information about the devel mailing list