summaryrefslogtreecommitdiff
path: root/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
diff options
context:
space:
mode:
Diffstat (limited to 'grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp')
-rw-r--r--grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp58
1 files changed, 58 insertions, 0 deletions
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
new file mode 100644
index 0000000..b9af00e
--- /dev/null
+++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
@@ -0,0 +1,58 @@
+class env::big::install_openmpi () {
+
+ case "${::lsbdistcodename}" {
+
+ "stretch" : {
+ $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin' ]
+ $openmpi_deps_packages = [ 'librdmacm1', 'libgfortran3', 'libnuma1', 'blcr-util', 'libibverbs1-dbg', 'libibverbs-dev', 'libpsm2-dev', 'libhfi1-dev', 'libopamgt-dev' ]
+ $openmpi_scibian_version = '2.0.2-2sci9+opa10.7u4'
+
+ ensure_packages($openmpi_deps_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ ensure_packages($openmpi_packages, {
+ ensure => $openmpi_scibian_version,
+ require => Class['apt::update']
+ })
+ }
+
+ "buster", "bullseye" : {
+ $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin' ]
+ $openmpi_deps_packages = [ 'libnuma1', 'libibverbs-dev' ]
+ $openmpi_opa_packages = [ 'libpsm2-dev', 'libopamgt-dev' ]
+
+ ensure_packages($openmpi_deps_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ if $env::deb_arch == 'amd64' {
+ ensure_packages($openmpi_opa_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+ }
+
+ ensure_packages($openmpi_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+ }
+ }
+
+ if ($::lsbdistcodename == 'buster') {
+ # The 'verbs' OFI provider is broken in OpenMPI 3.1.3. We disable it.
+ # See https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=10918
+ # and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941996
+ # https://github.com/open-mpi/ompi/issues/7035
+ # OpenMPI 4.x is not affected, so this can be removed after buster.
+ # This does not affect OpenMPI when loaded using 'module'
+ file_line { 'disable_verbs_ofi_provider':
+ path => '/etc/openmpi/openmpi-mca-params.conf',
+ line => 'mtl_ofi_provider_exclude = shm,sockets,tcp,udp,rstream,verbs',
+ require => Package['openmpi-bin'];
+ }
+ }
+}