diff --git a/Golden_Repo/README.md b/Golden_Repo/README.md index 99198f1e06daea856e9acb36579dffd070458c62..4f4c6c69932e5d1530aeb095b6dde0babe6a9d09 100644 --- a/Golden_Repo/README.md +++ b/Golden_Repo/README.md @@ -1,40 +1,41 @@ -The table below shows the details of the toolchains in the 2022 stage: +The table below shows the details of the toolchains in the 2023 stage: - Base | Toolchain name | Toolchain version | Underlying GCC | Compiler | MPI | CUDA | Math libraries | Includes software from | |-----------------|---------------------------|----------------|------------------|-------------------------|----------|----------------|---------------------------| -| GCCcore | 11.2.0 | 11.2.0 | | | | | | +| GCCcore | 11.3.0 | 11.3.0 | | | | | | - Compilers | Toolchain name | Toolchain version | Underlying GCC | Compiler | MPI | CUDA | Math libraries | Includes software from | |-----------------|---------------------------|----------------|------------------|-------------------------|----------|----------------|---------------------------| -| GCC | 11.2.0 | 11.2.0 | GCC 11.2.0 | | | | GCCcore | -| NVHPC | TBD-GCC-11.2.0 | 11.2.0 | NVHPC TBD | | 11.5§ | | GCCcore | -| intel-compilers | 2021.4.0 | 11.2.0 | Intel 2021.4.0 | | | | GCCcore | +| GCC | 11.3.0 | 11.3.0 | GCC 11.3.0 | | | | GCCcore | +| NVHPC | TBD-GCC-11.3.0 | 11.3.0 | NVHPC TBD | | 11.7§ | | GCCcore | +| intel-compilers | 2022.2.0 | 11.3.0 | Intel 2022.2.0 | | | | GCCcore | - Compilers+MPI | Toolchain name | Toolchain version | Underlying GCC | Compiler | MPI | CUDA | Math libraries | Includes software from | |-----------------|---------------------------|----------------|------------------|-------------------------|----------|----------------|---------------------------| -| gpsmpi | 2021b | 11.2.0 | GCC 11.2.0 | ParaStationMPI 5.5.X | 11.5§ | | GCCcore, GCC | -| nvompic | 2021b | 11.2.0 | NVHPC TBD | OpenMPI 4.1.X | 11.5 | | GCCcore, NVHPC | -| npsmpic | 2021b | 11.2.0 | NVHPC TBD | ParaStationMPI 5.5.X | 11.5 | | GCCcore, NVHPC | -| ipsmpi | 2021b | 11.2.0 | Intel 2021.4.0 | ParaStationMPI 5.5.X | 11.5§ | | GCCcore, intel-compilers | -| iimpi | 2021b | 11.2.0 | Intel 2021.4.0 | Intel MPI 2021.X.Y | | | GCCcore, intel-compilers | -| gompi | 2021b | 11.2.0 | GCC 11.2.0 | OpenMPI 4.1.X | 11.5§ | | GCCcore, GCC | -| iompi | 2021b | 11.2.0 | Intel 2021.4.0 | OpenMPI 4.1.X | 11.5§ | | GCCcore, intel-compilers | +| gpsmpi | 2022a | 11.3.0 | GCC 11.3.0 | ParaStationMPI 5.6.X | 11.7§ | | GCCcore, GCC | +| nvompic | 2022a | 11.3.0 | NVHPC TBD | OpenMPI 4.1.X | 11.7 | | GCCcore, NVHPC | +| npsmpic | 2022a | 11.3.0 | NVHPC TBD | ParaStationMPI 5.6.X | 11.7 | | GCCcore, NVHPC | +| ipsmpi | 2022a | 11.3.0 | Intel 2022.2.0 | ParaStationMPI 5.6.X | 11.7§ | | GCCcore, intel-compilers | +| iimpi | 2022a | 11.3.0 | Intel 2022.2.0 | Intel MPI 2021.X.Y | | | GCCcore, intel-compilers | +| gompi | 2022a | 11.3.0 | GCC 11.3.0 | OpenMPI 4.1.X | 11.7§ | | GCCcore, GCC | +| iompi | 2022a | 11.3.0 | Intel 2022.2.0 | OpenMPI 4.1.X | 11.7§ | | GCCcore, intel-compilers | - Compilers+MPI+Math | Toolchain name | Toolchain version | Underlying GCC | Compiler | MPI | CUDA | Math libraries | Includes software from | |-----------------|---------------------------|----------------|------------------|-------------------------|----------|----------------|---------------------------| -| gpsmkl | 2021b | 11.2.0 | GCC 11.2.0 | ParaStationMPI 5.5.X | 11.5§ | MKL 2021.4.0 | GCCcore, GCC, gpsmpi | -| gomkl | 2021b | 11.2.0 | GCC 11.2.0 | OpenMPI 4.1.X | 11.5§ | MKL 2021.4.0 | GCCcore, GCC, gompi | -| intel | 2021b | 11.2.0 | Intel 2021.4.0 | Intel MPI 2021.X.Y | | MKL 2021.4.0 | GCCcore, GCC, iimpi | -| intel-para | 2021b | 11.2.0 | Intel 2021.4.0 | ParaStationMPI 5.5.X | | MKL 2021.4.0 | GCCcore, GCC, ipsmpi | -| iomkl | 2021b | 11.2.0 | Intel 2021.4.0 | OpenMPI 4.1.X | 11.5§ | MKL 2021.4.0 | GCCcore, GCC, iompi | +| foss | 2022a | 11.3.0 | GCC 11.3.0 | OpenMPI 4.1.X | 11.7§ | FlexiBlas (MKL 2022.1.0, BLIS 0.9.0, OpenBLAS 0.3.20) | GCCcore, GCC, gopmpi | +| gpsmkl | 2022a | 11.3.0 | GCC 11.3.0 | ParaStationMPI 5.6.X | 11.7§ | MKL 2022.2.0 | GCCcore, GCC, gpsmpi | +| gomkl | 2022a | 11.3.0 | GCC 11.3.0 | OpenMPI 4.1.X | 11.7§ | MKL 2022.2.0 | GCCcore, GCC, gompi | +| intel | 2022a | 11.3.0 | Intel 2022.2.0 | Intel MPI 2021.X.Y | | MKL 2022.2.0 | GCCcore, GCC, iimpi | +| intel-para | 2022a | 11.3.0 | Intel 2022.2.0 | ParaStationMPI 5.6.X | | MKL 2022.2.0 | GCCcore, GCC, ipsmpi | +| iomkl | 2022a | 11.3.0 | Intel 2022.2.0 | OpenMPI 4.1.X | 11.7§ | MKL 2022.2.0 | GCCcore, GCC, iompi | § Not included in the toolchain just as dependency diff --git a/Golden_Repo/b/BLIS/BLIS-0.9.0-GCC-11.3.0.eb b/Golden_Repo/b/BLIS/BLIS-0.9.0-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..a24a015854f9d5fd10f82d0bd7b46efe363a7440 --- /dev/null +++ b/Golden_Repo/b/BLIS/BLIS-0.9.0-GCC-11.3.0.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'BLIS' +version = '0.9.0' + +homepage = 'https://github.com/flame/blis/' +description = """BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/flame/blis/archive/'] +sources = ['%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_disable_power9_kernels.patch', + '%(name)s-%(version)s_enable_ppc_autodetect.patch', +] +checksums = [ + '1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308', # 0.9.0.tar.gz + # BLIS-0.9.0_disable_power9_kernels.patch + 'ed7a326bc5c5c21c42faefbec2fd7be609d1c7236981b466475edace39307279', + # BLIS-0.9.0_enable_ppc_autodetect.patch + 'f373fb252c0d14036fb631f048091976cceb02abb3e570a97fbaeac2fbb12328', +] +builddependencies = [ + ('Python', '3.10.4', '-bare'), + ('Perl', '5.34.1'), +] + +configopts = '--enable-cblas --enable-threading=openmp --enable-shared CC="$CC" auto' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['include/blis/cblas.h', 'include/blis/blis.h', + 'lib/libblis.a', 'lib/libblis.%s' % SHLIB_EXT], + 'dirs': [], +} + +modextrapaths = {'CPATH': 'include/blis'} + +moduleclass = 'numlib' diff --git a/Golden_Repo/b/BLIS/BLIS-0.9.0_disable_power9_kernels.patch b/Golden_Repo/b/BLIS/BLIS-0.9.0_disable_power9_kernels.patch new file mode 100644 index 0000000000000000000000000000000000000000..98daaa8a02e0426cbcfa3c0c468d85d0e768ddde --- /dev/null +++ b/Golden_Repo/b/BLIS/BLIS-0.9.0_disable_power9_kernels.patch @@ -0,0 +1,18 @@ +There seemingly are bugs in the Power9 kernels. +Workaround this by using the generic kernels on Power9 introduced by +https://github.com/flame/blis/commit/ee9ff988c49f16696679d4c6cd3dcfcac7295be7 +See https://github.com/flame/blis/issues/621 + +diff --git a/build/detect/config/config_detect.c b/build/detect/config/config_detect.c +index 5e29def..5603163 100644 +--- a/build/detect/config/config_detect.c ++++ b/build/detect/config/config_detect.c +@@ -70,6 +70,8 @@ + int main( int argc, char** argv ) + { + arch_t id = bli_cpuid_query_id(); ++ if(id == BLIS_ARCH_POWER9) ++ id = BLIS_ARCH_GENERIC; + char* s = bli_arch_string( id ); + + printf( "%s\n", s ); diff --git a/Golden_Repo/b/BLIS/BLIS-0.9.0_enable_ppc_autodetect.patch b/Golden_Repo/b/BLIS/BLIS-0.9.0_enable_ppc_autodetect.patch new file mode 100644 index 0000000000000000000000000000000000000000..3c6fca9fbecb26405b019e6ce1c9128f8f43f272 --- /dev/null +++ b/Golden_Repo/b/BLIS/BLIS-0.9.0_enable_ppc_autodetect.patch @@ -0,0 +1,91 @@ +Add autodetection for POWER7, POWER9 & POWER10 +See https://github.com/amd/blis/pull/6 + +Author: Alexander Grund (TU Dresden) +diff -ur a/frame/base/bli_cpuid.c b/frame/base/bli_cpuid.c +--- a/frame/base/bli_cpuid.c 2022-04-01 15:12:06.000000000 +0200 ++++ b/frame/base/bli_cpuid.c 2022-07-07 16:15:43.724020000 +0200 +@@ -485,7 +485,7 @@ + return TRUE; + } + +-#elif defined(__aarch64__) || defined(__arm__) || defined(_M_ARM) ++#elif defined(__aarch64__) || defined(__arm__) || defined(_M_ARM) || defined(_ARCH_PPC) + + arch_t bli_cpuid_query_id( void ) + { +@@ -530,9 +530,14 @@ + return BLIS_ARCH_GENERIC; + } + } +- else if ( vendor == VENDOR_UNKNOWN ) ++ else if ( vendor == VENDOR_IBM ) + { +- return BLIS_ARCH_GENERIC; ++ if ( model == MODEL_POWER7) ++ return BLIS_ARCH_POWER7; ++ else if ( model == MODEL_POWER9) ++ return BLIS_ARCH_POWER9; ++ else if ( model == MODEL_POWER10) ++ return BLIS_ARCH_POWER10; + } + + return BLIS_ARCH_GENERIC; +@@ -1203,7 +1208,7 @@ + return VENDOR_ARM; + } + +-#elif defined(__arm__) || defined(_M_ARM) ++#elif defined(__arm__) || defined(_M_ARM) || defined(_ARCH_PPC) + + /* + I can't easily find documentation to do this as for aarch64, though +@@ -1240,6 +1245,20 @@ + char feat_str[ TEMP_BUFFER_SIZE ]; + char* r_val; + ++#ifdef _ARCH_PPC ++ r_val = find_string_in( "cpu", proc_str, TEMP_BUFFER_SIZE, pci_str ); ++ if ( r_val == NULL ) return VENDOR_IBM; ++ ++ if ( strstr( proc_str, "POWER7" ) != NULL ) ++ *model = MODEL_POWER7; ++ else if ( strstr( proc_str, "POWER9" ) != NULL ) ++ *model = MODEL_POWER9; ++ else if ( strstr( proc_str, "POWER10" ) != NULL ) ++ *model = MODEL_POWER10; ++ ++ return VENDOR_IBM; ++#endif ++ + //printf( "bli_cpuid_query(): beginning search\n" ); + + // Search /proc/cpuinfo for the 'Processor' entry. +diff -ur a/frame/base/bli_cpuid.h b/frame/base/bli_cpuid.h +--- a/frame/base/bli_cpuid.h 2022-04-01 15:12:06.000000000 +0200 ++++ b/frame/base/bli_cpuid.h 2022-07-07 16:09:22.617023000 +0200 +@@ -161,19 +161,23 @@ + FEATURE_AVX512VL = 0x4000 + }; + +-#elif defined(__aarch64__) || defined(__arm__) || defined(_M_ARM) ++#elif defined(__aarch64__) || defined(__arm__) || defined(_M_ARM) || defined(_ARCH_PPC) + + char* find_string_in( char* target, char* buffer, size_t buf_len, char* filepath ); + + enum + { + VENDOR_ARM = 0, ++ VENDOR_IBM, + VENDOR_UNKNOWN + }; + enum + { + MODEL_ARMV7 = 0, + MODEL_ARMV8, ++ MODEL_POWER7, ++ MODEL_POWER9, ++ MODEL_POWER10, + MODEL_UNKNOWN + }; + enum diff --git a/Golden_Repo/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2022a.eb b/Golden_Repo/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f02489825a9299a18e8ea0468efdb5fe0a7cba99 --- /dev/null +++ b/Golden_Repo/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2022a.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': '2022a'} +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/Golden_Repo/f/FFTW/FFTW-3.3.10-GCC-11.3.0.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..99e7044835e673f2744509f34db639d9485527a2 --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-GCC-11.3.0.eb @@ -0,0 +1,17 @@ +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': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/Golden_Repo/f/FlexiBLAS/FlexiBLAS-3.2.0-GCC-11.3.0.eb b/Golden_Repo/f/FlexiBLAS/FlexiBLAS-3.2.0-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..73c7f6deef16c3ed19d20d0cd40e6d0eb393685f --- /dev/null +++ b/Golden_Repo/f/FlexiBLAS/FlexiBLAS-3.2.0-GCC-11.3.0.eb @@ -0,0 +1,62 @@ +easyblock = 'Bundle' + +name = 'FlexiBLAS' +version = '3.2.0' + +homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release' +description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation +used by a program without recompiling or relinking it.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +local_extra_flags = "-fstack-protector-strong -fstack-clash-protection" +toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags} + +builddependencies = [ + ('CMake', '3.23.1'), + ('Python', '3.10.4', '-bare'), # required for running the tests + ('BLIS', '0.9.0'), +] + +dependencies = [ + ('BLIS', '0.9.0'), + ('OpenBLAS', '0.3.20'), + # add imkl as dependecy only on x86_64 + ('imkl', {'arch=x86_64': '2022.1.0', 'arch=*': False}, '', SYSTEM), +] + +# note: first listed backend will be used as default by FlexiBLAS, +# unless otherwise specified via easyconfig parameter flexiblas_default + +# Only use imkl on x86_64 +if ARCH == 'x86_64': + local_backends = ['imkl', 'OpenBLAS', 'BLIS'] +else: + local_backends = ['OpenBLAS', 'BLIS'] + +default_component_specs = {'start_dir': '%(namelower)s-%(version)s'} +sanity_check_all_components = True + +# Also build and install LAPACKE, which FlexiBLAS does not support yet +components = [ + (name, version, { + 'source_urls': ['https://github.com/mpimd-csc/flexiblas/releases/download/v%(version)s/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['a3f4d66a30b6fa6473e492de86d34abc5f9d4e69d4d91ba23618388e8df05904'], + 'backends': local_backends, + }), + ('LAPACK', '3.10.1', { + 'easyblock': 'CMakeMake', + 'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['cd005cd021f144d7d5f7f33c943942db9f03a28d110d6a3b80d718a295f7f714'], + 'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON ' + '-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON ' + '-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'), + 'sanity_check_paths': { + 'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'], + 'dirs': [], + }, + }), +] + +moduleclass = 'lib' diff --git a/Golden_Repo/f/foss/foss-2022a.eb b/Golden_Repo/f/foss/foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..99d57d2d5fa0d202211518d6e7ec0be52e1584cc --- /dev/null +++ b/Golden_Repo/f/foss/foss-2022a.eb @@ -0,0 +1,28 @@ +easyblock = 'Toolchain' + +name = 'foss' +version = '2022a' + +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/Golden_Repo/g/gompi/gompi-2022a.eb b/Golden_Repo/g/gompi/gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f2ad0f8735d4b8d819b8a67c5285bba21105577f --- /dev/null +++ b/Golden_Repo/g/gompi/gompi-2022a.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gompi' +version = '2022a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '11.3.0' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and binutils + ('OpenMPI', '4.1.4', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/Golden_Repo/i/imkl/imkl-2022.1.0.eb b/Golden_Repo/i/imkl/imkl-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..c34d533cf35b24ed7dd648836dc0525265b78e46 --- /dev/null +++ b/Golden_Repo/i/imkl/imkl-2022.1.0.eb @@ -0,0 +1,18 @@ +name = 'imkl' +version = '2022.1.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "Intel oneAPI Math Kernel Library" + +toolchain = SYSTEM + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18721/'] +sources = ['l_onemkl_p_%(version)s.223_offline.sh'] +checksums = ['4b325a3c4c56e52f4ce6c8fbb55d7684adc16425000afc860464c0f29ea4563e'] + +interfaces = False + +installopts = "--download-cache=%(builddir)s/cache --download-dir=%(builddir)s/download --log-dir=%(builddir)s/log" + +moduleclass = 'numlib' diff --git a/Golden_Repo/o/OpenBLAS/OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch b/Golden_Repo/o/OpenBLAS/OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e6b25003c3a5883c482d08ad3ede73e2bef7f4e --- /dev/null +++ b/Golden_Repo/o/OpenBLAS/OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch @@ -0,0 +1,17 @@ +Workaround optimizer bug in GCC on POWER9. +See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100799 + +Author: Alexander Grund (TU Dresden) + +diff --git a/Makefile.power b/Makefile.power +index 946f5523..96b14dca 100644 +--- a/Makefile.power ++++ b/Makefile.power +@@ -35,6 +35,7 @@ endif + ifneq ($(F_COMPILER), PGI) + FCOMMON_OPT += -O2 -frecursive -fno-fast-math + ifeq ($(C_COMPILER), GCC) ++FCOMMON_OPT += -fstack-protector-strong + ifneq ($(GCCVERSIONGT4), 1) + $(warning your compiler is too old to fully support POWER9, getting a newer version of gcc is recommended) + FCOMMON_OPT += -mcpu=power8 -mtune=power8 diff --git a/Golden_Repo/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb b/Golden_Repo/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..72e27286e561fb237c0e45f7823ed480329b4199 --- /dev/null +++ b/Golden_Repo/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb @@ -0,0 +1,31 @@ +name = 'OpenBLAS' +version = '0.3.20' + +homepage = 'http://www.openblas.net/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = [ + # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble + 'https://www.netlib.org/lapack/timing/', + 'https://github.com/xianyi/OpenBLAS/archive/', +] +sources = ['v%(version)s.tar.gz'] +patches = [ + ('large.tgz', '.'), + ('timing.tgz', '.'), + 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch', +] +checksums = [ + '8495c9affc536253648e942908e88e097f2ec7753ede55aca52e5dead3029e3c', # v0.3.20.tar.gz + 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1', # large.tgz + '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af', # timing.tgz + # OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch + 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971', +] + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib' diff --git a/Golden_Repo/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2022a-fb.eb b/Golden_Repo/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2022a-fb.eb new file mode 100644 index 0000000000000000000000000000000000000000..5d3f67e7f5f5d634fb24b32769221a7ef7179a76 --- /dev/null +++ b/Golden_Repo/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2022a-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': '2022a'} +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'