On 11 February 2010 15:06, George Bosilca <bosi...@eecs.utk.edu> wrote:
> This is absolutely not true. Open MPI supports zero length collective 
> operations (all of them actually), but if their arguments are correctly 
> shaped.
>

OK, you are right here ...

> What you're asking for is a free ticket to write MPI calls that do not follow 
> the MPI requirements when a special value for count is given.
>

But you did not answer my previous question... What's the rationale
for requiring sendbuf!=recvbuf when count=0? I would argue you want a
free ticket :-) to put restrictions on user code (without an actual
rationale) in order to simplify your implementation.

> While zero-length arrays/sequence/containers do appears in real code, they 
> are not equal to NULL. If they are NULL, that means they do not contain any 
> useful data, and they don't need to be source or target of any kind of 
> [collective or point-to-point] communications.
>

Yes, I know. Moreover, I agree with you. NULL should be reserved for
invalid pointers, not for zero-length array... The problem is that
people out there seem to disagree or just do not pay any attention to
this, thus (pointer=NULL,length=0) DO APPEAR in real life (like the
Python example I previously showed you)... Additionally, some time ago
(while discussing MPI_Alloc_mem(size=0)) we commented on the different
return values for malloc(0) depending on the platform...

Well, this discussion got too far... In the end, I agree that
representing zero-length arrays with (pointer=NULL,length=0) should be
regarded as bad practice...



-- 
Lisandro Dalcin
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594

Reply via email to