# IT4Innovations 2019 easyblock = 'ConfigureMake' name = 'OpenMPI' version = '3.1.4' homepage = 'http://www.open-mpi.org/' description = """The Open MPI Project is an open source MPI-2 implementation.""" toolchain = {'name': 'PGI', 'version': '19.7-GCC-8.2.0-2.31.1'} toolchainopts = {'pic': True} source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] sources = [SOURCELOWER_TAR_GZ] patches = ['%(name)s-3.1.3-add_ompi_datatype_attribute_to_release_ucp_datatype.patch', # 'OpenMPI-3.1_fix-ib-query.patch', ] checksums = [ 'a7c34ad052ea8201ed9e7389994069fe6996403beabdd2d711caf0532808156c', # openmpi-3.1.4.tar.gz # OpenMPI-3.1.3-add_ompi_datatype_attribute_to_release_ucp_datatype.patch '46fa94eb417954bdb297291bad4f4d32018af4911bebf3e59af6276eba6a50a9', ] dependencies = [ ('zlib', '1.2.11'), ('hwloc', '1.11.12', '', ('GCCcore', '8.2.0')) ] #preconfigopts = 'export CFLAGS="-O1"' configopts = ' CFLAGS="-O1" --with-threads=posix --enable-shared --enable-static --enable-mpi-thread-multiple --with-verbs ' # suppress failure modes in relation to mpirun path configopts += '--enable-mpirun-prefix-by-default ' configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support # statically link component, don't do dynamic loading configopts += '--disable-dlopen ' configopts += '--with-tm=/opt/pbs/default ' # Enable PBS preconfigopts = 'export LIBS="-ldl" && export CC="pgcc -noswitcherror" && export CXX="pgc++ -noswitcherror" && export FC="pgfortran -noswitcherror" && ' # needed for --with-verbs osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')] libs = [ "mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] sanity_check_paths = { 'files': [], 'dirs': ['bin', 'lib', 'include'], } sanity_check_commands = [ ('mpicc --version | grep pgcc', ''), ('mpicxx --version | grep pgc++', ''), ('mpifort --version | grep pgfortran', ''), ] modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', } moduleclass = 'mpi'