diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2022.05.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2022.05.eb new file mode 100644 index 000000000000..ff23461db85c --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2022.05.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': '2022.05'} +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-2022.05.eb b/easybuild/easyconfigs/f/foss/foss-2022.05.eb new file mode 100644 index 000000000000..c6ded56db6a0 --- /dev/null +++ b/easybuild/easyconfigs/f/foss/foss-2022.05.eb @@ -0,0 +1,28 @@ +easyblock = 'Toolchain' + +name = 'foss' +version = '2022.05' + +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 = '11.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', '4.1.4', '', ('GCC', local_gccver)), + ('FlexiBLAS', '3.2.0', '', ('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/h/HPL/HPL-2.3-foss-2022.05.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2022.05.eb new file mode 100644 index 000000000000..a4a3eaef701c --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2022.05.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': '2022.05'} +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/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2022.05-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2022.05-fb.eb new file mode 100644 index 000000000000..6b905fb92216 --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2022.05-fb.eb @@ -0,0 +1,43 @@ +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': '2022.05'} +toolchainopts = {'pic': 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.23.1'), +] + +dependencies = [ + ('FlexiBLAS', '3.2.0'), +] + +# 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 +configopts += '-DCMAKE_C_COMPILER=mpicc ' +configopts += '-DCMAKE_Fortran_COMPILER=mpif90 ' +configopts += '-DCMAKE_Fortran_FLAGS="-lpthread -fopenmp $DCMAKE_Fortran_FLAGS" ' + +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/ScaLAPACK/ScaLAPACK-2.2.0_fix-GCC-10.patch b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0_fix-GCC-10.patch new file mode 100644 index 000000000000..575462ae08e3 --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0_fix-GCC-10.patch @@ -0,0 +1,65 @@ +From a0f76fc0c1c16646875b454b7d6f8d9d17726b5a Mon Sep 17 00:00:00 2001 +From: "Jose E. Roman" +Date: Wed, 2 Mar 2022 10:42:17 +0100 +Subject: [PATCH] Fix rank mismatch error in gfortran-10 + +--- + SRC/pdtrord.f | 4 ++-- + SRC/pstrord.f | 4 ++-- + SRC/pstrsen.f | 8 ++++---- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/SRC/pdtrord.f b/SRC/pdtrord.f +index 6206ff4..63e9457 100644 +--- a/SRC/pdtrord.f ++++ b/SRC/pdtrord.f +@@ -487,10 +487,10 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT, + MMAX( 1 ) = M + MMIN( 1 ) = M + IF( NPROCS.GT.1 ) +- $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1, ++ $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX( 1 ), 1, -1, + $ -1, -1, -1, -1 ) + IF( NPROCS.GT.1 ) +- $ CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1, ++ $ CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN( 1 ), 1, -1, + $ -1, -1, -1, -1 ) + IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN + M = MMAX( 1 ) +diff --git a/SRC/pstrord.f b/SRC/pstrord.f +index 4bd7785..6960914 100644 +--- a/SRC/pstrord.f ++++ b/SRC/pstrord.f +@@ -487,10 +487,10 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT, + MMAX( 1 ) = M + MMIN( 1 ) = M + IF( NPROCS.GT.1 ) +- $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1, ++ $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX( 1 ), 1, -1, + $ -1, -1, -1, -1 ) + IF( NPROCS.GT.1 ) +- $ CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1, ++ $ CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN( 1 ), 1, -1, + $ -1, -1, -1, -1 ) + IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN + M = MMAX( 1 ) +diff --git a/SRC/pstrsen.f b/SRC/pstrsen.f +index 83dfd56..7f6d4ee 100644 +--- a/SRC/pstrsen.f ++++ b/SRC/pstrsen.f +@@ -526,11 +526,11 @@ SUBROUTINE PSTRSEN( JOB, COMPQ, SELECT, PARA, N, T, IT, JT, + MMAX( 1 ) = M + MMIN( 1 ) = M + IF( NPROCS.GT.1 ) +- $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1, +- $ -1, -1, -1, -1 ) ++ $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX( 1 ), 1, -1, ++ $ -1, -1, -1, -1 ) + IF( NPROCS.GT.1 ) +- $ CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1, +- $ -1, -1, -1, -1 ) ++ $ CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN( 1 ), 1, -1, ++ $ -1, -1, -1, -1 ) + IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN + M = MMAX( 1 ) + IF( NPROCS.GT.1 )