aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software
diff options
context:
space:
mode:
authorBoud Roukema <boud@cosmo.torun.pl>2020-07-31 19:04:08 +0200
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2020-08-02 00:43:09 +0100
commitcbd4a41555c7d4aecaea03a4cc4298da8320f01c (patch)
tree8ee140d27e52e6819a679785ba0575c45fea344e /reproduce/software
parentb3d8fea7010e3594afc93db02ca3126ad8e74602 (diff)
OpenMPI build with slurm compatibility
Prior to this commit, compilation of OpenMPI used the default OpenMPI choices of deciding which libraries should be used in relating to a job scheduler [1] (such as Slurm [2]). Given that the user on a multi-user cluster has to accept the sysadmin's choice of a job scheduler, the question of whether to (1) link with OpenMPI's own libraries (and increase the reproducibility of the science project) or rather (2) link with the sysadmin managed libraries (more likely to be compatible with the host's job scheduler), is an open question of which the best strategy for reproducibility needs to be debated and studied. In this commit, strategy (1) is adopted. The options '--withpmix=internal' and '--with-hwloc=internal' are added to the configure command. The working assumption is that the Maneage version of OpenMPI is likely to be modern enough to be compatible with the native job scheduler such as Slurm. Compilation without any 'pmix' option gave a fail in at least one case; it appears that an external pmix library was sought by the configure script. As of OpenMPI 4.0.1, the internal libevent library is used by default, so there appears to be no option to force it to be chosen internally. This commit also includes the option '--without-verbs'. This option removes a library related to "infiniband", "verbs", "openib" and "BTL"; this library appears to be deprecated. See [3], [4] for discussion. Please add feedback and discussion to the Maneage task about openmpi linking strategies (1) (internal) and (2) (external) at Savannah [5]. [1] https://en.wikipedia.org/wiki/Job_scheduler#Batch_queuing_for_HPC_clusters [2] https://en.wikipedia.org/wiki/Slurm_Workload_Manager - To avoid a name clash, 'slurm-wlm' is the metapackage in Debian for the client commands, the compute node daemon, and the central node daemon. An unrelated package 'slurm' also exists. [3] https://www-lb.open-mpi.org/faq/?category=openfabrics#ofa-device-error [4] https://www-lb.open-mpi.org/faq/?category=building [5] https://savannah.nongnu.org/task/index.php?15737
Diffstat (limited to 'reproduce/software')
-rw-r--r--reproduce/software/make/high-level.mk5
1 files changed, 4 insertions, 1 deletions
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 3ac3b49..4052ed4 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -641,7 +641,10 @@ $(ibidir)/openblas-$(openblas-version):
$(ibidir)/openmpi-$(openmpi-version):
tarball=openmpi-$(openmpi-version).tar.gz
$(call import-source, $(openmpi-url), $(openmpi-checksum))
- $(call gbuild, openmpi-$(openmpi-version), static, , \
+ $(call gbuild, openmpi-$(openmpi-version), static, \
+ --with-pmix=internal \
+ --with-hwloc=internal \
+ --without-verbs, \
-j$(numthreads) V=1)
echo "Open MPI $(openmpi-version)" > $@