From 996a7a79eac9fb4bae7188d243a6672ace0a0385 Mon Sep 17 00:00:00 2001 From: crivella Date: Mon, 10 Nov 2025 17:46:44 +0100 Subject: [PATCH] Add files for `lfoss` toolchain 2025b --- .../f/FFTW.MPI/FFTW.MPI-3.3.10-lompi-2025b.eb | 19 +++++++++ .../FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb | 21 ++++++++++ easybuild/easyconfigs/l/lfoss/lfoss-2025b.eb | 28 +++++++++++++ .../ScaLAPACK-2.2.2-lompi-2025b-fb.eb | 42 +++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-lompi-2025b.eb create mode 100644 easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb create mode 100644 easybuild/easyconfigs/l/lfoss/lfoss-2025b.eb create mode 100644 easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.2-lompi-2025b-fb.eb diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-lompi-2025b.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-lompi-2025b.eb new file mode 100644 index 00000000000..26a2b8a664f --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-lompi-2025b.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': 'lompi', 'version': '2025b'} +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/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb new file mode 100644 index 00000000000..8d140d1a310 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-llvm-compilers-20.1.8.eb @@ -0,0 +1,21 @@ +name = 'FFTW' +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': 'llvm-compilers', 'version': '20.1.8'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +runtest = 'check' + +# Right now FFTW checks for GCC>4.6, (specifically GCC) when quad precision is enabled +# Should check can be safely disabled in order to compile with LLVM +with_quad_prec = False + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/l/lfoss/lfoss-2025b.eb b/easybuild/easyconfigs/l/lfoss/lfoss-2025b.eb new file mode 100644 index 00000000000..d9f09eafda3 --- /dev/null +++ b/easybuild/easyconfigs/l/lfoss/lfoss-2025b.eb @@ -0,0 +1,28 @@ +easyblock = 'Toolchain' + +name = 'lfoss' +version = '2025b' + +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_llvmver = '20.1.8' + +# toolchain used to build foss dependencies +local_comp_mpi_tc = ('lompi', version) + +# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain +# because of toolchain preparation functions +dependencies = [ + ('llvm-compilers', local_llvmver), + ('OpenMPI', '5.0.8', '', ('llvm-compilers', local_llvmver)), + ('FlexiBLAS', '3.4.5', '', ('llvm-compilers', local_llvmver)), + ('FFTW', '3.3.10', '', ('llvm-compilers', local_llvmver)), + ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc), + ('ScaLAPACK', '2.2.2', '-fb', local_comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.2-lompi-2025b-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.2-lompi-2025b-fb.eb new file mode 100644 index 00000000000..0e6e5ec8098 --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.2-lompi-2025b-fb.eb @@ -0,0 +1,42 @@ +name = 'ScaLAPACK' +version = '2.2.2' +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': 'lompi', 'version': '2025b'} +toolchainopts = { + 'extra_cflags': '-std=c89', # See https://github.com/Reference-ScaLAPACK/scalapack/issues/31 + 'extra_fflags': '-lpthread', 'openmp': True, 'pic': True, 'usempi': True +} + +source_urls = ['https://github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['a2f0c9180a210bf7ffe126c9cb81099cf337da1a7120ddb4cbe4894eb7b7d022'] + +builddependencies = [ + ('CMake', '4.0.3'), +] + +dependencies = [ + ('FlexiBLAS', '3.4.5'), +] + +# Other CMakeLists.txt in ScaLAPACK 2.2.2 are CMake 3.5+ +preconfigopts = 'sed -i "s/VERSION 2.8/VERSION 3.5/" %(start_dir)s/BLACS/INSTALL/CMakeLists.txt && ' + +# 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'