Skip to content

Commit

Permalink
Merge pull request #13788 from branfosj/20210821161840_new_pr_FFTW339
Browse files Browse the repository at this point in the history
{toolchain} foss/2021.07
  • Loading branch information
boegel authored Aug 24, 2021
2 parents 4bfd9ee + 6488165 commit 90895b1
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 0 deletions.
17 changes: 17 additions & 0 deletions easybuild/easyconfigs/f/FFTW/FFTW-3.3.9-gompi-2021.07.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name = 'FFTW'
version = '3.3.9'

homepage = 'http://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': '2021.07'}
toolchainopts = {'pic': True}

source_urls = [homepage]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d']

runtest = 'check'

moduleclass = 'numlib'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.0.4-GCC-11.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name = 'FlexiBLAS'
version = '3.0.4'

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.2.0'}
local_extra_flags = "-fstack-protector-strong -fstack-clash-protection"
toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}

source_urls = ['https://csc.mpi-magdeburg.mpg.de/mpcsc/software/flexiblas/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['50a88f2e88994dda91b2a2621850afd9654b3b84820e737e335687a46751be5c']

builddependencies = [
('CMake', '3.21.1'),
('Python', '3.9.6'), # required for running the tests
]

# note: first listed library will be used as default by FlexiBLAS,
# unless otherwise specified via easyconfig parameter flexiblas_default
dependencies = [
('OpenBLAS', '0.3.17'),
]

moduleclass = 'lib'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/f/foss/foss-2021.07.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
easyblock = 'Toolchain'

name = 'foss'
version = '2021.07'

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.2.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.1', '', ('GCC', local_gccver)),
('FlexiBLAS', '3.0.4', '', ('GCC', local_gccver)),
('FFTW', '3.3.9', '', local_comp_mpi_tc),
('ScaLAPACK', '2.1.0', '-fb', local_comp_mpi_tc),
]

moduleclass = 'toolchain'
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name = 'ScaLAPACK'
version = '2.1.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': '2021.07'}
toolchainopts = {'pic': True}

source_urls = [homepage]
sources = [SOURCELOWER_TGZ]
patches = ['ScaLAPACK-%(version)s_fix-GCC-10.patch']
checksums = [
'61d9216cf81d246944720cfce96255878a3f85dec13b9351f1fa0fd6768220a6', # scalapack-2.1.0.tgz
'bbb713c9fcabac802811c7f2c3a957c2d5d19dfd118ed1f6578c1436b82c7c43', # ScaLAPACK-2.1.0_fix-GCC-10.patch
]

builddependencies = [
('CMake', '3.21.1'),
]

dependencies = [
('FlexiBLAS', '3.0.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
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'

0 comments on commit 90895b1

Please sign in to comment.