Re: [MPI3 Fortran] [Interop-tr] [Mpi-forum] Comment on Fortran WG5 ballot N1846
On 4/20/11 4:35 AM, Rolf Rabenseifner wrote:
Van and all Forum members,
Why not including buf into the argument list of MPI_Wait?
This was discussed already years ago: - In the split collective routines, we did this already in the original definition. - MPI_Wait is part of a set of routines with all having an array of request handles, i.e., a set of such invisible buffers. For those routines, such one additional argument would not work. - You are right that it would work exactly for MPI_Wait and MPI_Test and if it is wanted by the MPI Forum, I can add two new Fortran routines MPI_Wait_f_sync_reg(buf,rq,ierror) MPI_Test_f_sync_reg(buf,rq,flag,ierror) - The question is, whether this duplication is necessary, because the problem can be solved with different methods, e.g., having buf as a module variable. In this case the additional overhead for producing the dope-vector for buf is not needed,
Having the buf variable in a module is an effective method of solving the "code motion across the MPI_Wait call" problem. And probably a good recommended practice anyway. Craig also pointed out another reason for not including buf as an argument to MPI_Wait. He argued, correctly, that the call to MPI_Wait could be in a different program unit from the call to the MPI_I{send/recv} call and, as a result, the name of buf might not be visible at the point where MPI_Wait is called. To me this is a definitive argument against a proposal to require buf in the MPI_Wait call. Cheers, Bill
i.e., the existing MPI_Wait is the more efficient one.
Comments from other members are highly appreciated.
Best regards Rolf
-- Bill Long [email protected] Fortran Technical Support & voice: 651-605-9024 Bioinformatics Software Development fax: 651-605-9142 Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101
participants (1)
-
Bill Long