Re: [MPIWG Fortran] Questions on the F08 subarray format
Some more questions: 4. What happens when the void* corresponds to multiple counts of a single datatype from different processes (e.g., GATHER or ALLTOALL)? In the case of GATHER, suppose I’m gathering 2 INTEGERS from each processes, can my receive buffer now be contiguous for some processes and noncontiguous for others? 5. For some functions, the standard has wording that MPI_DATATYPE for a particular function can only have predefined datatype. What happens when the user uses a predefined datatype, but describes a subarray in the void* argument? I’m assuming these are just holes that were not intended, but the standard doesn’t seem to clearly state this. It’ll be great if someone can clarify the intention of the working group for each of the five cases I mentioned. Rolf already mentioned that the intention was to not allow noncontiguous buffers for WIN_CREATE. What about other functions that take void*? E.g., WIN_ATTACH/DETACH or other non-RMA functions that take void* but don’t provide a datatype? Thanks, — Pavan On Mar 1, 2014, at 5:29 PM, Rolf Rabenseifner <[email protected]> wrote:
I expect (after midnight) that clarifications are needed. On 1. MPI_WIN_CREATE: the goal should be contigues window, i.e., no strided subarrays.
Rolf
----- Original Message -----
From: "Pavan Balaji" <[email protected]> To: [email protected] Sent: Saturday, March 1, 2014 11:29:59 PM Subject: [MPIWG Fortran] Questions on the F08 subarray format
Folks,
I had a few questions on the MPI-3 F08 bindings, which I couldn’t find answers to in the standard. Can someone point me to the place where these are defined?
1. How does the subarray format work for functions that have a void* argument, but no datatype to describe them (e.g., MPI_WIN_CREATE)? In this case, What C function will MPI_WIN_CREATE_F08TS call? Do we need to create an separate internal MPIR_WIN_CREATE_NEW function in our implementation that takes a datatype argument? Does this mean that now MPI_WIN_CREATE can allow for noncontiguous buffers on each process?
2. How does the subarray format work for functions that have a datatype argument, but no void* corresponding to that datatype? For example, the target buffer in MPI_PUT is described using an MPI_AINT (offset), rather than a void*.
3. How does the subarray format work for functions that have two void* arguments corresponding to the same datatype (e.g., MPI_REDUCE)?
Thanks,
— Pavan
_______________________________________________ mpiwg-fortran mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
-- Dr. Rolf Rabenseifner . . . . . . . . . .. email [email protected] High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307) _______________________________________________ mpiwg-fortran mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
participants (1)
-
Balaji, Pavan