[MPIWG Fortran] Questions on the F08 subarray format

Balaji, Pavan balaji at anl.gov
Sun Mar 2 15:47:14 CST 2014


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 <rabenseifner at hlrs.de> 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" <balaji at anl.gov>
>> To: mpiwg-fortran at lists.mpi-forum.org
>> 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
>> mpiwg-fortran at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
>> 
> 
> -- 
> Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
> 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
> mpiwg-fortran at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran




More information about the mpiwg-fortran mailing list