From 76fb57dddecb573b702299e4df106e4c0f254d3f Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Tue, 18 Oct 2022 09:29:38 +0200 Subject: [PATCH] new file: f/FFTW/FFTW-3.3.8-NVHPC-21.9.eb new file: o/OpenMPI/OpenMPI-4.0.7-NVHPC-21.9-CUDA-11.4.1.eb new file: q/QuantumESPRESSO/QuantumESPRESSO-7.1-NVHPC-21.9.eb --- f/FFTW/FFTW-3.3.8-NVHPC-21.9.eb | 28 ++++++++ .../OpenMPI-4.0.7-NVHPC-21.9-CUDA-11.4.1.eb | 43 ++++++++++++ .../QuantumESPRESSO-7.1-NVHPC-21.9.eb | 70 +++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 f/FFTW/FFTW-3.3.8-NVHPC-21.9.eb create mode 100644 o/OpenMPI/OpenMPI-4.0.7-NVHPC-21.9-CUDA-11.4.1.eb create mode 100644 q/QuantumESPRESSO/QuantumESPRESSO-7.1-NVHPC-21.9.eb diff --git a/f/FFTW/FFTW-3.3.8-NVHPC-21.9.eb b/f/FFTW/FFTW-3.3.8-NVHPC-21.9.eb new file mode 100644 index 00000000..fa214eb8 --- /dev/null +++ b/f/FFTW/FFTW-3.3.8-NVHPC-21.9.eb @@ -0,0 +1,28 @@ +# IT4Innovations 2022 +# JK + +name = 'FFTW' +version = '3.3.8' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for local_computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and local_complex data.""" + +toolchain = {'name': 'NVHPC', 'version': '21.9'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303'] + +# no quad precision, requires GCC v4.6 or higher +# see also +# http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +with_quad_prec = False + +# local_compilation fails when configuring with --enable-avx-128-fma, Intel local_compilers do not support FMA4 instructions +use_fma4 = False + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/o/OpenMPI/OpenMPI-4.0.7-NVHPC-21.9-CUDA-11.4.1.eb b/o/OpenMPI/OpenMPI-4.0.7-NVHPC-21.9-CUDA-11.4.1.eb new file mode 100644 index 00000000..fa551694 --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.0.7-NVHPC-21.9-CUDA-11.4.1.eb @@ -0,0 +1,43 @@ +# IT4Innovations 2021 +# LK + +name = 'OpenMPI' +version = '4.0.7' +versionsuffix = '-CUDA-11.4.1' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'NVHPC', 'version': '21.9'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('UCX', '1.11.2', versionsuffix), + ('CUDAcore', '11.4.1', '', True), +] + +preconfigopts = 'export CC="pgcc -noswitcherror" && export CXX="pgc++ -noswitcherror" && export FC="pgfortran -noswitcherror" && ' + +configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpirun-prefix-by-default ' +configopts += '--with-tm=/opt/pbs ' # Enable PBS +configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-cuda=$EBROOTCUDACORE ' + +moduleclass = 'mpi' + +#setenv("OMPI_MCA_btl_openib_if_include", "mlx5_0") +#setenv("export OMPI_MCA_btl_openib_allow_ib", "1") +#setenv("OMPI_MCA_pml", "^ucx") +#setenv("OMPI_MCA_orte_base_help_aggregate", "0") +import os +if os.environ.get("CLUSTERNAME") in ["BARBORA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_btl_openib_allow_ib': '1', + 'OMPI_MCA_orte_base_help_aggregate': '0', + 'OMPI_MCA_pml': '^ucx', + } diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-7.1-NVHPC-21.9.eb b/q/QuantumESPRESSO/QuantumESPRESSO-7.1-NVHPC-21.9.eb new file mode 100644 index 00000000..7ffc230a --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-7.1-NVHPC-21.9.eb @@ -0,0 +1,70 @@ +# IT4Innovations 2022 +# JK + +easyblock = 'CMakeMake' +name = 'QuantumESPRESSO' +version = '7.1' + +homepage = 'https://www.quantum-espresso.org' +description = """Quantum ESPRESSO is an integrated suite of computer codes +for electronic-structure calculations and materials modeling at the nanoscale. +It is based on density-functional theory, plane waves, and pseudopotentials +(both norm-conserving and ultrasoft). +""" + +# NVHPC 21.11-22.2 have a severe bug causing hanging in runs when QE is +# compiled with both OpenMP and OpenACC. Use a different compiler release or +# dislable OpenMP with potential performance loss. +toolchain = {'name': 'NVHPC', 'version': '21.9'} + +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'pic': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'pic': True} + +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + prebuildopts = "echo %(builddir)s && while read i; do echo $i; sed 's|-xHost|-march=core-avx2|g' -i $i; done < <(grep xHost %(builddir)s -R | cut -d ':' -f 1 | sort -u) && " + +source_urls = ['https://www.quantum-espresso.org/rdm-download/488/v7-1/3adf3b73b84938d19f4b7ac856795acb/'] +sources = ['qe-%(version)s-ReleasePack.tar.gz'] +checksums = ['feacdbc67d084d55df464f989a916f20dfe11a50ccfda782573cdeed4fab3d3a'] + +builddependencies = [ + ('CMake', '3.20.1', '', ('GCCcore', '10.2.0')), + ('git', '2.28.0', '-nodocs', ('GCCcore', '10.2.0')), +] + +dependencies = [ +# ('ELPA', '2021.05.001', '', ('intel', '2021a')), +# ('libxc', '5.1.3', '', ('GCC', '10.2.0')), +# ('HDF5', '1.10.7', '', ('iimpi', '2021a')), + ('OpenMPI', '4.0.7', '-CUDA-11.4.1'), +] + +preconfigopts = " export MPIF90=mpif90 && " +preconfigopts += " export MPIFC=mpif90 && " +preconfigopts += " export MPIF77=mpif90 && " +preconfigopts += " export MPICC=mpicc && " +preconfigopts += " export MPICXX=mpicxx && " + +configopts = 'FC=pgfortran F77=pgfortran F90=pgfortran CC=pgcc CXX=pgc++ ' +configopts += '-DQE_ENABLE_CUDA=ON -DQE_ENABLE_MPI_GPU_AWARE=ON ' +configopts += '-DNVFORTRAN_CUDA_VERSION=11.4 ' +configopts += '-DNVFORTRAN_CUDA_CC=80 ' + + + +# --with-cuda=$CUDA_HOME --with-cuda-cc=80 --with-cuda-runtime=11.4 --enable-openmp' + +prebuildopts = "sed -i 's/-D__MPI\\b/& -D__GPU_MPI /' %(builddir)s/qe-%(version)s/make.inc && " + +# only pw is available for GPU +buildopts = 'pw' + +# parallel build tends to fail +parallel = 1 + +#skipsteps = ['sanitycheck'] + +moduleclass = 'chem'