diff --git a/f/foss/foss-2017b.eb b/f/foss/foss-2017b.eb new file mode 100644 index 00000000..99dc6645 --- /dev/null +++ b/f/foss/foss-2017b.eb @@ -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' diff --git a/g/gompi/gompi-2017b.eb b/g/gompi/gompi-2017b.eb new file mode 100644 index 00000000..177d5902 --- /dev/null +++ b/g/gompi/gompi-2017b.eb @@ -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' diff --git a/o/OpenBLAS/OpenBLAS-0.2.20-GCC-6.3.0-2.27.eb b/o/OpenBLAS/OpenBLAS-0.2.20-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..d14b45a6 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.20-GCC-6.3.0-2.27.eb @@ -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' diff --git a/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2017b-OpenBLAS-0.2.20.eb b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2017b-OpenBLAS-0.2.20.eb new file mode 100644 index 00000000..644a5fdc --- /dev/null +++ b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2017b-OpenBLAS-0.2.20.eb @@ -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'