diff --git a/f/foss/foss-2019a.eb b/f/foss/foss-2019a.eb new file mode 100644 index 00000000..d4a7d2bd --- /dev/null +++ b/f/foss/foss-2019a.eb @@ -0,0 +1,36 @@ +# IT4Innovations 2020 +# LK + +easyblock = 'Toolchain' + +name = 'foss' +version = '2019a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based local_compiler toolchain, including + OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.""" + +toolchain = SYSTEM + +local_gccver = '8.3.0-2.32' + +local_blaslib = 'OpenBLAS' +local_blasver = '0.2.20' +blas = '%s-%s' % (local_blaslib, local_blasver) + +# toolchain used to build foss dependencies +local_comp_mpi_tc_name = 'gompi' +local_comp_mpi_tc = (local_comp_mpi_tc_name, version) + +# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain +# because of toolchain preparation functions +# For local_binutils, stick to http://wiki.osdev.org/Cross-Compiler_Successful_Builds +dependencies = [ + ('GCC', local_gccver), + ('OpenMPI', '4.0.4', '-CUDA', ('GCC', local_gccver)), + (local_blaslib, local_blasver, '', ('GCC', local_gccver)), + ('FFTW', '3.3.8'), + ('ScaLAPACK', '2.0.2', '-%s' % blas, local_comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/g/gompi/gompi-2019a.eb b/g/gompi/gompi-2019a.eb new file mode 100644 index 00000000..48b28830 --- /dev/null +++ b/g/gompi/gompi-2019a.eb @@ -0,0 +1,22 @@ +# IT4Innovations 2020a + +easyblock = "Toolchain" + +name = 'gompi' +version = '2019a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based local_compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '8.3.0-2.32' + +# local_compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and local_binutils + ('OpenMPI', '4.0.4', '-CUDA', ('GCC', '8.3.0-2.32')), +] + +moduleclass = 'toolchain' diff --git a/i/intelcuda/intelcuda-2020a.eb b/i/intelcuda/intelcuda-2020a.eb new file mode 100644 index 00000000..7a7481bd --- /dev/null +++ b/i/intelcuda/intelcuda-2020a.eb @@ -0,0 +1,22 @@ +# IT4Innovations 2020 +# LK + +easyblock = 'Toolchain' + +name = 'intelcuda' +version = '2020a' + +homepage = '(none)' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, + Intel MPI & Intel MKL, with CUDA toolkit""" + +toolchain = SYSTEM + +dependencies = [ + ('iccifort', '2020.0.166'), + ('impi', '2019.6.166-iccifort-2020.0.166'), + ('imkl', '2020.0.166-iimpi-2020a'), + ('CUDA', '10.2.89'), +] + +moduleclass = 'toolchain' diff --git a/m/magma/magma-2.5.3-foss-2018a-CUDA.eb b/m/magma/magma-2.5.3-foss-2018a-CUDA.eb new file mode 100644 index 00000000..a623b7b5 --- /dev/null +++ b/m/magma/magma-2.5.3-foss-2018a-CUDA.eb @@ -0,0 +1,38 @@ +# IT4Innovations 2020 +# LK + +easyblock = "ConfigureMake" + +name = 'magma' +version = '2.5.3' + +homepage = 'http://icl.cs.utk.edu/magma/' +description = """The MAGMA project aims to develop a dense linear algebra library similar to + LAPACK but for heterogeneous/hybrid architectures, starting with current Multicore+GPU systems.""" + +toolchain = {'name': 'foss', 'version': '2018a'} +toolchainopts = {'pic': True, 'openmp': True} + +source_urls = ['http://icl.cs.utk.edu/projectsfiles/magma/downloads/'] +sources = [SOURCE_TAR_GZ] +patches = [('%(name)s-2.5.0-fix-makefile.patch')] + +dependencies = [ + ('CUDA', '10.2.89', '', True), +] + +skipsteps = ['configure'] + +prebuildopts = 'touch make.inc && ' +# magma 2.5.0 does not build on sm_30 - so remove Kepler and specify sm_35 +# http://icl.cs.utk.edu/magma/forum/viewtopic.php?f=2&t=1906&sid=7048fadfd48a0d00c3c4294ddef6a096 +prebuildopts += 'GPU_TARGET="sm_35 Maxwell Pascal Volta" ' + +installopts = 'prefix=%(installdir)s' + +sanity_check_paths = { + 'files': ['lib/libmagma.so', 'lib/libmagma.a'], + 'dirs': ['include'], +} + +moduleclass = 'math' diff --git a/m/magma/magma-2.5.3_Fix_makefile_for_intel.patch b/m/magma/magma-2.5.3_Fix_makefile_for_intel.patch new file mode 100644 index 00000000..20757366 --- /dev/null +++ b/m/magma/magma-2.5.3_Fix_makefile_for_intel.patch @@ -0,0 +1,36 @@ +--- Makefile.orig 2020-06-26 10:13:22.473970426 +0200 ++++ Makefile 2020-06-26 10:16:07.918622654 +0200 +@@ -10,7 +10,7 @@ + CC ?= cc + CXX ?= c++ + NVCC ?= nvcc +-FORT ?= ++FORT ?= $(FC) + ifeq ($(FORT),) + $(warning No Fortran compiler was given in FORT in make.inc. Some testers will not be able to check their results.) + endif +@@ -23,17 +23,17 @@ + #FPIC = -fPIC + + # may want -std=c99 for CFLAGS, -std=c++11 for CXXFLAGS +-CFLAGS ?= -O3 $(FPIC) -DADD_ -Wall -MMD +-CXXFLAGS ?= $(CFLAGS) -std=c++11 +-NVCCFLAGS ?= -O3 -DADD_ -Xcompiler "$(FPIC) -Wall -Wno-unused-function" -std=c++11 +-FFLAGS ?= -O3 $(FPIC) -DADD_ -Wall -Wno-unused-dummy-argument +-F90FLAGS ?= -O3 $(FPIC) -DADD_ -Wall -Wno-unused-dummy-argument +-LDFLAGS ?= -O3 $(FPIC) ++CFLAGS := $(FPIC) -DADD_ -Wall -MMD $(CFLAGS) ++CXXFLAGS := $(CFLAGS) ++NVCCFLAGS := -DADD_ -Xcompiler " -Wall -Wno-unused-function -DADD_ -MMD -O2 -ftree-vectorize -march=native -fno-math-errno -fopenmp -fPIC" ++FFLAGS := $(FPIC) -DADD_ -Wall -Wno-unused-dummy-argument $(FCFLAGS) ++F90FLAGS := $(FPIC) -DADD_ -Wall -Wno-unused-dummy-argument $(F90FLAGS) ++LDFLAGS := $(FPIC) -fopenmp $(LDFLAGS) + + INC ?= -I$(CUDADIR)/include + + LIBDIR ?= -L$(CUDADIR)/lib64 +-LIB ?= -lcudart -lcudadevrt -lcublas -lcusparse -llapack -lblas -lpthread -lm ++LIB ?= $(LIBLAPACK) -lcudart -lcublas -lcusparse $(LIBS) + + GPU_TARGET ?= Kepler Maxwell Pascal + diff --git a/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2019a-OpenBLAS-0.2.20.eb b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2019a-OpenBLAS-0.2.20.eb new file mode 100644 index 00000000..0e2b6f6b --- /dev/null +++ b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2019a-OpenBLAS-0.2.20.eb @@ -0,0 +1,25 @@ +# IT4Innovations 2020 +# LK + +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 local_computers.""" + +toolchain = {'name': 'gompi', 'version': '2019a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] +checksums = ['0c74aeae690fe5ee4db7926f49c5d0bb69ce09eea75beb915e00bba07530395c'] + +local_blaslib = 'OpenBLAS' +local_blasver = '0.2.20' + +versionsuffix = "-%s-%s" % (local_blaslib, local_blasver) + +dependencies = [(local_blaslib, local_blasver, '', ('GCC', '8.3.0-2.32'))] + +moduleclass = 'numlib'