Skip to content

Commit e4d6c8d

Browse files
awlauriagpaulsen
authored andcommitted
NEWS, HACKING, and README changes for v5.0.0rc1
Updated (lots of) NEWS for v5.0.0rc1. Signed-off-by: Austen Lauria <awlauria@us.ibm.com> Signed-off-by: Geoffrey Paulsen <gpaulsen@us.ibm.com>
1 parent 262e51b commit e4d6c8d

File tree

3 files changed

+165
-39
lines changed

3 files changed

+165
-39
lines changed

HACKING.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,24 @@ source code form, most likely through a developer's tree (i.e., a
77
Git clone).
88

99

10+
## Obtaining Open MPI
11+
12+
Open MPI is available from many distributions, however some users
13+
prefer to obtain it directly from the Open MPI community via
14+
prepackaged tarball (see: https://www.open-mpi.org/software/ompi/).
15+
The Open MPI tarball includes manpages, and openpmix and openprrte
16+
components, along with an auto-generated configure script.
17+
18+
Some developers prefer to obtain Open MPI by directly cloning it
19+
from https://github.com/open-mpi/ompi. It is recommended that users
20+
who choose to clone the source directly, use the git clone flag
21+
`--recurse-submodules`, to also obtain the openpmix, and openprrte.
22+
23+
Regardless of how openpmix and openprrte are obtained, the
24+
configure logic in Open MPI v5.0+ prefer externally installed
25+
components. Please see `configure --help` for more details.
26+
27+
1028
## Developer Builds: Compiler Pickyness by Default
1129

1230
If you are building Open MPI from a Git clone (i.e., there is a `.git`

NEWS

Lines changed: 135 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
1414
Use is subject to license terms.
1515
Copyright (c) 2006-2017 Los Alamos National Security, LLC. All rights
1616
reserved.
17-
Copyright (c) 2010-2017 IBM Corporation. All rights reserved.
17+
Copyright (c) 2010-2021 IBM Corporation. All rights reserved.
1818
Copyright (c) 2012 Oak Ridge National Labs. All rights reserved.
1919
Copyright (c) 2012 Sandia National Laboratories. All rights reserved.
2020
Copyright (c) 2012 University of Houston. All rights reserved.
21-
Copyright (c) 2013 NVIDIA Corporation. All rights reserved.
21+
Copyright (c) 2013-2021 NVIDIA Corporation. All rights reserved.
2222
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
2323
Copyright (c) 2018-2021 Amazon.com, Inc. or its affiliates. All Rights
2424
reserved.
@@ -75,13 +75,141 @@ Master (not on release branches yet)
7575
* launcher.
7676
**********************************************************************
7777

78-
- Fix rank-by algorithms to properly rank by object and span
79-
- Do not build Open SHMEM layer when there are no SPMLs available.
80-
Currently, this means the Open SHMEM layer will only build if
81-
a MXM or UCX library is found.
82-
- Remove all vestiges of the C/R support
78+
v5.0.0rc1 -- September, 2021
79+
--------------------
80+
- ORTE, the underlying OMPI launcher has been removed, and replaced
81+
with PRTE.
82+
- Reworked how Open MPI integrates with 3rd party packages.
83+
The decision was made to stop building 3rd-party packages
84+
such as Libevent, HWLOC, PMIx, and PRRTE as MCA components
85+
and instead 1) start relying on external libraries whenever
86+
possible and 2) Open MPI builds the 3rd party libraries (if needed)
87+
as independent libraries, rather than linked into libopen-pal.
88+
- Update to use PMIx v4.1.1rc2
89+
- Update to use PRRTE v2.0.1rc2
8390
- Change the default component build behavior to prefer building
8491
components as part of libmpi.so instead of individual DSOs.
92+
- Remove pml/yalla, mxm, mtl/psm, and ikrit components.
93+
- Remove all vestiges of the C/R support.
94+
- Various ROMIO v3.4.1 updates.
95+
- Use Pandoc to generate manpages
96+
- 32 bit atomics are now only supported via C11 compliant compilers.
97+
- Do not build Open SHMEM layer when there are no SPMLs available.
98+
Currently, this means the Open SHMEM layer will only build if
99+
the UCX library is found.
100+
- Fix rank-by algorithms to properly rank by object and span.
101+
- Updated the "-mca pml" option to only accept one pml, not a list.
102+
- vprotocol/pessimist: Updated to support MPI_THREAD_MULLTIPLE.
103+
- btl/tcp: Updated to use reachability and graph solving for global
104+
interface matching. This has been shown to improve MPI_Init()
105+
performance under btl/tcp.
106+
- fs/ime: Fixed compilation errors due to missing header inclusion
107+
Thanks to Sylvain Didelot <sdidelot@ddn.com> for finding
108+
and fixing this issue.
109+
- Fixed bug where MPI_Init_thread can give wrong error messages by
110+
delaying error reporting until all infrastructure is running.
111+
- Atomics support removed: S390/s390x, Sparc v9, ARMv4 and ARMv5 CMA
112+
support.
113+
- autogen.pl now supports a "-j" option to run multi-threaded.
114+
Users can also use environment variable "AUTOMAKE_JOBS".
115+
- PMI support has been removed for Open MPI apps.
116+
- Legacy btl/sm has been removed, and replaced with btl/vader, which
117+
was renamed to "btl/sm".
118+
- Update btl/sm to not use CMA in user namespaces.
119+
- C++ bindings have been removed.
120+
- The "--am" and "--amca" options have been deprecated.
121+
- opal/mca/threads framework added. Currently supports
122+
argobots, qthreads, and pthreads. See the --with-threads=x option
123+
in configure.
124+
- Various README.md fixes - thanks to:
125+
Yixin Zhang <zhany217@wfu.edu>,
126+
Samuel Cho <choss@wfu.edu>,
127+
rlangefe <langrc18@wfu.edu>,
128+
Alex Ross <rossaj16@wfu.edu>,
129+
Sophia Fang <fangq18@wfu.edu>,
130+
mitchelltopaloglu <mitchelltopaloglu@gmail.com>,
131+
Evstrife <wus217@wfu.edu>, and
132+
Hao Tong <tongh18@gemini.deac.wfu.edu> for their
133+
contributions.
134+
- osc/pt2pt: Removed. Users can use osc/rdma + btl/tcp
135+
for OSC support using TCP, or other providers.
136+
- Open MPI now links -levent_core instead of -levent.
137+
- MPI-4: Added ERRORS_ABORT infrastructure.
138+
- common/cuda docs: Various fixes. Thanks to
139+
Simon Byrne <simonbyrne@gmail.com> for finding and fixing.
140+
- osc/ucx: Add support for acc_single_intrinsic.
141+
- Fixed buildrpm.sh "-r" option used for RPM options specification.
142+
Thanks to John K. McIver III <john.mciver.iii@gmail.com> for
143+
reporting and fixing.
144+
- configure: Added support for setting the wrapper C compiler.
145+
Adds new option "--with-wrapper-cc=" .
146+
- mpi_f08: Fixed Fortran-8-byte-INTEGER vs. C-4-byte-int issue.
147+
Thanks to @ahaichen for reporting the bug.
148+
- MPI-4: Added support for 'initial error handler'.
149+
- opal/thread/tsd: Added thread-specific-data (tsd) api.
150+
- MPI-4: Added error handling for 'unbound' errors to MPI_COMM_SELF.
151+
- Add missing MPI_Status conversion subroutines:
152+
MPI_Status_c2f08(), MPI_Status_f082c(), MPI_Status_f082f(),
153+
MPI_Status_f2f08() and the PMPI_* related subroutines.
154+
- patcher: Removed the Linux component.
155+
- opal/util: Fixed typo in error string. Thanks to
156+
NARIBAYASHI Akira <a.naribayashi@fujitsu.com> for finding
157+
and fixing the bug.
158+
- fortran/use-mpi-f08: Generate PMPI bindings from the MPI bindings.
159+
- Converted man pages to markdown.
160+
Thanks to Fangcong Yin <fyin2@nd.edu> for their contribution
161+
to this effort.
162+
- Fixed ompi_proc_world error string and some comments in pml/ob1.
163+
Thanks to Julien EMMANUEL <julien.emmanuel@inria.fr> for
164+
finding and fixing these issues.
165+
- oshmem/tools/oshmem_info: Fixed Fortran keyword issue when
166+
compiling param.c. Thanks to Pak Lui <pak.lui@amd.com> for
167+
finding and fixing the bug.
168+
- autogen.pl: Patched libtool.m4 for OSX Big Sur. Thanks to
169+
@fxcoudert for reporting the issue.
170+
- Updgraded to HWLOC v2.4.0.
171+
- Removed config/opal_check_pmi.m4.
172+
Thanks to Zach Osman <zosman@gmu.edu> for the contribution.
173+
- opal/atomics: Added load-linked, store-conditional atomics for
174+
AArch6.
175+
- Fixed envvar names to OMPI_MCA_orte_precondition_transports.
176+
Thanks to Marisa Roman <marisa.roman@cornelisnetworks.com>
177+
for the contribution.
178+
- fcoll/two_phase: Removed the component. All scenerios it was
179+
used for has been replaced.
180+
- btl/uct: Bumped UCX allowed version to v1.9.x.
181+
- ULFM Fault Tolerance has been added. See README.FT.ULFM.md.
182+
- Fixed a crash during CUDA initialization.
183+
Thanks to Yaz Saito <yasushi.saito@gmail.com> for finding
184+
and fixing the bug.
185+
- Added CUDA support to the OFI MTL.
186+
- ompio: Added atomicity support.
187+
- Singleton comm spawn support has been fixed.
188+
- Autoconf v2.7 support has been updated.
189+
- fortran: Added check for ISO_FORTRAN_ENV:REAL16. Thanks to
190+
Jeff Hammond <jeff_hammond@acm.org> for reporting this issue.
191+
- Changed the MCA component build style default to static.
192+
- PowerPC atomics: Force usage of opal/ppc assembly.
193+
- Removed C++ compiler requirement to build Open MPI.
194+
- Fixed .la files leaking into wrapper compilers.
195+
- Fixed bug where the cache line size was not set soon enough in
196+
MPI_Init().
197+
- coll/ucc and scoll/ucc components were added.
198+
- coll/ucc: Added support for allgather and reduce collective
199+
operations.
200+
- autogen.pl: Fixed bug where it would not ignore all
201+
excluded components.
202+
- Various datatype bugfixes and performance improvements
203+
- Various pack/unpack bugfixes and performance improvements
204+
- Fix mmap infinite recurse in memory patcher
205+
- Fix C to Fortran error code conversions.
206+
- osc/ucx: Fix data corruption with non-contiguous accumulates
207+
- Update coll/tuned selection rules
208+
- Fix non-blocking collective ops
209+
- btl/portals4: Fix flow control
210+
- Various oshmem:ucx bugfixes and performance improvements
211+
- common/ofi: Disable new monitor API until libfabric 1.14.0
212+
- Fix AVX detection with icc
85213

