diff --git a/Libraries/pmix/build b/Libraries/pmix/build new file mode 100755 index 0000000..c0dcf01 --- /dev/null +++ b/Libraries/pmix/build @@ -0,0 +1,29 @@ +#!/usr/bin/env modbuild + +echo "https://github.com/openpmix/openpmix/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz" +pbuild::set_download_url "https://github.com/openpmix/openpmix/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz" + +pbuild::add_to_group 'Libraries' + +(( version = (${V_MAJOR} * 100 + ${V_MINOR}) * 100 + V_PATCHLVL )) +if (( V_MAJOR > 1 )); then + pbuild::install_docfiles AUTHORS README LICENSE NEWS VERSION +else + pbuild::install_docfiles README LICENSE NEWS VERSION +fi + +pbuild::compile_in_sourcetree + +pbuild::pre_configure() { + if [[ -n "${HWLOC_PREFIX}" ]]; then + pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" + fi + + if [[ -n "${LIBEVENT_PREFIX}" ]]; then + pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}" + fi + + pbuild::add_configure_args "--enable-pmi-backward-compatibility" + pbuild::add_configure_args "--enable-shared" + pbuild::add_configure_args "--enable-static" +} diff --git a/Libraries/pmix/files/variants.merlin6 b/Libraries/pmix/files/variants.merlin6 new file mode 100644 index 0000000..3f3509d --- /dev/null +++ b/Libraries/pmix/files/variants.merlin6 @@ -0,0 +1,4 @@ +pmix/1.2.5 unstable b:libevent/2.1.12 +pmix/2.2.5 unstable b:libevent/2.1.12 +pmix/3.2.3 unstable b:libevent/2.1.12 +pmix/4.1.2 unstable hwloc/2.7.1 libevent/2.1.12 diff --git a/Libraries/pmix/modulefile b/Libraries/pmix/modulefile new file mode 100644 index 0000000..b671be9 --- /dev/null +++ b/Libraries/pmix/modulefile @@ -0,0 +1,12 @@ +#%Module1.0 + +module-whatis "Process Management Interface Exascale (PMIx) standard" +module-url "https://pmix.github.io/" +module-license "$PREFIX/share/doc/pmix/LICENSE" +module-maintainer "Marc Caubet Serrabou " + +module-help " +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 not to branch the existing pseudo-standard definitions - in fact, PMIx fully supports both of the existing PMI-1 and PMI-2 APIs - but rather to (a) augment and extend those APIs to eliminate some current restrictions that impact scalability, and (b) provide a reference implementation of the PMI-server that demonstrates the desired level of scalability. +"