The MPI 2-1 standard says:

"MPI_PROC_NULL is a valid target rank in the MPI RMA calls
MPI_ACCUMULATE, MPI_GET, and MPI_PUT. The effect is the same as for
MPI_PROC_NULL in MPI point-to-point communication. After any RMA
operation with rank MPI_PROC_NULL, it is still necessary to finish the
RMA epoch with the synchronization method that started the epoch."


Unfortunately, MPI_Accumulate() is not quite the same as
point-to-point, as a reduction is involved. Suppose you make this call
(let me abuse and use keyword arguments):

MPI_Accumulate(..., target_rank=MPI_PROC_NULL,
target_datatype=MPI_BYTE, op=MPI_SUM, ...)

IIUC, the call fails (with MPI_ERR_OP) in Open MPI because MPI_BYTE is
an invalid datatype for MPI_SUM.

But provided that the target rank is MPI_PROC_NULL, would it make
sense for the call to success?


-- 
Lisandro Dalcín
---------------
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