[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mpi-21] MPI 2.0 combined document - merging MPI 1.1 and 2.0
As told in my previous mail, I have already prepared a merging plan
for MPI 1.1 with MPI 2.0.
It will be the basis for the final MPI 2.1 document.
Most merging decisions are given by the MPI-2 document.
There are about 11 decisions that must be discussed and
voted separately by the Forum.
I have put these 11 decisions at the beginning of the attached document.
These 11 decisions should be discussed on the Jan. meeting.
If you find further topics that must be discussed, please feel free
to mention them.
Best regards
Rolf
Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner@xxxxxxx
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: Allmandring 30)
Merge of MPI-1.1 (June 1995) and MPI-2.0 (July 1997)
----------------------------------------------------
The final merge will be done between
- MPI-1.2 (combined document, proposed by Rainer Keller), and
- MPI-2.0 (July 1997)
The goal is to produce one single "combined document"
that reflects exactly the MPI standard 2.0.
This combined document MPI 2.0 should be the basis for all future
"combined documents" MPI 2.1, MPI 2.2, MPI 3.0, ...
Rationale.
The goals behind this combining of the documents have been already
expressed in the MPI-1.1 standard:
"Sect. 1.2 Who should use this standard?
This standard is intended for use by all those who want to write
portable message-passing programs in Fortran 77 and C.
This includes individual application programmers, developers
of software designed to run on parallel machines, and creators
of environments and tools. ..."
It is more efficient that the MPI Forum combines the documents once
than every user of the MPI documents has to do this in his/her daily
work based on the combination of MPI-1.1 and the several updating
documents, i.e., MPI-2, and the future updates 2.1, 2.2, ... .
The current version is based on MPI-1.1 as interim solution.
=======================================================================
The following section summarizes all decisions that are not mainly
given by the MPI-1.1 and MPI-2.0 standard documents.
These decisions should be carefully reviewed by the MPI Forum.
(They are all repeated in the full merging plan below.)
1.) The title of the combined document:
MPI: A Message-Passing Interface Standard
Version 2.0 (combined document)
2.) The date of the merged document is fixed when it is released (in 2008).
3.) Ackno on the title page:
"This work was supported in part by ARPA, NSF and DARPA under grant ASC-9310330,
the National Science Foundation Science and
Technology Center Cooperative Agreement No. CCR-8809615,
and the NSF contract CDA-9115428,
and by the Commission of the European Community through Esprit project
P6643
and under project HPC Standards (21111)."
4.) Abstract
"This document describes the MPI standard version 2.0 in one
combined document.
This document combines the previous documents MPI-1.1
and MPI-2. MPI-2 included MPI-1.2.
MPI-2 includes point-to-point message passing, collective communications,
a groups and communicator concept, process topologies,
an environmental management, and a profiling interface.
Language bindings for C and Fortran are defined.
The MPI-1.2 part of the MPI-2 document contains clarifications
and corrections to the MPI-1.1 standard and defines MPI-1.2.
The MPI-2 part of the MPI-2 document describes
additions to the MPI-1 standard and defines the MPI standard version 2.0.
These include miscellaneous
topics, process creation and management, one-sided communications,
extended collective operations, external interfaces, I/O, and
additional language bindings (C++)."
5.) Copyright years
1993, 1994, 1995, 1996, 1997, 2008
6.) New entries on the history page
Version 2.0: ?????, 2008.
This document combines the previous documents
MPI 1.2 (combined document, ????, 2008)
and MPI-2.0 (July 18, 1997).
Especially sections of the Chapter 4, Miscellany, and the Chapter 7,
Extended Collective Operations, have been merged into the Chapters
of MPI 1.2."
Version 2.0: July 18, 1997.
Beginning after the release of MPI 1.1, the MPI Forum began meeting
to consider corrections and extensions. MPI-2 has been
focused on process creation and management, one-sided communications,
extended collective communications, external interfaces and parallel I/O.
A miscellany chapter discusses items that don't fit elsewhere,
in particular language interoperability."
Version 1.2: ?????, 2008.
This document combines the previous documents MPI 1.1 (June 12, 1995)
and the MPI 1.2 Chapter in MPI-2 (July 18, 1997).
Version 1.2: July, 18 1997.
The MPI-2 Forum introduced MPI 1.2 as Chap.3 in the standard
"MPI-2: Extensions to the Message-Passing Interface", July 18, 2007."
>> And now the text from MPI 2.0: page 21 lines 14-19.
7.) The acknowledgment pages of both documents are printed one after the next.
The first list of persons is introduced with the following new line:
"Those who served as primary coordinators in MPI 1.0 and MPI 1.1 are:"
And the MPI-2 list of persons is introduced with:
"Those who served as primary coordinators in MPI 1.2 and MPI 2.0 are:"
For the merging process I would add:
"The editors of the combined documents have been:
-- Rainer Keller (MPI 1.2 - combined document)
-- Rolf Rabenseifner (MPI 2.0 - combined document)"
8.) Before the definition of each deprecated interface, the following
sentence is added:
"The use of the following function is deprecated since MPI 2.0."
9.) Sequence of all chapters:
- First all MPI-1, except Profiling
- All MPI-2, except Extended Collective (it is fully merged into
corresponding MPI-1.1 chapters)
- Profiling Chapter
- Only one merged Appendix
The following MPI-2.0 sections are merged into the corresponding
MPI-1.1 sections:
- MPI-2.0 Chap. 4 Miscellany, except
-- MPI-2.0 Sect. 4.10 (The Info Object)
-- MPI-2.0 Sect. 4.11 (Memory Allocation)
-- MPI-2.0 Sect. 4.12 (Language Interoperability)
-- MPI-2.0 Sect. 4.17 (Functions and Macros)
- MPI-2.0 Chap. 5 Extended Collective Operations
- MPI-2.0 Sect. 8.8 New Attribute Cacching Functions
- MPI-2.0 Sect. 8.9 Duplicating a Datatype
10.) The new "Version Number" section was put at the beginning of the
MPI-1.1 Chap. "Environmental Management" (done in MPI 1.2)
The Section "Portable MPI Process Startup" is put at the end
of the MPI-1.1 Chapter "Environmental Management".
Okay?
11.) The MPI-1.2 C++ interfaces in MPI-2.0 App. B.3 - B.12 are written
in a syntax that is different to the syntax used in all other
C++ declarations.
For consistency, in B.3 - B.12, the
"namespace MPI {
standard-type mpi-routine(standard-type arg1, mpi-type arg2...)
mpi-type mpi-routine(standard-type arg1, mpi-type arg2...)
}"
should be modified into
"standard-type MPI::mpi-routine(standard-type arg1, MPI::mpi-type arg2...)"
"MPI::mpi-type MPI::mpi-routine(standard-type arg1, MPI::mpi-type arg2...)"
=======================================================================
------------------------- Full Merging Plan ------------------------
=======================================================================
This file is already prepared to be used for executing
the merge by editor-commands (e.g. with sed).
Therefore, this file is sorted by the sequence of the merged text.
For all text in MPI-1.1 and MPI-2.0, there are following options:
- used
- removed
- identical, therefore one used, the other removed
- used, but modified, indicated with
"original text" --> "new text in the combined document"
- Merged text, substituting text from both original documents
"new merged text"
- New text, e.g. new cross-references, or indicating
deprecated routines.
Most merging decisions are obvious.
The MPI Forum should check the TODO items first
before reviewing the final combined document.
-----------------------------------------------------------------------
Title page:
- MPI-1.1 Document-Title
(MPI-2.0 Document-Title: removed)
- New document-subtitle: "Version 2.0 (combined document)"
- MPI-1.1 Forum-Line
(MPI-2.0 Forum-Line: is identical)
- New date: current date when merge is finalized
(MPI-1.1 Date and MPI-2.0 Date are removed)
- Merged text from:
-- MPI-1.1 Ackno-text
-- MPI-2.0 Ackno-text
New merged text:
"This work was supported in part by ARPA, NSF and DARPA under grant ASC-9310330,
the National Science Foundation Science and
Technology Center Cooperative Agreement No. CCR-8809615,
and the NSF contract CDA-9115428,
and by the Commission of the European Community through Esprit project
P6643
and under project HPC Standards (21111)."
(TODO: Title, date, and this merged text should be carefully reviewed)
Abstract page:
- MPI-2.0 Abstract-page. This text must be modified.
(MPI-1.1 has no abstract-page)
New text (proposal based on MPI-2 text):
"This document describes the MPI standard version 2.0 in one
combined document.
This document combines the previous documents MPI-1.1
and MPI-2. MPI-2 included MPI-1.2.
MPI-2 includes point-to-point message passing, collective communications,
a groups and communicator concept, process topologies,
an environmental management, and a profiling interface.
Language bindings for C and Fortran are defined.
The MPI-1.2 part of the MPI-2 document contains clarifications
and corrections to the MPI-1.1 standard and defines MPI-1.2.
The MPI-2 part of the MPI-2 document describes
additions to the MPI-1 standard and defines the MPI standard version 2.0.
These include miscellaneous
topics, process creation and management, one-sided communications,
extended collective operations, external interfaces, I/O, and
additional language bindings (C++)."
(TODO: This merged text should be carefully reviewed)
Technically:
"MPI" --> "\mpi/"
"MPI-1" --> "\mpii/"
"MPI-1.1" --> "\mpiidoti/"
"MPI-1.2" --> "\mpiidotii/"
"MPI-2" --> "\mpiii/"
Copyright page:
- MPI-2.0 Copyright-page,
"1995" --> "1993, 1994, 1995, 2008"
(MPI-1.1 has the same text, but years "1993, 1994, 1995".
In MPI-1.1, the copyright was on the versions-history-page)
2008 is added to the list because the merging gives a new
quality and is done 2008.
(TODO: Is it okay to add 2008 to this list?)
Versions-History page:
- New:
-- "Version 2.0: ?????, 2008.
This document combines the previous documents
MPI 1.2 (combined document, ????, 2008)
and MPI-2.0 (July 18, 1997).
Especially sections of the Chapter 4, Miscellany, and the Chapter 7,
Extended Collective Operations, have been merged into the Chapters
of MPI 1.2."
-- "Version 2.0: July 18, 1997.
Beginning after the release of MPI 1.1, the MPI Forum began meeting
to consider corrections and extensions. MPI-2 has been
focused on process creation and management, one-sided communications,
extended collective communications, external interfaces and parallel I/O.
A miscellany chapter discusses items that don't fit elsewhere,
in paricular language interoperability."
-- "Version 1.2: ?????, 2008.
This document combines the previous documents MPI 1.1 (June 12, 1995)
and the MPI 1.2 Chapter in MPI-2 (July 18, 1997).
-- New: "Version 1.2: July, 18 1997.
The MPI-2 Forum introduced MPI 1.2 as Chap.3 in the standard
"MPI-2: Extenions to the Message-Passing Interface", July 18, 2007."
From MPI 2.0: page 21 lines 14-19.
(TODO: These new paragraphs should be carefully reviewed)
- MPI-1.1 Versions-History
Contents (automatically)
Acknoledgments section:
- MPI-1.2 Section-title
(MPI-2.0 Section-title: is identical)
- MPI-2.0 1st paragraph
- MPI-2.0 2nd paragraph, sentence 1+2, "MPI-2" --> "MPI"
(MPI-1.1 1st paragraph is nearly identical with MPI-2.0 2nd paragraph)
- Modified text, as new paragraph:
"Those who served as primary coordinators in MPI 1.0 and MPI 1.1 are:"
(TODO: This new sentence should be reviewed)
- MPI-1.1 Ackno-page lines 8-27
- MPI-1.1 Ackno-page lines 28-29, "MPI" --> "MPI 1.0 and MPI 1.1"
- MPI-1.1 Ackno-page lines 30-end
- Modified text, as new paragraph:
"Those who served as primary coordinators in MPI 1.2 and MPI 2.0 are:"
(TODO: This new sentence should be reviewed)
- MPI-2.0 Ackno-page ix, list of persons
- MPI-2.0 Ackno-pages x-xi
- New: Is it okay to add some words about the merging work:
"The editors of the combined documents have been:
-- Rainer Keller (MPI 1.2 - combined document)
-- Rolf Rabenseifner (MPI 2.0 - combined document)"
(TODO: This new paragraph should be reviewed)
Chapter 1: (Introduction to MPI)
- MPI-1.1 Chapter 1 title (Introduction to MPI)
(MPI-2.0 Chapter 1 title (Introduction to MPI-2) removed)
- MPI-1.1 Sect. 1.1 (Overview and Goals)
- MPI-2.0 Sect. 1.1 (Background)
with modified title "Background" --> "Background of MPI-2"
- MPI-1.1 Sect. 1.2 (Who Should Use This Standard)
modified: "Fortran 77 and C" --> "Fortran, C and C++"
- MPI-1.1 Sect. 1.3 (What Platforms Are Targets For Implementation?)
- MPI-1.1 Sect. 1.4 (What Is Included In The Standard?)
modified: "Fortran 77 and C" --> "Fortran, C and C++"
new text before "Profiling interface":
- A Miscellany chapter
- Process creation and management
- One-sided communication
- External interfaces
- Parallel file I/O
- MPI-1.1 Sect. 1.5 (What is not Included In The Standard?)
removed list entries:
- "Explicit shared-memory operations"
- "Explicit support for threads"
- "Support for task management"
- "I/O functions"
- To be merged (Organization of this Document)
The sections MPI-1.1 Sect. 1.6 and MPI-2.0 Sect. 1.2 are merged:
- MPI-1.1 Sect. 1.6 Title (Organization of this Document)
- MPI-2.0 Sect. 1.2 Title (Organization of this Document) identical/removed
- MPI-1.1 page 4 lines 18-19 (introduction-text)
- MPI-1.1 page 4 lines 20-29 (MPI-1.1, Chap. 2 - Chap. 4)
New text appended: (Modified sentence from MPI-2.0 page 2 lines 31-32)
"With MPI-2, the semantics of collective operation was extended
to include intercommunicators."
and MPI-2.0 page 2 sentence on lines 36-37.
- MPI-1.1 page 4 lines 30-41 (MPI-1.1, Chap. 5 - Chap. 7)
- MPI-2.0 page 2 lines 10-24 removed
- New paragraph:
"The following Chapters 8-13 have been added with MPI-2"
- MPI-2.0 page 2 lines 26-33 (MPI-2.0, Chap. 4 - Chap. 6)
They are Chap. 8 - Chap. 10 in this combined document
- MPI-2.0 page 2 lines 38-45 (MPI-2.0, Chap. 4 - Chap. 6)
They are Chap. 11 - Chap. 13 in this combined document
- MPI-1.1 page 4 lines 42-47 (MPI-1.1, Chap. 8)
It is Chap. 14 in this combined document
- MPI-2.0 page 2 line 46
- MPI-1.1 page 5 lines 1-5
modification: "Fortran 77 and C" --> "Fortran, C, and C++"
"C and Fortran" --> "C, C++, and Fortran"
- MPI-2.0 page 3 lines 7-36
Chapter 2: (MPI-2 Terms and Conventions)
- MPI-2.0 Chap.2
- modified title: "MPI-2" --> "MPI"
(MPI-1.1 Chap.2 is removed)
(The MPI-2 text is based on the MPI-1 text.
The MPI-2 text is intended to substitute the MPI-1 text.)
Chapter 3: (Point-to-Point Communication)
- MPI-1.1 Chap.3 (Point-to-Point Communication)
(Several parts of MPI-2.0 Chap.4 Miscellany
will be merged into this MPI-1.1 chapter:
-- MPI-2.0 Sect. 4.4 Datatype Constructor MPI_TYPE_CREATE_INDEXD_BLOCK
-- MPI-2.0 Sect. 4.5 Treatment of MPI_Status
-- MPI-2.0 Sect. 4.7 Committing a Committed Datatype
-- MPI-2.0 Sect. 4.14 New Datatype Manipulation Functions
-- MPI-2.0 Sect. 4.15 New Predefined Datatypes
4.15.2 --> into Collective Communications
-- MPI-2.0 Sect. 4.16 Canonical MPI_PACK and MPI_UNPACK
)
The following items tell which MPI-2.0 lines must be merged into MPI-1.1
at which position.
- MPI-2.0 Sect. 4.15 (New Predefined Datatypes)
remove this Section title
- MPI-2.0 Sect. 4.15.1 (Wide Characters)
to be added after MPI-1.1 page 19 line 13
as subsubsubsection (i.e. without section number).
- MPI-2.0 Sect. 4.15.3 (Unsigned long long Type)
to be added after MPI-1.1 page 19 line 13
as subsubsubsection (i.e. without section number).
- MPI-2.0 Sect. 4.5 Title (Treatment of MPI_Status) removed
- MPI-2.0 Sect. 4.5 page 40 lines 32-33,
modified "features" --> "feature",
"add" --> "adds",
"do" --> "does"
and
MPI-2.0 Sect. 4.5.1 (Passing MPI_STATUS_IGNORE for Status),
to be added after MPI-1.1 Sect.3.2.5 (Return status),
i.e., after MPI-1.1 page 23 line 3
- MPI-2.0 Sect. 4.5.2 (Non-destructive Test of status)
to be added after MPI-1.1 Sect.3.7.5 (Multiple completions),
i.e., after MPI-1.1 page 51 line 10
- MPI-2.0 Sect. 4.14 (New Datatype Manipulation Functions),
only the overview section (MPI-2.0 page 65 lines 40-48)
to be added as a 1st subsubsection
before MPI-1.1 Sect.3.12.1 (Datatype constructors),
i.e., before MPI-1.1 page 62 line 42
- MPI-2.0 Sect. 4.14.1 (Type Constructors with Explicit Addresses),
only the overview section (MPI-2.0 page 66 lines 1-12)
modified: "The four functions below" (page 66 line 2) -->
"The four functions MPI_TYPE_CREATE_HVECTOR,
MPI_TYPE_CREATE_HINDEXED, MPI_TYPE_CREATE_STRUCT, and MPI_GET_ADDRESS"
to be added as a 2nd subsubsection
before MPI-1.1 Sect.3.12.1 (Datatype constructors),
i.e., before MPI-1.1 page 62 line 42
- MPI-2.0 Sect. 4.14.1 (MPI_TYPE_CREATE_HVECTOR),
i.e., MPI-2.0 page 66 lines 14-31
to be added before MPI-1.1 declaration of MPI_TYPE_HVECTOR,
i.e., before MPI-1.1 page 65 line 5
- New text before MPI-1.1 page 65 line 5 (MPI_TYPE_HVECTOR):
"The use of the following function is deprecated since MPI 2.0."
(TODO: This sentence is put before the definition of each deprecated interface.
This action plan should be reviewed by the MPI Forum.)
- MPI-2.0 Sect. 4.14.1 (MPI_TYPE_CREATE_HINDEXED),
i.e., MPI-2.0 page 66 line 34 - page 67 line 9
to be added before MPI-1.1 declaration of MPI_TYPE_HINDEXED,
i.e., before MPI-1.1 page 67 line 19
- New text before MPI-1.1 page 67 line 19 (MPI_TYPE_HINDEXED):
"The use of the following function is deprecated since MPI 2.0."
- MPI-2.0 Sect. 4.4 (Datatype Constructor MPI_TYPE_CREATE_INDEXED_BLOCK)
- modify "\section{Datatype Constructor \mpifunc{MPI\_TYPE\_CREATE\_INDEXED\_BLOCK}}"
--> "\subsubsection{\mpifunc{MPI\_TYPE\_CREATE\_INDEXED\_BLOCK}}"
- to be added after MPI-1.1 MPI_TYPE_HINDEXED (in 3.12.1),
i.e., after MPI-1.1 page 68 line 10
- MPI-2.0 Sect. 4.14.1 (MPI_TYPE_CREATE_STRUCT),
i.e., MPI-2.0 page 67 lines 12-36
to be added before MPI-1.1 declaration of MPI_TYPE_STRUCT,
i.e., before MPI-1.1 page 68 line 16
- New text before MPI-1.1 page 68 line 16 (MPI_TYPE_STRUCT):
"The use of the following function is deprecated since MPI 2.0."
- MPI-1.1 page 68 line 38 modify "recieve call" --> "receive call"
- MPI-2.0 Sect. 4.14.4 (Subarray Datatype Constructor),
and
MPI-2.0 Sect. 4.14.5 (Distributed Array Datatype Constructor),
i.e., MPI-2.0 page 70 line 24 - page 77 line 16
to be added before MPI-1.1 Sect. 3.12.2 (Adress and extent functions),
i.e., before MPI-1.1 page 69 line 22
Add new text after MPI-2.0 Sect 4.14.4 page 51 line 10:
"See also Section <section_number of Chap.8 Functions and Macros>."
- Modified text: MPI-1.1 page 69 line 22, Sect 3.12.2 subsubsection title:
"Address and extent functions" --> "Address functions"
- Modified text: MPI-1.1 page 69 line 31:
"MPI_ADDRESS" --> "MPI_GET_ADDRESS"
- MPI-2.0 Sect. 4.14.1 (MPI_GET_ADDRESS),
i.e., MPI-2.0 page 67 line 39 - page 68 line 2
to be added before MPI-1.1 declaration of MPI_ADDRESS,
i.e., before MPI-1.1 page 69 line 33
- New text before MPI-1.1 page 69 line 33 (MPI_ADDRESS):
"The use of the following function is deprecated since MPI 2.0."
- MPI-2.0 Sect. 4.14.1 (Advice to users of MPI_GET_ADDRESS),
i.e., MPI-2.0 page 68 lines 5-11
to be added before MPI-1.1 Example 3.25,
i.e., before MPI-1.1 page 69 line 45
- MPI-2.0 Sect. 4.14.2 (Extent and Bounds of Datatypes) upto MPI_TYPE_GET_EXTENT,
i.e., MPI-2.0 page 68 line 13-43
to be added before MPI-1.1 declaration of MPI_TYPE_EXTENT,
i.e., before MPI-1.1 page 70 line 19
- New text before MPI-1.1 page 70 line 19 (MPI_TYPE_EXTENT):
"The use of the following function is deprecated since MPI 2.0."
- MPI-2.0 Sect. 4.14.2 (MPI_TYPE_CREATE_RESIZED),
i.e., MPI-2.0 page 69 line 1-26
to be added before MPI-1.1 declaration of MPI_TYPE_SIZE,
i.e., before MPI-1.1 page 70 line 31
- MPI-2.0 Sect. 4.14.3 (True Extent of Datatypes),
i.e., MPI-2.0 page 69 line 28 - page 70 line 23
to be added before MPI-1.1 Sect 3.12.3,
i.e., before MPI-1.1 page 70 line 45
- New text after MPI-1.1 Sect. 3.12.3 title (Lower-bound and upper-bound markers)
i.e., after MPI-1.1 page 70 line 45:
"The use of the functions in this section is deprecated since MPI 2.0."
- New text before MPI-1.1 page 71 line 42 (MPI_TYPE_LB):
"The use of the following function is deprecated since MPI 2.0."
- New text before MPI-1.1 page 72 line 5 (MPI_TYPE_UB):
"The use of the following function is deprecated since MPI 2.0."
- MPI-2.0 Sect. 4.7 (Committing a Committed Datatype)
- remove section title
- to be added after MPI-1.1 MPI_TYPE_COMMIT (in Sect 3.12.4)
i.e., after MPI-1.1 page 72 line 39
- MPI-2.0 Sect. 8.9 (Duplicating a Datatype)
- to be added as subsection 3.12.5 after MPI-1.1 Sect 3.12.4 (Commit and free)
i.e., after MPI-1.1 page 73 line 29
- MPI-2.0 Sect. 4.16 (Canonical MPI_PACK and MPI_UNPACK)
to be added after MPI-1.1 Sect 3.13,
i.e., after MPI-1.1 page 90 line 48
Chapter 4: (Collective Communication)
- MPI-1.1 Chap.4 (Collective Communication)
- MPI-1.1 Sect. 4.1, pages 91-93
- MPI-1.1 Sect. 4.2, page 94 lines 1-5
- remove last sentence (lines 6-7):
"An inter-communicator, that is, a communicator that
spans two groups, is not allowed as an argument to
a collective function."
- MPI-2.0 Chap. 7 (Extended Collective Operations)
- as new Sect. 4.3
modified: "\chapter" --> "\section"
- MPI-2.0 Sect. 7.1 (Introduction)
i.e., MPI-2.0 page 145 lines 14-23,
as new Sect. 4.3.1
modified: "\section" --> "\subsection"
- MPI-2.0 Sect. 7.2 page 145 only lines 23-46
(Reason to put it here:
-- These lines are mainly written for the collective communications.
-- These lines are not valid for the routines in Section 5,
e.g., for MPI_COMM_SPLIT, where different colors are allowed.)
- MPI-2.0 Sect. 7.3 Title removed (again "Extended Collective Operations")
- MPI-2.0 Sect. 7.3.1 (Intercommunicator Collective Operations)
- MPI-2.0 Sect. 7.3.2 (Operations that Move Data)
only page 151 line 31 - page 152 line 48
- MPI-2.0 Sect. 7.3.2
page 153 lines 1-7 removed
- MPI-1.1 Sect. 4.3 (Barrier) - 4.12 (Correctness)
with following merges:
- Barrier:
-- MPI-2.0 page 163 lines 30-35 removed
-- MPI-2.0 page 163 lines 36
added after MPI 1.1 page 94 line 19
-- MPI-2.0 page 163 lines 38-41
added after MPI 1.1 page 94 line 21
- Broadcast:
-- MPI-2.0 page 153 lines 8-18 removed
-- MPI-2.0 page 153 lines 21-22
added after MPI 1.1 page 94 line 41
-- MPI-2.0 page 153 lines 23-30
added after MPI 1.1 page 95 line 4
- Gather:
-- MPI-2.0 page 154 lines 1-18 removed
-- MPI-2.0 page 154 lines 20-22
added after MPI 1.1 page 95 line 45
-- MPI-2.0 page 154 lines 23-34
added after MPI 1.1 page 96 line 25
- Gatherv:
-- MPI-2.0 page 155 lines 8-21 removed
-- MPI-2.0 page 155 lines 23-26
added after MPI 1.1 page 97 line 31
-- MPI-2.0 page 153 lines 27-38
added after MPI 1.1 page 98 line 21
- Scatter:
-- MPI-2.0 page 156 lines 1-17 removed
-- MPI-2.0 page 156 lines 19-21
added after MPI 1.1 page 105 line 2
-- MPI-2.0 page 156 lines 22-33
added after MPI 1.1 page 105 line 27
- Scatterv:
-- MPI-2.0 page 157 lines 1-17 removed
-- MPI-2.0 page 157 lines 19-22
added after MPI 1.1 page 106 line 7
-- MPI-2.0 page 157 lines 23-34
added after MPI 1.1 page 106 line 30
- Allgather:
-- MPI-2.0 page 158 lines 1-15 removed
-- MPI-2.0 page 158 lines 17-19
added after MPI 1.1 page 109 line 24
-- MPI-2.0 page 158 lines 20-44
added after MPI 1.1 page 109 line 36
- Allgatherv:
-- MPI-2.0 page 159 lines 1-16 removed
-- MPI-2.0 page 159 lines 18-21
added after MPI 1.1 page 110 line 26
-- MPI-2.0 page 159 lines 22-36
added after MPI 1.1 page 110 line 38
- Alltoall:
-- MPI-2.0 page 160 lines 1-12 removed
-- MPI-2.0 page 160 lines 13-15
added after MPI 1.1 page 111 line 30
-- MPI-2.0 page 160 lines 17-27
added after MPI 1.1 page 111 line 47
- Alltoallv:
-- MPI-2.0 page 161 lines 1-21 removed
-- MPI-2.0 page 161 lines 23-26
added after MPI 1.1 page 112 line 31
-- MPI-2.0 page 161 lines 27-32
added after MPI 1.1 page 112 line 48
- Alltoallw:
MPI-2.0 Sect. 7.3.5 (Generalized All-to-all Function)
as Sect. 4.8.1
added at the end of MPI-1.1 Sect. 4.8 (All-to-All Scatter/Gather)
i.e., after MPI-1.1 page 113 line 10
- Reduce:
-- MPI-2.0 page 162 lines 1-14 removed
-- MPI-2.0 page 162 lines 16-18
added after MPI 1.1 page 113 line 43
-- MPI-2.0 page 162 lines 19-28
added after MPI 1.1 page 114 line 30
- MPI-2.0 Sect. 4.15.2 (Signed Characters and Reductions)
to be added after MPI-1.1 Sect.4.9.2 (Predefined reduce operations),
i.e., after MPI-1.1 page 116 line 19
- Allreduce:
-- MPI-2.0 page 162 lines 30-38 removed
-- MPI-2.0 page 162 lines 40-41
added after MPI 1.1 page 124 line 22
-- MPI-2.0 page 162 lines 43-48
added after MPI 1.1 page 124 line 28
- Reduce_scatter:
-- MPI-2.0 page 163 lines 1-12 removed
-- MPI-2.0 page 163 lines 13-15
added after MPI 1.1 page 125 line 30
-- MPI-2.0 page 163 lines 16-28
added after MPI 1.1 page 125 line 40
- Scan:
-- MPI-2.0 page 164 lines 1-9 removed
-- MPI-2.0 page 164 lines 11-14
added after MPI 1.1 page 126 line 25
-- Modify MPI 1.1 page 126 line 36:
"the exclusive scan was dropped"
-->
"the exclusive scan was dropped in MPI-1"
- Exscan:
MPI-2.0 Sect. 7.3.6 (Exclusive Scan)
as Sect. 4.11.1
added before MPI-1.1 Sect. 4.11.1 (Example using MPI_SCAN)
i.e., after MPI-1.1 page 126 line 36
Chapter 5: (Groups, Context, and Communicators)
- MPI-1.1 Chap.5 (Groups, Context, and Communicators)
until MPI-1.1 Sect. 5.4.1
i.e., MPI-1.1 page 132 line 1 - page 144 line 44
- MPI-1.1 Sect 5.4.2 (Communicator constructors)
only the explanations
i.e., MPI-1.1 page 144 line 45 - page 145 line 5
- MPI-2.0 Sect. 7.2 (Intercommunicator Constructors)
only MPI-2.0 page 145 lines 25-42
- added as Subsubsect. (i.e., without section numbering)
- modified: "The current MPI interface" --> "The MPI-1 interface"
- added in MPI-1.1 after page 145 line 5
- MPI_COMM_DUP:
- MPI-1.1 page 145 lines 8-36
- MPI_COMM_CREATE:
- MPI-1.1 page 145 line 39 - page 146 line 1
- MPI-2.0 page 146 lines 1-6 removed
(Note: the arguments are named different to MPI-1.1)
- MPI-2.0 page 146 lines 8-10
added after MPI 1.1 page 146 line 1
- MPI-2.0 page 146 lines 11-12 removed
- MPI-1.1 page 146 lines 2-37
modified on line 2:
"This function" --> "If comm is an intra-communicator, this function"
removed sentence on line 8:
"This call applies only to intra-communicators"
- MPI-2.0 page 146 lines 13 - page 147 line 24
modified on MPI-2.0 page 146 lines 13-18:
"comm_in" --> "comm"
"comm_out" --> "newcomm"
"output communicator" --> "output communicator newcomm"
added after MPI 1.1 page 146 line 37
- MPI_COMM_SPLIT:
- MPI-1.1 page 146 line 40 - page 147 line 2
- MPI-2.0 page 147 lines 27-33 removed
(Note: the arguments are named different to MPI-1.1)
- MPI-2.0 page 147 lines 8-10
added after MPI 1.1 page 147 line 2
- MPI-2.0 page 147 lines 37-38 removed
- MPI-1.1 page 147 lines 3-38
modified on line 2:
"This function" --> "If comm is an intra-communicator, this function"
removed sentence on lines 14-15:
"This call applies only to intra-communicators"
- MPI-2.0 page 147 lines 39 - page 149 line 35
added after MPI 1.1 page 147 line 38
- MPI-1.1 page 147 line 40 - page 167 line 34
- MPI-2.0 Sect 8.8 (New Attribute Caching Functions)
i.e., MPI-2.0 page 198 line 42 - page 199 line 11
added as subsection before MPI-1.1 Subsection 5.7.1,
i.e., before MPI-1.1 page 167 line 35.
- MPI-1.1 page 167 line 35 - page 168 line 28
- MPI-2.0 Sect. 8.8.1 page 199 only lines 13-17 (Communicators)
and
- MPI-2.0 in Sect. 8.8.1: MPI_COMM_CREATE_KEYVAL,
i.e., MPI-2.0 page 199 line 18 - page 200 line 36
to be added before MPI-1.1 declaration of MPI_KEYVAL_CREATE,
i.e., before MPI-1.1 page 168 line 30
- New text before MPI-1.1 page 168 line 30 (MPI_KEYVAL_CREATE):
"The use of the following function is deprecated since MPI 2.0."
- MPI-1.1 page 168 line 30 - page 170 line 7 (MPI_KEYVAL_CREATE)
- MPI-2.0 in Sect. 8.8.1: MPI_COMM_FREE_KEYVAL,
i.e., MPI-2.0 page 200 line 38 - page 201 line 2
to be added before MPI-1.1 declaration of MPI_KEYVAL_FREE,
i.e., before MPI-1.1 page 170 line 9
- New text before MPI-1.1 page 170 line 9 (MPI_KEYVAL_FREE):
"The use of the following function is deprecated since MPI 2.0."
- MPI-1.1 page 170 line 9-23 (MPI_KEYVAL_FREE)
- MPI-2.0 in Sect. 8.8.1: MPI_COMM_SET_ATTR,
i.e., MPI-2.0 page 201 line 4-20
to be added before MPI-1.1 declaration of MPI_ATTR_PUT,
i.e., before MPI-1.1 page 170 line 25
- New text before MPI-1.1 page 170 line 25 (MPI_ATTR_PUT):
"The use of the following function is deprecated since MPI 2.0."
- MPI-1.1 page 170 line 25-44 (MPI_ATTR_PUT)
- MPI-2.0 in Sect. 8.8.1: MPI_COMM_GET_ATTR,
i.e., MPI-2.0 page 201 line 22-41
to be added before MPI-1.1 declaration of MPI_ATTR_GET,
i.e., before MPI-1.1 page 171 line 1
- New text before MPI-1.1 page 171 line 1 (MPI_ATTR_GET):
"The use of the following function is deprecated since MPI 2.0."
- MPI-1.1 page 171 line 1-28 (MPI_ATTR_GET)
- MPI-2.0 in Sect. 8.8.1: MPI_COMM_DELETE_ATTR,
i.e., MPI-2.0 page 202 line 1-13
to be added before MPI-1.1 declaration of MPI_ATTR_DELETE,
i.e., before MPI-1.1 page 171 line 31
- New text before MPI-1.1 page 171 line 31 (MPI_ATTR_DELETE):
"The use of the following function is deprecated since MPI 2.0."
- MPI-1.1 page 171 line 31-47 (MPI_ATTR_DELETE)
- MPI-2.0 Sect. 8.8.2 (Windows) and Sect. 8.8.3 (Datatypes)
i.e., MPI-2.0 page 202 line 15 - page 207 line 28
to be added before MPI-1.0 Sect. 5.7.2 (Attribute Exmples)
on MPI-1.1 page 172 line 1.
- MPI-1.1 Sect. 5.7.2 page 172 line 1 (Attributes Examples)
- MPI-1.1 Sect.5.8 page 175 line 25 (Formalizing the Loosly Synchronous Model)
Chapter 6: (Process Topologies)
- MPI-1.1 Chap.6 (Process Topologies)
Chapter 7: (MPI Environmental Management)
- MPI-1.1 Chap.7 (MPI Environmental Management)
(Several parts of MPI-2.0 Chap.4 Miscellany
will be merged into this MPI-1.1 chapter:
-- MPI-2.0 Sect. 4.1 Portable MPI Process Startup
-- MPI-2.0 Sect. 4.2 Passing NULL to MPI_Init
-- MPI-2.0 Sect. 4.3 Version Number
-- MPI-2.0 Sect. 4.6 Error Class for Invalid Keyval
-- MPI-2.0 Sect. 4.8 Allowing User Functions at Process Termination
-- MPI-2.0 Sect. 4.9 Determining Whether MPI Has Finished
-- MPI-2.0 Sect. 4.13 Error Handlers
)
- MPI-2.0 Sect. 4.3 (Version Number)
-- removed
-- change version number in MPI-1.2 Version number
from 1.2 to 2.0
-- new text:
Valid (MPI_VERSION, MPI_SUBVERSION) pairs in
this and previous versions of the MPI standard
are (2,0), and (1,2).
-- This must be done in the new MPI-1.2 Section 7.1.1
(location proposed by Rainer Keller in his
MPI-1.2 combined dcument proposal)
- MPI-2.0 Sect. 4.13 (Error Handlers)
and MPI-1.1 Sect. 7.2 (Error handling)
are merged with the following procedure:
- MPI-1.1 Sect. 7.2 (Error handling)
only title and explanations,
i.e., MPI-1.1 page 193 line 35 - page 194 line 38
- MPI-2.0 Sect. 4.13 (Error Handlers)
- as subsection
- after MPI-1.1 page 194 line 38
- Modify title:
"Error Handlers" --> "Extended error handling in MPI-2"
- MPI-2.0 Sect. 4.13.1 (Error Handlers for Communicators)
only title,
i.e., MPI-2.0 page 62 line 1
to be added before MPI-1.1 declaration of MPI_ERRHANDLER_CREATE,
i.e., before MPI-1.1 page 194 line 40
- MPI_COMM_CREATE_ERRHANDLER:
-- MPI-2.0 in Sect. 4.13.1: MPI_COMM_CREATE_ERRHANDLER,
i.e., MPI-2.0 page 62 line 4-31
to be added before MPI-1.1 declaration of MPI_ERRHANDLER_CREATE,
i.e., before MPI-1.1 page 194 line 40
-- New text before MPI-1.1 page 194 line 40 (MPI_ERRHANDLER_CREATE):
"The use of the following function is deprecated since MPI 2.0."
-- MPI-1.1 page 194 line 40 - page 195 line 18 (MPI_ERRHANDLER_CREATE)
- MPI_COMM_SET_ERRHANDLER:
-- MPI-2.0 in Sect. 4.13.1: MPI_COMM_SET_ERRHANDLER,
i.e., MPI-2.0 page 62 line 33-48
to be added before MPI-1.1 declaration of MPI_ERRHANDLER_SET,
i.e., before MPI-1.1 page 195 line 21
-- New text before MPI-1.1 page 195 line 21 (MPI_ERRHANDLER_SET):
"The use of the following function is deprecated since MPI 2.0."
-- MPI-1.1 page 195 line 21-32 (MPI_ERRHANDLER_SET)
- MPI_COMM_GET_ERRHANDLER:
-- MPI-2.0 in Sect. 4.13.1: MPI_COMM_GET_ERRHANDLER,
i.e., MPI-2.0 page 63 line 1-13
to be added before MPI-1.1 declaration of MPI_ERRHANDLER_GET,
i.e., before MPI-1.1 page 195 line 34
-- New text before MPI-1.1 page 195 line 34 (MPI_ERRHANDLER_GET):
"The use of the following function is deprecated since MPI 2.0."
-- MPI-1.1 page 195 line 34-48 (MPI_ERRHANDLER_GET)
- MPI-2.0 Sect. 4.13.2 (Error Handlers for Windows)
and
MPI-2.0 Sect. 4.13.3 (Error Handlers for Files)
i.e., MPI-2.0 page 63 line 15 - page 65 line 38
to be added before MPI-1.1 declaration of MPI_ERRHANDLER_FREE,
i.e., before MPI-1.1 page 196 line 1
- New Subsection title:
"Freeing Errorhandlers and Retrieving Error Strings"
- MPI-1.1 page 196 lines 1-35 (MPI_ERRHANDLER_FREE and MPI_ERROR_STRING)
- MPI-2.0 Sect. 4.6 (Error Class for Invalid Keyval)
to be added as subsubsection 7.3.1 at the end
of MPI-1.1 Sect. 7.3 (Error codes and classes),
i.e., after MPI-1.1 page 197 line 48
- New text after MPI-1.1 page 198 line 6:
"See also Section <section_number of Chap.8 Functions and Macros>."
- MPI-2.0 Sect. 4.2 (Passing NULL to MPI_Init)
-- without section title
-- to be added after MPI-1.1 MPI_Init,
i.e., after MPI-1.1 page 199 line 38
- MPI-2.0 Sect. 4.8 (Allowing User Functions at Process Termination)
and
MPI-2.0 Sect. 4.9 (Determining Whether MPI Has Finished)
to be added at the end of MPI-1.1 Sect. 7.5
as subsubsections 7.5.1 and 7.5.2
i.e., after MPI-1.1 page 200 line 35
- MPI-2.0 Sect. 4.1 (Portable MPI Process Startup)
to be added as new section 7.6 at the end of Chapter 7,
i.e., after MPI-1.1 page 200 line 36
(TODO: Is the location of this Section "Portable MPI Process Startup"
okay?
Remember that in MPI-1.2 combined document,
the Section "Version Number" was put at the beginning of Chapter 7,
and here, Section "Portable MPI Process Startup" was put at the end
of Chapter 7.)
Chapter 8: (Miscellany)
- MPI-2.0 Chap. 4 Title (Miscellany)
- MPI-2.0 Sect. 4.10 (The Info Object)
- MPI-2.0 Sect. 4.11 (Memory Allocation)
- MPI-2.0 Sect. 4.12 (Language Interoperability)
- MPI-2.0 Sect. 4.17 (Functions and Macros)
Chapter 9: (Process Creation and Management)
- MPI-2.0 Chap. 5 (Process Creation and Management)
Chapter 10: (One-Sided Communication)
- MPI-2.0 Chap. 6 (One-Sided Communication)
Chapter 11: (External Interfaces)
- MPI-2.0 Chap. 8 (External Interfaces)
without
- Last two sentences in MPI-2.0 Sect 8.1 (Introduction),
i.e., on page 169 lines 31-32.
- MPI-2.0 Sect. 8.8 New Attribute Cacching Functions
- MPI-2.0 Sect. 8.9 Duplicating a Datatype
Chapter 12: (I/O)
- MPI-2.0 Chap. 9 (I/O)
Chapter 13: (Language Bindings)
- MPI-2.0 Chap. 10 (Language Bindings)
Chapter 14: (Profiling Interface)
(TODO: Is it okay, to put the "Profiling" chapter at the end
of all chapters?)
- MPI-1.1 Chap.8 (Profiling Interface)
- MPI-2.0 Sect. 4.18 (Profiling Interface),
i.e., MPI-2.0 page 80 lines 20-29
to be added after MPI-1.1 Section 8.5,
i.e., after MPI-1.1 page 206 line 25
with following modification of the section title
"Profiling Interface" --> "Profiling Interface with MPI 2.0"
Bibliography:
- Merged (TODO)
Annex A:
- Merged from (...TODO...)
-- MPI-1.1 Annex A
-- MPI-2.0 Annex A
-- MPI-2.0 Annex B
In B.3 - B.12, the
"namespace MPI {
standard-type mpi-rooutine(standard-type arg1, mpi-type arg2...)
mpi-type mpi-rooutine(standard-type arg1, mpi-type arg2...)
}"
should be modified into
"standard-type MPI::mpi-rooutine(standard-type arg1, MPI::mpi-type arg2...)"
"MPI::mpi-type MPI::mpi-rooutine(standard-type arg1, MPI::mpi-type arg2...)"
Reason: To be consistent over the whole document, because
in the MPI-2.0 chapters and in the MPI-2.0 Appendix A.8,
the namespace based declarations are never used.
(TODO: The MPI Forum must decide, whether this decision is okay.)
Adding all interfaces from MPI-2.0 Annex B.4 - B.11 after the
corresponding Fortran binding, except
- MPI_COMM_CREATE
- MPI_COMM_SPLIT
- MPI_BARRIER until MPI_REDUCE
- MPI_ALLREDUCE
- MPI_REDUCE_SCATTER
because these C++ interfaces are already merged with MPI-2.0 sections into
the combined document (see handling of MPI-2.0 Sect. 7.3.1 - 7.3.4)
MPI Function Index (automatically)