diff --git a/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.6.0.eb b/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.6.0.eb new file mode 100644 index 00000000..abfd60c2 --- /dev/null +++ b/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.6.0.eb @@ -0,0 +1,60 @@ +# IT4Innovations 2024 +# BS + +easyblock = 'ConfigureMake' + +name = 'GDRCopy' +version = '2.1' +versionsuffix = '-CUDA-11.6.0' + +homepage = 'https://github.com/NVIDIA/gdrcopy' +description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +github_account = 'NVIDIA' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['cecc7dcc071107f77396f5553c9109790b6d2298ae29eb2dbbdd52b2a213e4ea'] + +builddependencies = [ + ('binutils', '2.35'), + ('Autotools', '20200321'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Check', '0.15.2'), + ('CUDAcore', '11.6.0', '', True), +] + +# This easyconfig only installs the library and binaries of GDRCopy. Please +# keep in mind that GDRCopy also needs the following kernel modules at runtime: +# +# 1. Kernel module for GDRCopy: improves Host to GPU communication +# https://github.com/NVIDIA/gdrcopy +# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms' +# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0 +# +# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication +# https://github.com/Mellanox/nv_peer_memory +# RPM: 'nvidia_peer_memory' +# Requirements: Mellanox HCA with MLNX_OFED 2.1 +# +# These kernel modules are not listed as system dependencies to lower the system +# requirements to build this easyconfig, as they are not needed for the build. + +skipsteps = ['configure'] + +local_envopts = "PREFIX=%(installdir)s CUDA=$EBROOTCUDACORE" +prebuildopts = "PATH=$PATH:/sbin " # ensures that ldconfig is found +buildopts = "config lib exes %s" % local_envopts +installopts = local_envopts + +sanity_check_paths = { + 'files': ['bin/copybw', 'bin/copylat', 'bin/sanity', 'lib/libgdrapi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/h/hwloc/hwloc-1.11.6-GCCcore-12.2.0.eb b/h/hwloc/hwloc-1.11.6-GCCcore-12.2.0.eb new file mode 100644 index 00000000..d4892bd8 --- /dev/null +++ b/h/hwloc/hwloc-1.11.6-GCCcore-12.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '1.11.6' + +homepage = 'https://www.open-mpi.org/projects/hwloc/' + +description = """ + The Portable Hardware Locality (hwloc) software package provides a portable + abstraction (across OS, versions, architectures, ...) of the hierarchical + topology of modern architectures, including NUMA memory nodes, sockets, shared + caches, cores and simultaneous multithreading. It also gathers various system + attributes such as cache and memory information as well as the locality of I/O + devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily + aims at helping applications with gathering information about modern computing + hardware so as to exploit it accordingly and efficiently. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['20b2bd4df436827d8e50f7afeafb6f967259f2fb374ce7330244f8d0ed2dde6f'] + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('numactl', '2.0.16'), + ('libxml2', '2.10.3'), + ('libpciaccess', '0.17'), +] + +configopts = "--enable-libnuma=$EBROOTNUMACTL " +configopts += "--disable-cairo --disable-opencl --disable-cuda --disable-nvml --disable-gl --disable-libudev " + +sanity_check_paths = { + 'files': ['bin/lstopo', 'include/hwloc/linux.h', + 'lib/libhwloc.%s' % SHLIB_EXT], + 'dirs': ['share/man/man3'], +} +sanity_check_commands = ['lstopo'] + +moduleclass = 'system' diff --git a/m/MVAPICH2/MVAPICH2-2.2-GCC-9.3.0.eb b/m/MVAPICH2/MVAPICH2-2.2-GCC-9.3.0.eb new file mode 100644 index 00000000..25dc3d16 --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-2.2-GCC-9.3.0.eb @@ -0,0 +1,31 @@ +# IT4Innovations 2024 + +name = 'MVAPICH2' +version = '2.2' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] +sources = [SOURCELOWER_TAR_GZ] + +checksums = [ + '27bb56bd4d1582d33ad32108fb239b546bdd1bdffd6f5b739b4423da1ab93ae2', +] + +preconfigopts = 'unset F90 && unset FC && unset F90FLAGS && unset FCFLAGS && ' + +configopts = "--enable-btl-openib-failover --with-tm=/opt/pbs/default --with-openib " +configopts += "--enable-threads=runtime --enable-shared --with-device=ch3:nemesis " +configopts += "--disable-rdma-cm --enable-romio" #--with-file-system=lustre+nfs " + +builddependencies = [('Bison', '3.5.3')] + +sanity_check_paths = { + 'files': ['lib/libmpicxx.a'], + 'dirs': ['include'] +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.1.0-GCC-12.2.0.eb b/o/OpenMPI/OpenMPI-2.1.0-GCC-12.2.0.eb new file mode 100644 index 00000000..05fecfe1 --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.1.0-GCC-12.2.0.eb @@ -0,0 +1,42 @@ +#IT4Innovations +#BS 2024 + + +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.1.0' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['OpenMPI-2.1_fix-ib-query.patch'] +checksums = [ + '265a9c64a468cce464edd069ed8612e1865c5f112f84f4a7a855fb2a0d15e74b', # openmpi-2.1.0.tar.gz + '662d7ef1d0cd0890d2dc4ecb5243012be29bf6b4003da0f006e7cd2125d40e4c', # OpenMPI-2.1_fix-ib-query.patch +] + +dependencies = [('hwloc', '1.11.6')] + +configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--without-ucx ' # hard disable UCX, to dance around bug (https://github.com/open-mpi/ompi/issues/4345) + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')] + +local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (x, SHLIB_EXT) for x in local_libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' + diff --git a/o/OpenMX/OpenMX-3.9-foss-2022b.eb b/o/OpenMX/OpenMX-3.9-foss-2022b.eb index 8d7acf6f..27c05ed9 100644 --- a/o/OpenMX/OpenMX-3.9-foss-2022b.eb +++ b/o/OpenMX/OpenMX-3.9-foss-2022b.eb @@ -42,18 +42,26 @@ dependencies = [ ('ELPA', '2022.05.001'), ('FFTW', '3.3.10'), ('OpenMPI', '4.1.4'), +<<<<<<< HEAD ('OpenBLAS', '0.3.21'), +======= +>>>>>>> 68e9d9eacfeb69e5e35ca50c309124a475ebae50 ] files_to_copy = [ +<<<<<<< HEAD ('%(sourcepath)s/*', '%(builddir)s/openmx3.9/source'), +======= + ('%(sourcepath)s/patch3.9.9.tar.gz', '%(builddir)s/openmx3.9/source'), +>>>>>>> 68e9d9eacfeb69e5e35ca50c309124a475ebae50 ('%(sourcepath)s/kpoint.in', '%(sourcepath)s/openmx3.9/work') ] #build_cmd = 'cd %(builddir)s/openmx3.9/source && sed -i "s/-xHOST//g" makefile && sed -i "s/-ip//g" makefile && make CFLAGS="-O3 -no-prec-div -fopenmp"' +<<<<<<< HEAD #build_cmd = 'cd %(builddir)s/openmx3.9/source && sed -i "s/-xHOST//g" makefile && sed -i "s/-ip//g" makefile && sed -i "s/-qopenmp/-fopenmp/g" makefile && sed -i "s/-no-prec-div//g" makefile && make CFLAGS="-O3 -fopenmp"' @@ -74,6 +82,13 @@ buildopts = 'CFLAGS="-O3 -fopenmp" \ LIBS="-L/apps/all/OpenBLAS/0.3.21-GCC-12.2.0/lib -lopenblas -L/apps/all/FFTW/3.3.10-GCC-12.2.0/lib -lfftw3 -L/apps/all/ELPA/2022.05.001-foss-2022b/lib -lelpa -lpthread -lm -ldl" \ MPIFC=mpif90 \ MPICC=mpicc' +======= +build_cmd = 'cd /dev/shm/easybuild/build/OpenMX/3.9/foss-2022b/openmx3.9/source && sed -i "s/-xHOST//g" makefile && sed -i "s/-ip//g" makefile && sed -i "s/-qopenmp/-fopenmp/g" makefile && sed -i "s/-no-prec-div//g" makefile && make CFLAGS="-O3 -fopenmp"' + +# The third party packages should be installed separately and added as +# dependencies. The exception is w90, which is force built +#buildopts = 'all' +>>>>>>> 68e9d9eacfeb69e5e35ca50c309124a475ebae50 # parallel build tends to fail parallel = 0 diff --git a/u/UCX/UCX-1.12.0-GCC-10.2.0-CUDA-11.6.0.eb b/u/UCX/UCX-1.12.0-GCC-10.2.0-CUDA-11.6.0.eb index 2ba17d25..44515b7b 100644 --- a/u/UCX/UCX-1.12.0-GCC-10.2.0-CUDA-11.6.0.eb +++ b/u/UCX/UCX-1.12.0-GCC-10.2.0-CUDA-11.6.0.eb @@ -30,11 +30,13 @@ osdependencies = [OS_PKG_IBVERBS_DEV] dependencies = [ ('numactl', '2.0.13'), ('CUDAcore', '11.6.0', '', True), + ('GDRCopy', '2.1', '-GCCcore-10.2.0-CUDA-11.6.0', True), ] configure_cmd = "contrib/configure-release" configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs --with-gdrcopy=$EBROOTGDRCOPY ' + configopts += '--without-java --disable-doxygen-doc --with-cuda=$EBROOTCUDACORE ' buildopts = 'V=1'