86214
4.1.1 -- April, 2021
87215
--------------------

README.md

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,6 @@ The rest of this file contains:
9494
frameworks](#the-modular-component-architecture-mca)
9595
* [MPI layer frameworks](#mpi-layer-frameworks)
9696
* [OpenSHMEM component frameworks](#openshmem-component-frameworks)
97-
* [Run-time environment
98-
frameworks](#back-end-run-time-environment-rte-component-frameworks)
9997
* [Miscellaneous frameworks](#miscellaneous-frameworks)
10098
* [Other notes about frameworks](#framework-notes)
10199
* [How to get more help](#questions--problems)
@@ -1229,9 +1227,6 @@ Additionally, if a search directory is specified in the form
12291227
so that executables such as `mpicc` and `mpirun` can be found
12301228
without needing to type long path names.
12311229

1232-
* `--enable-orte-static-ports`:
1233-
Enable ORTE static ports for TCP OOB (default: enabled).
1234-
12351230
* `--with-alps`:
12361231
Force the building of for the Cray Alps run-time environment. If
12371232
Alps support cannot be found, configure will abort.
@@ -2040,16 +2035,17 @@ Open MPI:
20402035

20412036
* `bml`: BTL management layer
20422037
* `coll`: MPI collective algorithms
2043-
* `fbtl`: file byte transfer layer: abstraction for individual
2044-
read: collective read and write operations for MPI I/O
2045-
* `fs`: file system functions for MPI I/O
2038+
* `fbtl`: file byte transfer layer: abstraction for individual blocking and non-blocking read and write operations
2039+
* `fcoll`: Collective read and write operations for MPI I/O.
2040+
* `fs`: File system functions for MPI I/O.
2041+
* `hook`: Make calls at various points of MPI process life-cycle.
20462042
* `io`: MPI I/O
20472043
* `mtl`: Matching transport layer, used for MPI point-to-point
20482044
messages on some types of networks
20492045
* `op`: Back end computations for intrinsic MPI_Op operators
20502046
* `osc`: MPI one-sided communications
20512047
* `pml`: MPI point-to-point management layer
2052-
* `rte`: Run-time environment operations
2048+
* `part`: MPI Partitioned communication.
20532049
* `sharedfp`: shared file pointer operations for MPI I/O
20542050
* `topo`: MPI topology routines
20552051
* `vprotocol`: Protocols for the "v" PML
@@ -2064,33 +2060,12 @@ Open MPI:
20642060
point-to-point operations
20652061
* `sshmem`: OpenSHMEM shared memory backing facility
20662062

2067-
### Back-end run-time environment (RTE) component frameworks:
2068-
2069-
* `dfs`: Distributed file system
2070-
* `errmgr`: RTE error manager
2071-
* `ess`: RTE environment-specific services
2072-
* `filem`: Remote file management
2073-
* `grpcomm`: RTE group communications
2074-
* `iof`: I/O forwarding
2075-
* `notifier`: System-level notification support
2076-
* `odls`: OpenRTE daemon local launch subsystem
2077-
* `oob`: Out of band messaging
2078-
* `plm`: Process lifecycle management
2079-
* `ras`: Resource allocation system
2080-
* `rmaps`: Resource mapping system
2081-
* `rml`: RTE message layer
2082-
* `routed`: Routing table for the RML
2083-
* `rtc`: Run-time control framework
2084-
* `schizo`: OpenRTE personality framework
2085-
* `state`: RTE state machine
2086-
20872063
### Miscellaneous frameworks:
20882064

20892065
* `allocator`: Memory allocator
20902066
* `backtrace`: Debugging call stack backtrace support
20912067
* `btl`: Point-to-point Byte Transfer Layer
20922068
* `dl`: Dynamic loading library interface
2093-
* `event`: Event library (libevent) versioning support
20942069
* `hwloc`: Hardware locality (hwloc) versioning support
20952070
* `if`: OS IP interface support
20962071
* `installdirs`: Installation directory relocation services
@@ -2100,12 +2075,17 @@ Open MPI:
21002075
* `mpool`: Memory pooling
21012076
* `patcher`: Symbol patcher hooks
21022077
* `pmix`: Process management interface (exascale)
2103-
* `pstat`: Process status
21042078
* `rcache`: Memory registration cache
2105-
* `sec`: Security framework
2079+
* `reachable`: Reachability matrix between endpoints of a given pair of hosts
21062080
* `shmem`: Shared memory support (NOT related to OpenSHMEM)
2081+
* `smsc`: Shared Memory Single Copy
2082+
* `threads`: Thread management and support.
21072083
* `timer`: High-resolution timers
21082084

2085+
### Back-end run-time environment (PRTE):
2086+
2087+
See: https://github.com/openpmix/prrte
2088+
21092089
### Framework notes
21102090

21112091
Each framework typically has one or more components that are used at

0 commit comments

Comments
 (0)