Skip to content

Commit 335f8c5

Browse files
rhc54ggouaillardet
authored andcommitted
Update to PMIx 3.1.2
Update the OPAL glue configure code to correctly link the opal/pmix3 component to the hwloc used by OMPI instead of defaulting to the system-level hwloc. Required a corresponding update to the PMIx hwloc configure code so we treat hwloc the same way we handle libevent in embedded scenarios. Roll to PMIx v3.1.2 for plugging of memory leaks and addition of faster PMIx_Get response Signed-off-by: Ralph Castain <[email protected]>
1 parent bc58e22 commit 335f8c5

File tree

224 files changed

+12876
-6699
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

224 files changed

+12876
-6699
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,8 @@ opal/mca/hwloc/base/static-components.h.new.struct
365365

366366
opal/mca/installdirs/config/install_dirs.h
367367

368+
!opal/mca/pmix/pmix*/pmix/AUTHORS
369+
!opal/mca/pmix/pmix*/pmix/contrib/perf_tools/Makefile
368370
opal/mca/pmix/pmix*/pmix/include/pmix/autogen/config.h
369371
opal/mca/pmix/pmix*/pmix/include/pmix/autogen/config.h.in
370372
opal/mca/pmix/pmix*/pmix/src/include/private/autogen/config.h.in

