Open cniethammer opened 5 years ago
topol-2019-02-17_20.08.pdf uploaded
pdf version of the final draft including marked changes: mpi32-report-topol-2019-02-18-annotated.pdf
pdf version of the final draft including marked changes (additional marks --> version 2): mpi32-report-topol-2019-02-18-annotated-2.pdf
Slides to explain the new interface / for the reading: MPIX_2019-03-Chattanooga_v06.pdf
I tried to include most of the results of the discussions at the Chattanooga meeting in March and from the HW topology working group telcons into the following update. It is also the input for the virtual meeting today (Wed., April 24, 2019): mpi32-report-topol-2019-04-23-annotated.pdf
I updated the annotations: mpi32-report-topol-2019-04-23-annotated-2.pdf
I added (nearly) all of the English corrections from Jeff Squyres and all is also available in the pull request: mpi32-report-topol-2019-04-24-annotated.pdf
It is the base for the virtual meeting today (April 24, 2019)
Latest version for the reading at the WG telcon May 3, 2019: mpi32-report-topol-2019-05-03-annotated.pdf
The following proposal is prepared for the formal reading at the Chicago meeting: mpi32-report-topol-2019-05-12-annotated.pdf
Based on the reading in Chicago, I prepared a new and smaller version for the formal reading in Zürich: (file removed)
A few additional bugs removed - new version: mpi32-report-topol-2019-08-12-annotated.pdf
New version, including the correction from Guillaume and results of the virtual meeting from Aug. 14, 2019: mpi32-report-topol-2019-08-17-annotated.pdf
120_mpi32-report-topol-2019-08-17-annotated_corr2019-09-05.pdf Including some additional typo corrections from the HW topology WG meeting Sep. 5, 2019 at the MPI forum meeting in Zurich; the corrections were added to the pull request.
I changed the logic:
MPI_CART_CREATE_WEIGHTED has still this additional Feature "In the case of a multi-level hierarchical hardware, the user of this routine can further constrain the factorization and the reordering of the process ranks with the info Argument by choosing split levels which should mark slower to faster connectivity." And then the already used text with MPI_COMM_TYPE_SHARED and MPI_COMM_TYPE_HW_SUBDOMAIN still using the two large figures with "48 processes" and "24 shared memory nodes".
A new completely new subsection "Cartesian Examples"
Here the new pdf: mpi32-report-topol-2019-11-06-annotated.pdf
Small updates based on the reading at the HW topol WG telcon Nov. 6, 2019: mpi32-report-topol-2019-11-07-annotated.pdf Caution: The pull request 98 still reflects the old version from Aug. 17, 2019
New version for the reading in Albuqueque: mpi32-report-topol-2019-11-07-annotated-corr-11-21.pdf The corresponding pull request is also updated.
This failed the no-no vote in Albuquerque, New Mexico on 2019-12-12.
First version for Re-reading in Portland, Feb. 2020 Major changes:
Latest annotated pdf: mpi-report-issue120-topol-2020-02-01-annotated.pdf
It is based on
Rolf, Thank you for changing your proposal.
In my computer API(Application Program Interface) definition policy, API should be understandable and used without any knowledge, at least, users should be able to write sample program and run after only reading the specification.
Based on the polity, current proposal become acceptable in minimum. However, the paragraphs are still confusing me.
Here are some comments about mpi32-report-topol-2020-02-01-annotated.pdf Page.315.319: Figure 7.1 and 7.2 have become much better to understand intuitively. But, still confusing, the suffix number of each definition g, h w, and d seems to a dimension number, but not easy to understand. Also dimension direction(0, 1, 2) arrows should be added or changed from the numbers to xyz character.
Page.318: it is not clear the index value i, it seems to dimension index for dim_weight[] and dims[]. Because of character i is the most common character in computer and needs to add definition "0 <= i < ndims" or "i=0::ndims " in whole in the related sections.
Page.319: Example 7.3, index value of i can be imagined that i is the dimensional value. A little bit confusing is which value of dims[i] in dim_weights[i].dims[i] formula in the table. In the description of dims in the first column should be dims[i]i=0::2 for better understanding.
Best regards, Shinji.
Dear Shinji,
I hope that I resolved all your proposals. Your view-point helped me to look for better readability.
Here the new version for the re-reading in Portland:
mpi-report-issue120-topol-2020-02-03-annotated.pdf
Thank you very much and best regards Rolf
PR98 is also uptated.
Small updates based on Artem's review (see pull request). New pdf: mpi-report-issue120-topol-2020-02-04-annotated.pdf
Originally, for the reading in Albuquerque, we had double precision dim_weights. Now (in version A), they ar changed to MPI_Count, because in MPI_Cart_create_weighted they count bytes and possibly huge, because they represent the whole system and not only one MPI process.
PDF for version A is as above: mpi-report-issue120-topol-2020-02-04-annotated.pdf
For MPI_Dims_create_weighted, they have no such absolute value meaning: they are just realtive factors. Therefore, I propose as version B, to go back to double precision dim_weights. This does not change example 7.2, but simplifies example 7.3.
PDF for version B: mpi-report-issue120-topol-2020-02-04-B-annotated.pdf
mpi-report-issue120-topol-2020-02-20-annotated.pdf
Latest version from Portland WG meeting and plenary discussions.
Updated version for the no-no-vote on Fab. 21, 2020 in Portland: All small changes to the version from Feb. 4, 2020. mpi-report-issue120-topol-2020-02-20b-annotated.pdf
Status: The changes from version Feb. 4, 2020 to version Feb. 21, 2020 still need a no-no-vote before the reading of version Feb. 21, 2020 is finished.
The no-no reading at the February 2020 meeting was withdrawn. This will require a no-no vote on the text read by @RolfRabenseifner at the June 2020 meeting before its first vote.
Same version as from the end from the portland meeting, plus a few typo corrections ...:
mpi-report-issue120-topol-2020-02-21-annotated.pdf
(I added the corrections to the rull request and also to the annotated pdf version from Feb 21, 2020)
Same version as from the end from the portland meeting, plus another small corrections ...:
mpi-report-issue120-topol-2020-02-21-annotated.pdf
Here also an introductory set of slides for the reading of the last changes: MPIX_2020-06-10-Munich-v03.pdf
The new MPI_Cart_create_weighted function has dims as an output parameter. This requires to adapt MPI_Cart_get which is currently supposed to return the value provided in the call to MPI_Cart_create. This was not a problem so far, as the value is not changed by this call.
Suggestion to fix this issue in https://github.com/mpi-forum/mpi-standard/pull/98/commits/62d049c6b4a5ac68755a5f6cea7a9b741d899da3.
With this last change, we produced a new annotated pdf: mpi-report-issue120-topol-2020-06-14.pdf It contains the changes from Portland (in green) plus a very few changes until now (in blue).
With this last change, we produced a new annotated pdf: mpi-report-issue120-topol-2020-06-14.pdf It contains the changes from Portland (in green) plus a very few changes until now (in blue).
I do not see any annotations in the PDF when I view it. Am I missing something?
This is the diff of everything since the Portland meeting. Is that what you're intending to be the no-no reading?
With this last change, we produced a new annotated pdf: mpi-report-issue120-topol-2020-06-14.pdf It contains the changes from Portland (in green) plus a very few changes until now (in blue).
I do not see any annotations in the PDF when I view it. Am I missing something?
My apologies, that I uploaded the plain file instead of the annotated one. You were the first one detecting this. Here the really annotated one:
This is the diff of everything since the Portland meeting. Is that what you're intending to be the no-no reading?
You are right. I also expect that this may be more as for a no-no-vote for some membersa of the forum. Martin and you had setup in the meeting agenda only a "reading" when I looked first on it. This was fine for me. Now, it shows a "NoNo Reading". Plus the votes. If someone of the forum would not agree with no-no-vote, then I would proceed with the voting in the next meeting (same as with #96) and would take this reading as a normal reading. I'll do the reading with the slides plus the annotated pdf.
Any comment about this feedback? https://github.com/mpi-forum/mpi-standard/pull/98#discussion_r468020783
Any comment about this feedback? mpi-forum/mpi-standard#98 (comment)
I believe @RolfRabenseifner was on vacation and may not have seen/read these comments yet.
Personally, I agree with ANL's objection for all the reasons noted in Ken's comment and those in Bill's reply.
@raffenet & @wgropp & others: the key question is - will you vote against this ticket because of this objection? We should not accept things into the MPI Standard that are normative but unimplementable.
@wesbland: I guess there is still time, procedurally, for @RolfRabenseifner to prepare a "no-no-vote" change before the 1st vote - how many hours remain?
Yes, I would vote against this if it includes this language. However, because of three separate conflicts, I won’t be able to attend and vote this week. I would support a no-no-vote change for this. If it passes anyway, I strongly urge an errata item to correct this ASAP.
Bill
William Gropp Director and Chief Scientist, NCSA Thomas M. Siebel Chair in Computer Science University of Illinois Urbana-Champaign
On Aug 17, 2020, at 7:50 AM, Dan Holmes notifications@github.com wrote:
Any comment about this feedback? mpi-forum/mpi-standard#98 (comment) https://github.com/mpi-forum/mpi-standard/pull/98#discussion_r468020783 I believe @RolfRabenseifner https://github.com/RolfRabenseifner was on vacation and may not have seen/read these comments yet.
Personally, I agree with ANL's objection for all the reasons noted in Ken's comment and those in Bill's reply.
@raffenet https://github.com/raffenet & @wgropp https://github.com/wgropp & others: the key question is - will you vote against this ticket because of this objection? We should not accept things into the MPI Standard that are normative but unimplementable.
@wesbland https://github.com/wesbland: I guess there is still time, procedurally, for @RolfRabenseifner https://github.com/RolfRabenseifner to prepare a "no-no-vote" change before the 1st vote - how many hours remain?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mpi-forum/mpi-issues/issues/120#issuecomment-674861711, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJFGZXBHN3ZGV5AVYEPBHLSBERQ3ANCNFSM4GXYOEFA.
@wesbland: I guess there is still time, procedurally, for @RolfRabenseifner to prepare a "no-no-vote" change before the 1st vote - how many hours remain?
Procedurally, no-no votes can be announced any time up to the time where we vote on this item (which is currently schedule for tomorrow (Tuesday) at the earliest. So a change could be made sometime today and read tomorrow.
Yes, I haven't seen it due to my vacation. Thank you for remembering me.
Late change for no-no-vote on Aug 18,, 2020: Minimizing communication time as advice to implementors for high quality MPI implementations: mpi-report-issue120-topol-2020-08-17-annotated-pages334-335.pdf
Dear Bill, Pavan, Ken and Dan,
thank you for your review and proposal.
I put the text into an advice to implementors and as "A high quality..."
I hope, that it is now okay:
The changes are highlighted on pages 334+335.
Best regards Rolf
----- Original Message -----
From: "github notifications" notifications@github.com To: "mpi-forum" mpi-issues@noreply.github.com Cc: "Rolf Rabenseifner" rabenseifner@hlrs.de, "Mention" mention@noreply.github.com Sent: Monday, August 17, 2020 2:58:33 PM Subject: Re: [mpi-forum/mpi-issues] MPI_Cart_create_weighted / Topology aware Cartesian communicators (#120)
Yes, I would vote against this if it includes this language. However, because of three separate conflicts, I won’t be able to attend and vote this week. I would support a no-no-vote change for this. If it passes anyway, I strongly urge an errata item to correct this ASAP.
Bill
William Gropp
Director and Chief Scientist, NCSA
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign
On Aug 17, 2020, at 7:50 AM, Dan Holmes notifications@github.com wrote:
Any comment about this feedback? mpi-forum/mpi-standard#98 (comment) https://github.com/mpi-forum/mpi-standard/pull/98#discussion_r468020783
I believe @RolfRabenseifner https://github.com/RolfRabenseifner was on vacation and may not have seen/read these comments yet.
Personally, I agree with ANL's objection for all the reasons noted in Ken's comment and those in Bill's reply.
@raffenet https://github.com/raffenet & @wgropp https://github.com/wgropp & others: the key question is - will you vote against this ticket because of this objection? We should not accept things into the MPI Standard that are normative but unimplementable.
@wesbland https://github.com/wesbland: I guess there is still time, procedurally, for @RolfRabenseifner https://github.com/RolfRabenseifner to prepare a "no-no-vote" change before the 1st vote - how many hours remain?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/mpi-forum/mpi-issues/issues/120#issuecomment-674861711, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJFGZXBHN3ZGV5AVYEPBHLSBERQ3ANCNFSM4GXYOEFA.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mpi-forum/mpi-issues/issues/120#issuecomment-674865455
-- Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner@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) .
This passed a "no no" and did not meet ballot quorum for a first vote on 2020-08-19.
The proposal is now re-based on mpi-4.x. After the long pause since the reading in 2020, I prepared an updated commented pdf based on current mpi-4.x: See yellow marker and PR98 marker on pages 367-378, 1012, 1032, 1035-1036 in mpi41-report_Issue120_PR98.pdf
Feedback during the March 2023 MPI Forum meeting:
Leave out the MPI_DIMS_CREATE_WEIGHTED with all the mathematics
Also leave out the text added to the description of the behavior of MPI_DIMS_CREATE.
Without MPI_Dims_create AtoI and MPI_Dims_create_weighted (the agenda of changes): mpi41-report_Issue120_PR98_only-Cart_weighted.pdf
Without MPI_Dims_create AtoI and MPI_Dims_create_weighted (the final agenda of changes): mpi41-report_Issue120_PR98_only-Cart_weighted.pdf
The uncommented result pdf: mpi41-report_Issue120_PR98_only-Cart_weighted_result-uncommented.pdf
Result from the reading, see yellow marker and PR98 marker on pages pages 367-376, 1008, 1028, 1031-1032, 1048, 1069 in mpi41-report_Issue120_PR98_final.pdf
This passed a no-no vote.
Yes | No | Abstain |
29 | 0 | 2 |
Problem
Many scientific applications perform computations on a Cartesian grid. The common approach for the parallelization of these applications with MPI is domain decomposition. To help developers with the mapping of MPI processes to subdomains, the MPI standard provides the concept of process topologies. However, the current interface shows problems and requires too much care in its usage: So, MPI_Dims_create does neither take into account the application nor the hardware topology and most implementations of MPI_Cart_create can only partially fix these problems [Gropp]. However, the mapping has a huge influence on communication performance on multi node NUMA systems.
Proposal
A set of two new API functions is proposed, which takes into account the computational grid as well as the hardware topology. These functions are MPI_CART_CREATE_WEIGHTED, and MPI_DIMS_CREATE_WEIGHTED.
The new API allows the efficient mapping of processes for applications performing computations on a Cartesian grid over multiple NUMA layers. For details see the material from the Euro MPI 2018 and 2019 contribution of Niethammer and Rabenseifner: The abstract [Niethammer], slides and implementation example can be found under https://fs.hlrs.de/projects/par/mpi/EuroMPI2018-Cartesian/
The software documentation of the example implementation together with a benchmark see https://fs.hlrs.de/projects/par/mpi//EuroMPI2018-Cartesian/EuroMPI2018_Niethammer+Rabenseifner_ML-Cartesian_software-docu.pdf
The new functions support equally and not equally balanced factorizations of the number of processes of comm_old into n dimensions. Moreover, MPI_CART_CREATE_WEIGHTED provides a reordering of the ranks and allows further optimizations applied to the factorization, taking into account both, application information through the dim_weights argument and hardware information through the comm_old input argument.
Changes to the Text
The addition of the following two API functions to the Process Topology chapter: MPI_CART_CREATE_WEIGHTED and MPI_DIMS_CREATE_WEIGHTED, Together with new section "Cartesian Examples" that explains two use cases for the new routines.
Latest annotated pdf:
Versions for the reading on Feb. 2020 in Portland: A with MPI_Count dim_weights:
Latest version from Portland WG and plenary discussions:
Impact on Implementations
Implementations have to provide 2 new API functions. No changes to existing MPI functions. Portable Open Source software solution exists.
Impact on Users
Users benefit from improved performance on NUMA systems.
References
[Gropp] W. D. Gropp, Using Node [and Socket] Information to Implement MPI Cartesian Topologies, Parallel Computing, 2019, and in: Proceedings of the 25th European MPI User' Group Meeting, EuroMPI'18, ACM, New York, NY, USA, 2018, pp. 18:1-18:9. doi:10.1145/3236367.3236377. Slides: http://wgropp.cs.illinois.edu/bib/talks/tdata/2018/nodecart-final.pdf
[Niethammer2018] Topology aware Cartesian grid mapping with MPI Christoph Niethammer and Rolf Rabenseifner, Poster at Euro MPI 2018 https://fs.hlrs.de/projects/par/mpi//EuroMPI2018-Cartesian/EuroMPI2018_Niethammer+Rabenseifner_ML-Cartesian_e-abstract.pdf and https://fs.hlrs.de/projects/par/mpi/EuroMPI2018-Cartesian/
[Niethammer2019] Christoph Niethammer and Rolf Rabenseifner. An MPI interface for application and hardware aware Cartesian topology optimization. In Proceedings of the 26th European MPI Users' Group Meeting (EuroMPI 2019), September 11-13, 2019, Zürich, Switzerland. ACM, New York, NY, USA, 9 pages.
A set of slides explaining the interface: MPIX_2019-03-Chattanooga_v06.pdf
Introductory slides for the reading at the virtual meetings June 10 and June 29-July 1, 2020: MPIX_2020-06-10-Munich-v03.pdf
Related Pull Request
https://github.com/mpi-forum/mpi-standard/pull/98