Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

intel/2017b toolchain definition (REVIEW) #4618

Merged
merged 7 commits into from
Aug 31, 2017
18 changes: 18 additions & 0 deletions easybuild/easyconfigs/h/HPL/HPL-2.2-intel-2017b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name = 'HPL'
version = '2.2'

homepage = 'http://www.netlib.org/benchmark/hpl/'
description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits)
arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available
implementation of the High Performance Computing Linpack Benchmark."""

toolchain = {'name': 'intel', 'version': '2017b'}
toolchainopts = {'usempi': True}

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://www.netlib.org/benchmark/%(namelower)s']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a checksum here.


# fix Make dependencies, so parallel build also works
patches = ['HPL_parallel-make.patch']

moduleclass = 'tools'
33 changes: 33 additions & 0 deletions easybuild/easyconfigs/i/icc/icc-2017.4.196-GCC-6.3.0-2.28.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild

name = 'icc'
version = '2017.4.196'

homepage = 'http://software.intel.com/en-us/intel-compilers/'
description = "C and C++ compiler from Intel"

toolchain = {'name': 'dummy', 'version': 'dummy'}

sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']

checksums = ['6b9b57dada0ec68e394866ec0a8b162c9233de18a7a6dd2dcc956d335e06acbc']

gccver = '6.3.0'
binutilsver = '2.28'
versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver)

dependencies = [
('GCCcore', gccver),
('binutils', binutilsver, '', ('GCCcore', gccver)),
]

# list of regex for components to install
# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources
# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide
components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_', 'intel-gdb(?!.*mic)']

dontcreateinstalldir = 'True'

license_file = HOME + '/licenses/intel/license.lic'

moduleclass = 'compiler'
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild
easyblock = 'Toolchain'

name = 'iccifort'
version = '2017.4.196'
versionsuffix = '-GCC-6.3.0-2.28'

homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and
Intel MKL"""

toolchain = {'name': 'dummy', 'version': 'dummy'}

dependencies = [
('icc', version, versionsuffix),
('ifort', version, versionsuffix),
]

moduleclass = 'toolchain'
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/i/ifort/ifort-2017.4.196-GCC-6.3.0-2.28.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild

name = 'ifort'
version = '2017.4.196'

homepage = 'http://software.intel.com/en-us/intel-compilers/'
description = "Fortran compiler from Intel"

toolchain = {'name': 'dummy', 'version': 'dummy'}

sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']

checksums = ['0b6a222e015f776600b12b17c19506249c9e7691a8d287f44cd40a66ca9ac749']

# remove dependency on intel-mpi-rt-mic
patches = ['ifort_2017_no_mpi_mic_dependency.patch']

gccver = '6.3.0'
binutilsver = '2.28'
versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver)

dependencies = [
('GCCcore', gccver),
('binutils', binutilsver, '', ('GCCcore', gccver)),
]

# list of regex for components to install
# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources
# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide
components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_', 'intel-gdb(?!.*mic)']

dontcreateinstalldir = 'True'

license_file = HOME + '/licenses/intel/license.lic'

moduleclass = 'compiler'
20 changes: 20 additions & 0 deletions easybuild/easyconfigs/i/iimpi/iimpi-2017b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

URL

easyblock = "Toolchain"

name = 'iimpi'
version = '2017b'

homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
description = """Intel C/C++ and Fortran compilers, alongside Intel MPI."""

toolchain = {'name': 'dummy', 'version': 'dummy'}

compver = '2017.4.196'
suff = '-GCC-6.3.0-2.28'
dependencies = [
('icc', compver, suff),
('ifort', compver, suff),
('impi', '2017.3.196', '', ('iccifort', '%s%s' % (compver, suff))),
]

moduleclass = 'toolchain'
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/i/imkl/imkl-2017.3.196-iimpi-2017b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

URL again


name = 'imkl'
version = '2017.3.196'

homepage = 'http://software.intel.com/en-us/intel-mkl/'
description = """Intel Math Kernel Library is a library of highly optimized,
extensively threaded math routines for science, engineering, and financial
applications that require maximum performance. Core math functions include
BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more."""

toolchain = {'name': 'iimpi', 'version': '2017b'}

sources = ['l_mkl_%(version)s.tgz']
checksums = ['fd7295870fa164d6138c9818304f25f2bb263c814a6c6539c9fe4e104055f1ca']

dontcreateinstalldir = 'True'

interfaces = True

postinstallcmds = [
# extract the examples
'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/',
'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/',
'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/',
'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/',
'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/',
'tar xvzf %(installdir)s/mkl/examples/examples_mic_f.tgz -C %(installdir)s/mkl/examples/',
'tar xvzf %(installdir)s/mkl/examples/examples_mic_c.tgz -C %(installdir)s/mkl/examples/',
]

modextravars = {
'MKL_EXAMPLES': '%(installdir)s/mkl/examples/',
}

moduleclass = 'numlib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild

name = 'impi'
version = '2017.3.196'

homepage = 'http://software.intel.com/en-us/intel-mpi-library/'
description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message
passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for
Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification."""

toolchain = {'name': 'iccifort', 'version': '2017.4.196-GCC-6.3.0-2.28'}

sources = ['l_mpi_%(version)s.tgz']

checksums = ['dad9efbc5bbd3fd27cce7e1e2507ad77f342d5ecc929747ae141c890e7fb87f0']

dontcreateinstalldir = 'True'

components = ['intel-mpi', 'intel-psxe', 'intel-imb']

# set up all the mpi commands to default to intel compilers
# set_mpi_wrappers_all = 'True'

postinstallcmds = [
'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so',
'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so',
'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so',
'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so',
'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so',
'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so'
]

moduleclass = 'mpi'
25 changes: 25 additions & 0 deletions easybuild/easyconfigs/i/intel/intel-2017b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
easyblock = 'Toolchain'

name = 'intel'
version = '2017b'

homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI &
Intel MKL."""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't it be better to have a proper toolchain description here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

define proper?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, that just reads like some Intel promotional material.

Compare it with the foss text.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like this then?

Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's much better.


toolchain = {'name': 'dummy', 'version': 'dummy'}

compver = '2017.4.196'
gccver = '6.3.0'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

binutilsver = '2.28'
gccsuff = '-GCC-%s-%s' % (gccver, binutilsver)
dependencies = [
('GCCcore', gccver),
('binutils', binutilsver, '-GCCcore-%s' % gccver),
('icc', compver, gccsuff),
('ifort', compver, gccsuff),
('impi', '2017.3.196', '', ('iccifort', '%s%s' % (compver, gccsuff))),
('imkl', '2017.3.196', '', ('iimpi', version)),
]

moduleclass = 'toolchain'