Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenPMIx Update #1773

Open
wants to merge 3 commits into
base: 3.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion components/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,8 @@ provisioning/warewulf/SOURCES/warewulf-*.tar.gz
rms/magpie/SOURCES/*.tar.gz
rms/munge/SOURCES/munge-*.tar.gz
rms/openpbs/SOURCES/v*.tar.gz
rms/pmix/SOURCES/pmix-*.tar.bz2
rms/openpmix/SOURCES/pmix-*.tar.gz
rms/openpmix/SOURCES/prrte-*.tar.gz
rms/slurm/SOURCES/slurm-*.tar.bz2
runtimes/charliecloud/SOURCES/charliecloud-*.tar.gz
serial-libs/R/SOURCES/R-*.tar.gz
Expand Down
2 changes: 1 addition & 1 deletion components/rms/openpbs/SPECS/openpbs.spec
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ Autoreq: 1
# package is not actually installed on the compute nodes.
# As slurm pulls in pmix for Open MPI in slurm deployments,
# let's have openpbs pull pmix for openpbs deployments.
Requires: pmix%{PROJ_DELIM}
Requires: openpmix%{PROJ_DELIM}

%description -n %{pbs_name}-%{pbs_execution}%{PROJ_DELIM}
OpenPBS is a fast, powerful workload manager and
Expand Down
21 changes: 21 additions & 0 deletions components/rms/openpmix/SOURCES/openpmix.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
help([[
This module loads the %{pname} library.
]])

whatis("Name: %{pname}")
whatis("Version: %{version}")

local version = "%{version}"

prepend_path("MANPATH", "%{install_path}/share/man")
prepend_path("INCLUDE", "%{install_path}/include")
prepend_path("LD_LIBRARY_PATH", "%{install_path}/lib")

setenv("%{PNAME}_DIR", "%{install_path}")
setenv("%{PNAME}_LIB", "%{install_path}/lib")
setenv("%{PNAME}_INC", "%{install_path}/include")
setenv("%{SNAME}_DIR", "%{install_path}")
setenv("%{SNAME}_LIB", "%{install_path}/lib")
setenv("%{SNAME}_INC", "%{install_path}/include")

family("PMIx")
107 changes: 107 additions & 0 deletions components/rms/openpmix/SPECS/openpmix.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#----------------------------------------------------------------------------bh-
# This RPM .spec file is part of the OpenHPC project.
#
# It may have been modified from the default version supplied by the underlying
# release package (if available) in order to apply patches, perform customized
# build/install configurations, and supply additional files to support
# desired integration conventions.
#
#----------------------------------------------------------------------------eh-

%include %{_sourcedir}/OHPC_macros
%global pname openpmix
%global sname pmix
%global SNAME PMIX

Summary: An extended/exascale implementation of the PMIx Standard
Name: %{pname}%{PROJ_DELIM}
Version: 5.0.1
Release: 1%{?dist}
License: BSD
URL: https://openpmix.github.io/openpmix/
Group: %{PROJ_NAME}/rms
Source0: https://github.com/openpmix/openpmix/releases/download/v%{version}/%{sname}-%{version}.tar.gz
Source1: openpmix.lua

Obsoletes: pmix-%{PROJ_DELIM}

Conflicts: libev

BuildRequires: libevent-devel
BuildRequires: perl
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: python3-devel
BuildRequires: pandoc > 1.12
BuildRequires: libpsm2-devel
BuildRequires: zlib-devel
BuildRequires: (opa-libopamgt-devel or libopamgt-devel)
BuildRequires: hwloc%{PROJ_DELIM}
BuildRequires: munge-devel
BuildRequires: automake
BuildRequires: autoconf

#!BuildIgnore: post-build-checks

%global install_path %{OHPC_ADMIN}/%{pname}
%global module_path %{OHPC_MODULES}/%{pname}

%description
The Process Management Interface (PMI) has been used for quite some time as a
means of exchanging wireup information needed for interprocess communication. Two
versions (PMI-1 and PMI-2) have been released as part of the MPICH effort. While
PMI-2 demonstrates better scaling properties than its PMI-1 predecessor, attaining
rapid launch and wireup of the roughly 1M processes executing across 100k nodes
expected for exascale operations remains challenging.

PMI Exascale (PMIx) represents an attempt to resolve these questions by providing
an extended version of the PMI standard specifically designed to support clusters
up to and including exascale sizes. The overall objective of the project is to
eliminate some current restrictions that impact scalability, and provide
a reference implementation of the PMIx-server that demonstrates the desired level of
scalability.

This RPM contains all the tools necessary to compile and link against PMIx.


%prep
%setup -q -n %{sname}-%{version}


%build
module load hwloc

export CFLAGS="%{?cflags:%{cflags}}%{!?cflags:$RPM_OPT_FLAGS}"
export CXXFLAGS="%{?cxxflags:%{cxxflags}}%{!?cxxflags:$RPM_OPT_FLAGS}"
export FCFLAGS="%{?fcflags:%{fcflags}}%{!?fcflags:$RPM_OPT_FLAGS}"
./configure --prefix=%{install_path} \
--libdir=%{install_path}/lib \
--enable-shared \
--disable-static \
--with-psm2 \
--enable-sphinx=no \
--with-opamgt \
--with-munge \
--with-libevent \
--with-hwloc=$HWLOC_DIR #|| { cat config.log && exit 1; }
make %{?_smp_mflags}


%install
export ROOTDIR=$(pwd)

make install DESTDIR=${RPM_BUILD_ROOT}

# OpenPMIx Module File
mkdir -p ${RPM_BUILD_ROOT}%{module_path}
cat <<EOF > ${RPM_BUILD_ROOT}%{module_path}/%{version}.lua
%include %{SOURCE1}
EOF


%files
%{install_path}
%{module_path}
%doc README.md
%doc VERSION
%license LICENSE
91 changes: 0 additions & 91 deletions components/rms/pmix/LICENSE

This file was deleted.

88 changes: 0 additions & 88 deletions components/rms/pmix/SPECS/pmix.spec

This file was deleted.

18 changes: 18 additions & 0 deletions components/rms/prrte/SOURCES/prrte.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
help([[
This module loads the %{pname} library.
]])

whatis("Name: %{pname}")
whatis("Version: %{version}")

local version = "%{version}"

prepend_path("MANPATH", "%{install_path}/share/man")
prepend_path("INCLUDE", "%{install_path}/include")
prepend_path("LIBRARY_PATH", "%{install_path}/lib")

setenv("%{PNAME}_DIR", "%{install_path}")
setenv("%{PNAME}_LIB", "%{install_path}/lib")
setenv("%{PNAME}_INC", "%{install_path}/include")

family("PMIx")
Loading
Loading