Skip to content

Commit

Permalink
Merge pull request #1663 from garlick/nix_pmix
Browse files Browse the repository at this point in the history
libpmi: drop pmix client support and --with-pmix configure option
  • Loading branch information
grondo committed Sep 15, 2018
2 parents 7c38aa3 + 773c10b commit 506d305
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 647 deletions.
9 changes: 4 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ matrix:
- compiler: clang
env: LUA_VERSION=5.1
- compiler: gcc
env: LUA_VERSION=5.1 COVERAGE=t ARGS="--with-flux-security --with-pmix --enable-caliper --enable-pylint"
env: LUA_VERSION=5.1 COVERAGE=t ARGS="--with-flux-security --enable-caliper --enable-pylint"
- compiler: gcc
env: LUA_VERSION=5.1 T_INSTALL=t
- compiler: clang
env: LUA_VERSION=5.1 CPPCHECK=t ARGS="--with-flux-security --with-pmix --enable-sanitizer" CC=clang-3.8 CXX=clang++-3.8
env: LUA_VERSION=5.1 CPPCHECK=t ARGS="--with-flux-security --enable-sanitizer" CC=clang-3.8 CXX=clang++-3.8
- compiler: gcc
env: LUA_VERSION=5.2 CC=gcc-8 CXX=g++-8 ARGS="--with-flux-security --with-pmix" chain_lint=t
env: LUA_VERSION=5.2 CC=gcc-8 CXX=g++-8 ARGS="--with-flux-security" chain_lint=t
- compiler: clang
env: LUA_VERSION=5.2 ARGS="--with-flux-security --with-pmix --enable-caliper" CC=clang-3.8 CXX=clang++-3.8
env: LUA_VERSION=5.2 ARGS="--with-flux-security --enable-caliper" CC=clang-3.8 CXX=clang++-3.8

cache:
directories:
Expand Down Expand Up @@ -47,7 +47,6 @@ addons:
- valgrind
- libyaml-cpp-dev
- libboost-dev # for yaml-cpp 0.5.1. >=0.5.2 no longer need boost
- libevent-dev # pmix needs this

coverity_scan:
project:
Expand Down
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,24 @@ Common commands from flux-core:

Most of these have UNIX manual pages as `flux-<sub-command>(1)`,
which can also be accessed using `./flux help <sub-command>`.

#### A note about PMI

When flux is launched, it requires PMI-1 in order to bootstrap.
It can use PMI-1 in one of two ways, by inheriting a file descriptor
via the `PMI_FD` environment variable, or by dlopening a PMI library.
The library name is `libpmi.so`, unless overridden by the `PMI_LIBRARY`
environment variable. If a PMI library is not found, flux falls back
to "singleton" operation, where each broker is an independent flux instance.
The PMI bootstrap may be traced by setting the `FLUX_PMI_DEBUG` environment
variable.

When flux launches flux or an MPI job, it provides PMI-1 to bootstrap the
MPI's runtime. It offers a PMI server and sets the `PMI_FD` environment
variable to point to an open file descriptor connected to it. It also offers
a `libpmi.so` library that can be dlopened.

If your system process manager uses PMIx, the `libpmi.so` compatibility library
provided by the PMIx project should be sufficient to bootstrap flux.
If your version of PMIx was not built with the compatibility libraries
installed, you may build libpmix as a separate package to get them installed.
16 changes: 0 additions & 16 deletions config/x_ac_pmix.m4

This file was deleted.

1 change: 0 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,6 @@ X_AC_JANSSON
X_AC_YAMLCPP
PKG_CHECK_MODULES([HWLOC], [hwloc >= 1.11.1], [], [])
PKG_CHECK_MODULES([SQLITE], [sqlite3], [], [])
X_AC_PMIX
LX_FIND_MPI
AM_CONDITIONAL([HAVE_MPI], [test "$have_C_mpi" = yes])
AX_VALGRIND_H
Expand Down
8 changes: 1 addition & 7 deletions src/common/libpmi/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@ libpmi_la_SOURCES = \
clique.h \
pmi_operations.h

if HAVE_LIBPMIX
libpmi_la_SOURCES += \
pmix_client.c \
pmix_client.h
endif

fluxinclude_HEADERS = \
pmi.h \
pmi2.h
Expand All @@ -56,7 +50,7 @@ test_ldadd = \
$(top_builddir)/src/common/liblsd/liblsd.la \
$(top_builddir)/src/common/libev/libev.la \
$(ZMQ_LIBS) $(JANSSON_LIBS) $(LIBPTHREAD) \
$(LIBRT) $(LIBDL) $(LIBMUNGE) $(LIBPMIX)
$(LIBRT) $(LIBDL) $(LIBMUNGE)

test_cppflags = \
-I$(top_srcdir)/src/common/libtap \
Expand Down
10 changes: 0 additions & 10 deletions src/common/libpmi/pmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
#include "pmi.h"
#include "pmi_strerror.h"
#include "simple_client.h"
#include "pmix_client.h"
#include "wrap.h"
#include "single.h"
#include "clique.h"
Expand Down Expand Up @@ -82,15 +81,6 @@ int PMI_Init (int *spawned)
if (!(ctx.impl = pmi_simple_client_create (&ctx.ops)))
goto done;
}
#if HAVE_LIBPMIX
/* If PMIX_SERVER_* is set, pmix service is offered.
* Use the pmix client.
*/
else if (getenv ("PMIX_SERVER_URI") || getenv ("PMIX_SERVER_URI2")) {
if (!(ctx.impl = pmix_client_create (&ctx.ops)))
goto done;
}
#endif
/* If PMI_LIBRARY is set, we are directed to open a specific library.
*/
else if ((library = getenv ("PMI_LIBRARY"))) {
Expand Down
Loading

0 comments on commit 506d305

Please sign in to comment.