From 2159744f0d49f9748b839a9c15400ebeb17f8a01 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Wed, 31 Jul 2024 18:54:20 +0000 Subject: [PATCH] adding easyconfigs: HPL-2.3-foss-2024a.eb, gfbf-2024a.eb, gompi-2024a.eb, OSU-Micro-Benchmarks-7.4-gompi-2024a.eb, FFTW.MPI-3.3.10-gompi-2024a.eb, foss-2024a.eb, SciPy-bundle-2024.05-gfbf-2024a.eb, ScaLAPACK-2.2.0-gompi-2024a-fb.eb --- .../f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb | 19 ++++ easybuild/easyconfigs/f/foss/foss-2024a.eb | 28 ++++++ easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb | 20 ++++ easybuild/easyconfigs/g/gompi/gompi-2024a.eb | 20 ++++ .../easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb | 21 ++++ .../OSU-Micro-Benchmarks-7.4-gompi-2024a.eb | 26 +++++ .../ScaLAPACK-2.2.0-gompi-2024a-fb.eb | 40 ++++++++ .../SciPy-bundle-2024.05-gfbf-2024a.eb | 97 +++++++++++++++++++ 8 files changed, 271 insertions(+) create mode 100644 easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb create mode 100644 easybuild/easyconfigs/f/foss/foss-2024a.eb create mode 100644 easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb create mode 100644 easybuild/easyconfigs/g/gompi/gompi-2024a.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb create mode 100644 easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.4-gompi-2024a.eb create mode 100644 easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2024a-fb.eb create mode 100644 easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb new file mode 100644 index 00000000000..2ed420c412f --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb @@ -0,0 +1,19 @@ +name = 'FFTW.MPI' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2024a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = ['fftw-%(version)s.tar.gz'] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +dependencies = [('FFTW', '3.3.10')] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/foss/foss-2024a.eb b/easybuild/easyconfigs/f/foss/foss-2024a.eb new file mode 100644 index 00000000000..7e9a4ba5112 --- /dev/null +++ b/easybuild/easyconfigs/f/foss/foss-2024a.eb @@ -0,0 +1,28 @@ +easyblock = 'Toolchain' + +name = 'foss' +version = '2024a' + +homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#foss-toolchain' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.""" + +toolchain = SYSTEM + +local_gccver = '13.3.0' + +# toolchain used to build foss dependencies +local_comp_mpi_tc = ('gompi', version) + +# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain +# because of toolchain preparation functions +dependencies = [ + ('GCC', local_gccver), + ('OpenMPI', '5.0.3', '', ('GCC', local_gccver)), + ('FlexiBLAS', '3.4.4', '', ('GCC', local_gccver)), + ('FFTW', '3.3.10', '', ('GCC', local_gccver)), + ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc), + ('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb b/easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb new file mode 100644 index 00000000000..51b74722cb5 --- /dev/null +++ b/easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gfbf' +version = '2024a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW.""" + +toolchain = SYSTEM + +local_gccver = '13.3.0' + +dependencies = [ + ('GCC', local_gccver), + ('FlexiBLAS', '3.4.4', '', ('GCC', local_gccver)), + ('FFTW', '3.3.10', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gompi/gompi-2024a.eb b/easybuild/easyconfigs/g/gompi/gompi-2024a.eb new file mode 100644 index 00000000000..c49f4050ff8 --- /dev/null +++ b/easybuild/easyconfigs/g/gompi/gompi-2024a.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gompi' +version = '2024a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '13.3.0' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and binutils + ('OpenMPI', '5.0.3', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb new file mode 100644 index 00000000000..8a70a42bb41 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb @@ -0,0 +1,21 @@ +name = 'HPL' +version = '2.3' + +homepage = 'https://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) + arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available + implementation of the High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.netlib.org/benchmark/%(namelower)s'] +sources = [SOURCELOWER_TAR_GZ] +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] +checksums = [ + '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz + '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.4-gompi-2024a.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.4-gompi-2024a.eb new file mode 100644 index 00000000000..0d9573028dd --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.4-gompi-2024a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '7.4' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'gompi', 'version': '2024a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['1edd0c2efa61999409bfb28740a7f39689a5b42b1a1b4c66d1656e5637f7cefc'] + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2024a-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2024a-fb.eb new file mode 100644 index 00000000000..1bccc16f38b --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2024a-fb.eb @@ -0,0 +1,40 @@ +name = 'ScaLAPACK' +version = '2.2.0' +versionsuffix = '-fb' + +homepage = 'https://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gompi', 'version': '2024a'} +toolchainopts = {'extra_fflags': '-lpthread', 'openmp': True, 'pic': True, 'usempi': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] +patches = ['ScaLAPACK-%(version)s_fix-GCC-10.patch'] +checksums = [ + '40b9406c20735a9a3009d863318cb8d3e496fb073d201c5463df810e01ab2a57', # scalapack-2.2.0.tgz + 'f6bc3c6dee012ba4a696548a2e12b6aae932ce4fd5a142153b338839f52b5906', # ScaLAPACK-2.2.0_fix-GCC-10.patch +] + +builddependencies = [ + ('CMake', '3.29.3'), +] + +dependencies = [ + ('FlexiBLAS', '3.4.4'), +] + +# Config Opts based on AOCL User Guide: +# https://developer.amd.com/wp-content/resources/AOCL_User%20Guide_2.2.pdf + +configopts = '-DBUILD_SHARED_LIBS=ON ' +configopts += '-DBLAS_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT +configopts += '-DLAPACK_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT + +sanity_check_paths = { + 'files': ['lib/libscalapack.%s' % SHLIB_EXT, 'lib64/libscalapack.%s' % SHLIB_EXT], + 'dirs': ["lib", "lib64"], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb new file mode 100644 index 00000000000..c140938671c --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb @@ -0,0 +1,97 @@ +easyblock = 'PythonBundle' + +name = 'SciPy-bundle' +version = '2024.05' + +homepage = 'https://python.org/' +description = "Bundle of Python packages for scientific software" + +toolchain = {'name': 'gfbf', 'version': '2024a'} +toolchainopts = {'pic': True, 'lowopt': True} + +builddependencies = [ + ('hypothesis', '6.103.1'), + ('UnZip', '6.0'), + # scipy >= 1.9.0 uses Meson/Ninja + ('Meson', '1.4.0'), + ('meson-python', '0.16.0'), + ('Ninja', '1.12.1'), + ('pkgconf', '2.2.0'), # required by scipy +] + +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), + ('pybind11', '2.12.0'), # required by scipy +] + +use_pip = True + +# order is important! +exts_list = [ + ('numpy', '1.26.4', { + 'patches': ['numpy-1.22.3_disable-broken-override-test.patch'], + 'checksums': [ + {'numpy-1.26.4.tar.gz': '2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010'}, + {'numpy-1.22.3_disable-broken-override-test.patch': + '9c589bb073b28b25ff45eb3c63c57966aa508dd8b318d0b885b6295271e4983c'}, + ], + }), + ('ply', '3.11', { + 'checksums': ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3'], + }), + ('gast', '0.5.4', { + 'checksums': ['9c270fe5f4b130969b54174de7db4e764b09b4f7f67ccfc32480e29f78348d97'], + }), + ('beniget', '0.4.1', { + 'checksums': ['75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c'], + }), + ('pythran', '0.16.1', { + 'checksums': ['861748c0f9c7d422b32724b114b3817d818ed4eab86c09781aa0a3f7ceabb7f9'], + }), + ('versioneer', '0.29', { + 'checksums': ['5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731'], + }), + ('scipy', '1.13.1', { + 'enable_slow_tests': True, + 'ignore_test_result': False, + 'patches': [ + 'scipy-1.11.1_disable-tests.patch', + 'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch', + ], + 'checksums': [ + {'scipy-1.13.1.tar.gz': '095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c'}, + {'scipy-1.11.1_disable-tests.patch': '906bfb03397d94882ccdc1b93bc2c8e854e0e060c2d107c83042992394e6a4af'}, + {'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch': + '918c8e6fa8215d459126f267764c961bde729ea4a116c7f6287cddfdc58ffcea'}, + ], + }), + ('numexpr', '2.10.0', { + 'patches': ['numexpr-2.10.0_fix-numpy-1.x.patch'], + 'checksums': [ + {'numexpr-2.10.0.tar.gz': 'c89e930752639df040539160326d8f99a84159bbea41943ab8e960591edaaef0'}, + {'numexpr-2.10.0_fix-numpy-1.x.patch': '8d70b2e95579e6f0adc07bc615144f7657b3b607f9210ec328b6622458ca726d'}, + ], + }), + ('Bottleneck', '1.3.8', { + 'checksums': ['6780d896969ba7f53c8995ba90c87c548beb3db435dc90c60b9a10ed1ab4d868'], + }), + ('tzdata', '2024.1', { + 'checksums': ['2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd'], + }), + ('pandas', '2.2.2', { + 'preinstallopts': "export PANDAS_CI=0 && ", + 'checksums': ['9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54'], + }), + ('mpmath', '1.3.0', { + 'checksums': ['7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f'], + }), + ('deap', '1.4.1', { + 'modulename': 'deap.base', + 'checksums': ['cc01de9892dfa7d1bc9803dab28892fead177f0182c81db47360a240ead778ff'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lang'