new file: f/foss/foss-2017b.eb

new file:   g/gompi/gompi-2017b.eb
	new file:   o/OpenBLAS/OpenBLAS-0.2.20-GCC-6.3.0-2.27.eb
	new file:   s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2017b-OpenBLAS-0.2.20.eb
This commit is contained in:
Lukáš Krupčík 2018-03-05 07:30:42 +01:00
parent ba9e8e9001
commit 033cf9c51d
4 changed files with 126 additions and 0 deletions

33
f/foss/foss-2017b.eb Normal file
View File

@ -0,0 +1,33 @@
easyblock = 'Toolchain'
name = 'foss'
version = '2017b'
homepage = '(none)'
description = """GNU Compiler Collection (GCC) based compiler toolchain, including
OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK."""
toolchain = {'name': 'dummy', 'version': 'dummy'}
gccver = '6.3.0-2.27'
blaslib = 'OpenBLAS'
blasver = '0.2.20'
blas = '%s-%s' % (blaslib, blasver)
# toolchain used to build foss dependencies
comp_mpi_tc_name = 'gompi'
comp_mpi_tc = (comp_mpi_tc_name, version)
# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain
# because of toolchain preparation functions
# For binutils, stick to http://wiki.osdev.org/Cross-Compiler_Successful_Builds
dependencies = [
('GCC', gccver),
('OpenMPI', '2.1.1', '', ('GCC', gccver)),
(blaslib, blasver, '', ('GCC', gccver)),
('FFTW', '3.3.6', '', comp_mpi_tc),
('ScaLAPACK', '2.0.2', '-%s' % blas, comp_mpi_tc),
]
moduleclass = 'toolchain'

20
g/gompi/gompi-2017b.eb Normal file
View File

@ -0,0 +1,20 @@
easyblock = "Toolchain"
name = 'gompi'
version = '2017b'
homepage = '(none)'
description = """GNU Compiler Collection (GCC) based compiler toolchain,
including OpenMPI for MPI support."""
toolchain = {'name': 'dummy', 'version': 'dummy'}
gccver = '6.3.0-2.27'
# compiler toolchain dependencies
dependencies = [
('GCC', gccver), # includes both GCC and binutils
('OpenMPI', '2.1.1', '', ('GCC', gccver)),
]
moduleclass = 'toolchain'

View File

@ -0,0 +1,51 @@
easyblock = 'ConfigureMake'
name = 'OpenBLAS'
version = '0.2.20'
homepage = 'http://xianyi.github.com/OpenBLAS/'
description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."
toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'}
large_src = 'large.tgz'
timing_src = 'timing.tgz'
source_urls = [
# order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
'http://www.netlib.org/lapack/timing/',
'https://github.com/xianyi/OpenBLAS/archive/',
]
sources = ['v%(version)s.tar.gz']
checksums = [
'5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394', # v0.2.20.tar.gz (OpenBLAS)
'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1', # large.tgz
'999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af', # timing.tgz
# OpenBLAS-0.2.20_fix-Intel-L1-cache-size-detection.patch
'1d043e4838ec1f90b2b49318b780e3ab13b46133cb72a8d83eb0e3b1b056c4d6',
'1e6a046ab658c6e0b351de901d2812db28c2042f9f141416144c2faaf71fbb37', # OpenBLAS-0.2.20_revert-honor-cpuset.patch
]
patches = [
(large_src, '.'),
(timing_src, '.'),
'OpenBLAS-%(version)s_fix-Intel-L1-cache-size-detection.patch',
'OpenBLAS-%(version)s_revert-honor-cpuset.patch',
]
skipsteps = ['configure']
buildopts = 'BINARY=64 USE_THREAD=1 USE_OPENMP=1 CC="$CC" FC="$F77"'
installopts = "USE_THREAD=1 USE_OPENMP=1 PREFIX=%(installdir)s"
# extensive testing can be enabled by uncommenting the line below
# runtest = 'PATH=.:$PATH lapack-timing'
sanity_check_paths = {
'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h',
'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h',
'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'numlib'

View File

@ -0,0 +1,22 @@
name = 'ScaLAPACK'
version = '2.0.2'
homepage = 'http://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': '2017b'}
toolchainopts = {'pic': True}
source_urls = [homepage]
sources = [SOURCELOWER_TGZ]
checksums = ['0c74aeae690fe5ee4db7926f49c5d0bb69ce09eea75beb915e00bba07530395c']
blaslib = 'OpenBLAS'
blasver = '0.2.20'
versionsuffix = "-%s-%s" % (blaslib, blasver)
dependencies = [(blaslib, blasver, '', ('GCC', '6.3.0-2.27'))]
moduleclass = 'numlib'