On 28 May 2019, at 22:34, Grant, Ryan Eric (-EXP) <regrant@sandia.gov> wrote:
Everyone,
Here are the changes based on feedback from today. There are quite a few changes but overall it is far less text than we had before. I'd appreciate any feedback and any other sets of eyes on this for a sanity check.
Thanks,
Ryan
<part.pdf>
From: HOLMES Daniel <d.holmes@epcc.ed.ac.uk>
Sent: Tuesday, May 28, 2019 7:32 PM
To: Anthony Skjellum; Grant, Ryan Eric (-EXP)
Cc: MPI WG Persistence working Group
Subject: [EXTERNAL] Re: [mpiwg-persistence] Notes from WG meeting 28th May 2019Hi all,
After further discussion, one of the answers has changed.
Question: how does datatype describe complex layouts?
Answer: it does not - it is the same as I/O with eType == xfer_type and fileType == contig
New answer: the {count, datatype} tuple specifies the type map for a single partition; that interpretation of the proposed parameters permits a straightforward generalisation to MPI_Psendv_init and MPI_Psendw_init, which allow the type map to be different for each partition. For MPI_Psendv_init, the count parameter becomes an array of counts (of length equal to the numPartitions parameter) that gives the type map for the Nth partition via an implicit MPI_Type_contiguous(count_array[N], xfer_type) construction. For MPI_Psendw_init, both the count and data type parameters become arrays (of length equal to the numPartitions parameter) that give the type map for the Nth partition via an implicit MPI_Type_contiguous(count_array[N], type_array[N]) construction. The W version would benefit from an additional of displacements for the same reason as for the existing W functions in MPI. These extension functions permit arbitrary partitioning in future but require a change to the proposed special-case functions.
Note: this new interpretation of the existing parameters for MPI_Psend_init and MPI_Precv_init avoids the possibility of the user giving a number of partitions that does not work with the {count, data type} tuple, e.g.numPartitions = 3count = 10datatype = MPI_Type_contiguous(100, MPI_DOUBLE)With the previous interpretation of the input parameters (i.e. the {count, data type} tuple specifies the type map for all partitions combined), this means MPI must try to divide 1000 doubles into 3 equally sized partitions, which leads to buffer under-run situations or to mandating some input combinations are erroneous.With the new interpretation of the input parameters (i.e. the {count, data type} tuple specifies the type map for each partition), this means there are 3 partitions of 1000 doubles, i.e. 3000 doubles in total across all partitions.
This is quite a fundamental change for a no-no vote, so it may result in the proposal being read (again) at the next face-to-face meeting.
Cheers,Dan.—
Dr Daniel Holmes PhD
Applications Consultant in HPC Research
d.holmes@epcc.ed.ac.uk
Phone: +44 (0) 131 651 3465
Mobile: +44 (0) 7940 524 088
Address: Room 2.09, Bayes Centre, 47 Potterrow, Central Area, Edinburgh, EH8 9BT—The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.—
On 28 May 2019, at 18:27, Skjellum, Anthony <Tony-Skjellum@utc.edu> wrote:
Cool — all seem fixable :-)
Anthony Skjellum, PhD205-807-4968
On May 28, 2019, at 4:25 PM, HOLMES Daniel via mpiwg-persistence <mpiwg-persistence@lists.mpi-forum.org> wrote:
Hi Ryan,
Here are my notes from the WG meeting today:
Define channel - for all usages throughout the spec (existing and proposed).
Example: use variables for tag, dest, etc parameters in the Psend_init call
Example: use variables for tag, dest, etc parameters in the Precv_init call
Example: typo for MPI_Pstart - should be MPI_Start and should not end with brace
Example: typo for &xfer_type in the Psend_init call - use just xfer_type instead
Example: typo for &xfer_type in the Precv_init call - use just xfer_type instead
Example: typo for &request and &i in the Pready call - use just request and i instead
Example: typo for &part in the Pwait call - use just part instead
Question: can partitioned receive match with any other send than the partitioned send it matched with during initialisation? No.
Question: how does datatype describe complex layouts?
Answer: it does not - it is the same as I/O with eType == xfer_type and fileType == contig
Suggestion: add an MPI_Info parameter to both MPI_Psend_init and MPI_Precv_init
Example: typo for amp parallel for (the for is missing)
Example: tasks need to use different values for i in Pready
Suggestion: mandate exactly one call to Pready for each partition between start and wait
Suggestion: partition parameters must be consistent - either int or MPI_Count
Note: there is room for (and potential use-cases for) Psendv_init (Pavan’s case) and Psendw_init (Rich’s case)
Cheers,Dan.—
Dr Daniel Holmes PhD
Applications Consultant in HPC Research
d.holmes@epcc.ed.ac.uk
Phone: +44 (0) 131 651 3465
Mobile: +44 (0) 7940 524 088
Address: Room 2.09, Bayes Centre, 47 Potterrow, Central Area, Edinburgh, EH8 9BT—The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.—
_______________________________________________
mpiwg-persistence mailing list
mpiwg-persistence@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-persistence