opal/mca/pmix/pmix3x/configure.m4

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# Copyright (c) 2011-2013 Los Alamos National Security, LLC.
1414
# All rights reserved.
1515
# Copyright (c) 2010-2017 Cisco Systems, Inc. All rights reserved.
16-
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
16+
# Copyright (c) 2013-2019 Intel, Inc. All rights reserved.
1717
# Copyright (c) 2015-2016 Research Organization for Information Science
1818
# and Technology (RIST). All rights reserved.
1919
# $COPYRIGHT$
@@ -53,14 +53,14 @@ AC_DEFUN([MCA_opal_pmix_pmix3x_CONFIG],[
5353
opal_pmix_pmix3x_timing_flag=--disable-pmix-timing
5454
fi
5555

56-
opal_pmix_pmix3x_args="$opal_pmix_pmix3x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\""
56+
opal_pmix_pmix3x_args="$opal_pmix_pmix3x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\" --enable-embedded-hwloc --with-hwloc-header=\\\"$opal_hwloc_base_include\\\""
5757
AS_IF([test "$enable_debug" = "yes"],
5858
[opal_pmix_pmix3x_args="--enable-debug $opal_pmix_pmix3x_args"
5959
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"],
6060
[opal_pmix_pmix3x_args="--disable-debug $opal_pmix_pmix3x_args"
6161
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"])
6262
AC_MSG_CHECKING([if want to install standalone libpmix])
63-
AS_IF([test "$enable_install_libpmix" == "yes"],
63+
AS_IF([test "$enable_install_libpmix" = "yes"],
6464
[AC_MSG_RESULT([yes])],
6565
[AC_MSG_RESULT([no])
6666
opal_pmix_pmix3x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX3X_ --enable-embedded-mode $opal_pmix_pmix3x_args"])

opal/mca/pmix/pmix3x/pmix/INSTALL

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
99
Copyright (c) 2004-2005 The Regents of the University of California.
1010
All rights reserved.
1111
Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
12-
Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
12+
Copyright (c) 2013-2019 Intel, Inc. All rights reserved.
1313
$COPYRIGHT$
1414

1515
Additional copyrights may follow
@@ -22,9 +22,9 @@ For More Information
2222

2323
This file is a *very* short overview of building and installing
2424
the PMIx library. Much more information is available in the
25-
FAQ section on the PMIx web site:
25+
How-To section on the PMIx web site:
2626

27-
http://pmix.github.io/pmix/faq
27+
https://pmix.org/support/how-to/
2828

2929

3030
Developer Builds
@@ -56,6 +56,24 @@ shell$ ./configure --prefix=/where/to/install
5656
[...lots of output...]
5757
shell$ make all install
5858

59+
NOTE: this version of PMIx requires the Libevent package to build
60+
and operate. Any version of Libevent greater than or equal to
61+
2.0.21 is acceptable.
62+
63+
NOTE: this version of PMIx optionally supports the HWLOC package
64+
for providing topology information to both the host environment
65+
(by collecting local inventory for rollup) and local client
66+
processes. Any version of HWLOC greater than 1.10 is supported,
67+
although versions in the 2.x series are recommended.
68+
69+
Note that you must point configure at the libevent installation
70+
using the --with-libevent=<dir> option if it is in a non-standard
71+
location. Similarly, non-standard locations for the HWLOC package
72+
must be specified using the --with-hwloc=<dir> option. In both
73+
cases, PMIx will automatically detect these packages in standard
74+
locations and build-in support for them unless otherwise specified
75+
using the respective configure option.
76+
5977
If you need special access to install, then you can execute "make
6078
all" as a user with write permissions in the build tree, and a
6179
separate "make install" as a user with write permissions to the

opal/mca/pmix/pmix3x/pmix/LICENSE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved.
2626
Copyright (c) 2006-2010 The University of Houston. All rights reserved.
2727
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
2828
Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
29-
Copyright (c) 2007-2018 IBM Corporation. All rights reserved.
29+
Copyright (c) 2007-2019 IBM Corporation. All rights reserved.
3030
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
3131
Centre, Federal Republic of Germany
3232
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
@@ -36,7 +36,7 @@ Copyright (c) 2008-2009 Institut National de Recherche en
3636
Informatique. All rights reserved.
3737
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
3838
All rights reserved.
39-
Copyright (c) 2007-2018 Mellanox Technologies. All rights reserved.
39+
Copyright (c) 2007-2019 Mellanox Technologies. All rights reserved.
4040
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
4141
Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved.
4242
Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
@@ -45,7 +45,7 @@ Copyright (c) 2010 ARM ltd. All rights reserved.
4545
Copyright (c) 2010-2011 Alex Brick <[email protected]>. All rights reserved.
4646
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
4747
reserved.
48-
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
48+
Copyright (c) 2013-2019 Intel, Inc. All rights reserved.
4949
Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved.
5050

5151
$COPYRIGHT$

opal/mca/pmix/pmix3x/pmix/Makefile.am

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ dist_pmixdata_DATA =
3737
if ! PMIX_EMBEDDED_MODE
3838
dist_pmixdata_DATA += contrib/pmix-valgrind.supp
3939

40-
if PMIX_HAVE_PANDOC
41-
SUBDIRS += man
42-
endif
43-
4440
endif
4541

4642
if PMIX_TESTS_EXAMPLES

opal/mca/pmix/pmix3x/pmix/NEWS

Lines changed: 96 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
1+
Copyright (c) 2015-2019 Intel, Inc. All rights reserved.
22
Copyright (c) 2017 IBM Corporation. All rights reserved.
33
$COPYRIGHT$
44

@@ -17,8 +17,61 @@ the README file, PMIx typically maintains two separate version
1717
series simultaneously - the current release and one that is locked
1818
to only bug fixes. Since these series are semi-independent of each
1919
other, a single NEWS-worthy item might apply to different series. For
20-
example, a bug might be fixed in the master, and then moved to the
21-
current release as well as the "stable" bug fix release branch.
20+
example, a bug might be fixed in the master, and then moved to
21+
multiple release branches.
22+
23+
24+
3.1.2 -- 24 Jan 2019
25+
----------------------
26+
- Fix a bug in macro identifying system events
27+
- Restore some non-standard macros to the pmix_extend.h
28+
header - these are considered "deprecated" and will be
29+
removed from public-facing headers in future releases
30+
31+
32+
3.1.1 -- 18 Jan 2019
33+
----------------------
34+
- Fix a bug in registration of default event handlers
35+
that somehow slipped thru testing
36+
37+
38+
3.1.0 -- 17 Jan 2019
39+
----------------------
40+
**** THIS RELEASE MARKS THE STARTING POINT FOR FULL COMPLIANCE
41+
**** WITH THE PMIX v3 STANDARD. ALL API BEHAVIORS AND ATTRIBUTE
42+
**** DEFINITIONS MEET THE v3 STANDARD SPECIFICATIONS.
43+
- Add a new, faster dstore GDS component 'ds21'
44+
- Performance optimizations for the dstore GDS components.
45+
- Plug miscellaneous memory leaks
46+
- Silence an unnecessary warning message when checking connection
47+
to a non-supporting server
48+
- Ensure lost-connection events get delivered to default event
49+
handlers
50+
- Correctly handle cache refresh for queries
51+
- Protect against race conditions between host and internal library
52+
when dealing with async requests
53+
- Cleanup tool operations and add support for connections to
54+
remote servers. Initial support for debugger direct/indirect
55+
launch verified with PRRTE. Cleanup setting of tmpdir options.
56+
Drop rendezvous files when acting as a launcher
57+
- Automatically store the server URI for easy access by client
58+
- Provide MCA parameter to control TCP connect retry/timeout
59+
- Update event notification system to properly evict oldest events
60+
when more space is needed
61+
- Fix a number of error paths
62+
- Update IOF cache code to properly drop oldest message. Provide
63+
MCA parameter for setting cache size.
64+
- Handle setsockopt(SO_RCVTIMEO) not being supported
65+
- Ensure that epilogs get run even when connections unexpectedly
66+
terminate. Properly split epilog strings to process multiple
67+
paths
68+
- Pass the tool's command line to the server so it can be returned
69+
in queries
70+
- Add support for C11 atomics
71+
- Support collection and forwarding of fabric-specific envars
72+
- Improve handling of hwloc configure option
73+
- Fix PMIx_server_generate_regex to preserve node ordering
74+
- Fix a bug when registering default event handlers
2275

2376

2477
3.0.2 -- 18 Sept 2018
@@ -89,6 +142,46 @@ current release as well as the "stable" bug fix release branch.
89142
- Fix several memory and file descriptor leaks
90143

91144

145+
2.2.2 -- 24 Jan 2019
146+
----------------------
147+
- Fix a bug in macro identifying system events
148+
149+
150+
2.2.1 -- 18 Jan 2019
151+
----------------------
152+
- Fix a bug in registration of default event handlers
153+
that somehow slipped thru testing
154+
155+
156+
2.2.0 -- 17 Jan 2019
157+
----------------------
158+
**** THIS RELEASE MARKS THE STARTING POINT FOR FULL COMPLIANCE
159+
**** WITH THE PMIX v2.2 STANDARD. ALL API BEHAVIORS AND ATTRIBUTE
160+
**** DEFINITIONS MEET THE v2.2 STANDARD SPECIFICATIONS.
161+
- Add a new, faster dstore GDS component 'ds21'
162+
- Performance optimizations for the dstore GDS components.
163+
- Plug miscellaneous memory leaks
164+
- Silence an unnecessary warning message when checking connection
165+
to a non-supporting server
166+
- Ensure lost-connection events get delivered to default event
167+
handlers
168+
- Correctly handle cache refresh for queries
169+
- Protect against race conditions between host and internal library
170+
when dealing with async requests
171+
- Cleanup tool operations and add support for connections to
172+
remote servers.
173+
- Automatically store the server URI for easy access by client
174+
- Provide MCA parameter to control TCP connect retry/timeout
175+
- Update event notification system to properly evict oldest events
176+
when more space is needed
177+
- Fix a number of error paths
178+
- Handle setsockopt(SO_RCVTIMEO) not being supported
179+
- Pass the tool's command line to the server so it can be returned
180+
in queries
181+
- Add support for C11 atomics
182+
- Fix a bug when registering default event handlers
183+
184+
92185
2.1.4 -- 18 Sep 2018
93186
----------------------
94187
- Updated configury to silence warnings on older compilers

opal/mca/pmix/pmix3x/pmix/README

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ [email protected]!). You can subscribe to the list here:
4343

4444
https://groups.google.com/d/forum/pmix
4545

46+
Finally, just to round out all the possible ways to communicate with the
47+
PMIx community, you are invited to join the community's Slack channel:
48+
49+
pmix-workspace.slack.com
50+
4651
Thanks for your time.
4752

4853
===========================================================================
@@ -192,21 +197,22 @@ PMIx's version numbers are the union of several different values:
192197
major, minor, release, and an optional quantifier.
193198

194199
* Major: The major number is the first integer in the version string
195-
(e.g., v1.2.3). Changes in the major number typically indicate a
196-
significant change in the code base and/or end-user
197-
functionality. The major number is always included in the version
198-
number.
200+
(e.g., v1.2.3) and indicates the corresponding version of the PMIx
201+
Standard. In other words, a PMIx library release starting with "v2"
202+
indicates that the implementation conforms to version 2 of the PMIx
203+
Standard.
199204

200205
* Minor: The minor number is the second integer in the version
201206
string (e.g., v1.2.3). Changes in the minor number typically
202207
indicate a incremental change in the code base and/or end-user
203-
functionality. The minor number is always included in the version
204-
number:
208+
functionality, but not the supported version of the Standard.
209+
The minor number is always included in the version number.
205210

206211
* Release: The release number is the third integer in the version
207212
string (e.g., v1.2.3). Changes in the release number typically
208213
indicate a bug fix in the code base and/or end-user
209-
functionality.
214+
functionality. The release number is always included in the
215+
version number.
210216

211217
* Quantifier: PMIx version numbers sometimes have an arbitrary
212218
string affixed to the end of the version number. Common strings
@@ -293,16 +299,15 @@ Application Binary Interface (ABI) Compatibility
293299
------------------------------------------------
294300

295301
PMIx provides forward ABI compatibility in all versions of a given
296-
feature release series and its corresponding
297-
super stable series. For example, on a single platform, an pmix
302+
feature release series. For example, on a single platform, an pmix
298303
application linked against PMIx v1.3.2 shared libraries can be
299304
updated to point to the shared libraries in any successive v1.3.x or
300305
v1.4 release and still work properly (e.g., via the LD_LIBRARY_PATH
301306
environment variable or other operating system mechanism).
302307

303-
PMIx reserves the right to break ABI compatibility at new feature
308+
PMIx reserves the right to break ABI compatibility at new major
304309
release series. For example, the same pmix application from above
305-
(linked against PMIx v1.3.2 shared libraries) will *not* work with
310+
(linked against PMIx v1.3.2 shared libraries) may *not* work with
306311
PMIx v1.5 shared libraries.
307312

308313
===========================================================================

opal/mca/pmix/pmix3x/pmix/VERSION

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# <major>.<minor>.<release>.
1515

1616
major=3
17-
minor=0
17+
minor=1
1818
release=2
1919

2020
# greek is used for alpha or beta release tags. If it is non-empty,
@@ -30,7 +30,7 @@ greek=
3030
# command, or with the date (if "git describe" fails) in the form of
3131
# "date<date>".
3232

33-
repo_rev=gite574b10d
33+
repo_rev=git0f7075f7
3434

3535
# If tarball_version is not empty, it is used as the version string in
3636
# the tarball filename, regardless of all other versions listed in
@@ -44,7 +44,7 @@ tarball_version=
4444

4545
# The date when this release was created
4646

47-
date="Sep 18, 2018"
47+
date="Jan 24, 2019"
4848

4949
# The shared library version of each of PMIx's public libraries.
5050
# These versions are maintained in accordance with the "Library
@@ -75,6 +75,13 @@ date="Sep 18, 2018"
7575
# Version numbers are described in the Libtool current:revision:age
7676
# format.
7777

78-
libpmix_so_version=4:2:2
78+
libpmix_so_version=4:22:2
7979
libpmi_so_version=1:0:0
8080
libpmi2_so_version=1:0:0
81+
82+
# "Common" components install standalone libraries that are run-time
83+
# # linked by one or more components. So they need to be versioned as
84+
# # well. Yuck; this somewhat breaks the
85+
# # components-don't-affect-the-build-system abstraction.
86+
#
87+
libmca_common_dstore_so_version=1:0:0

0 commit comments

Comments
 (0)