InstallingICS
From HPC users
Jump to navigationJump to search
The following steps are needed to install the Intel Cluster Studio (or Parallel Studio XE) with the aim to get the Intel toolchain (compilers, MPI, MKL):
- Identify the version of the toolchain (e.g. 2018a) and the corresponding Intel version (e.g. 2018.1.163), note that the versions might differ for the different components of the toolchain (e.g. intel/2019a uses compiler version 2019.1.144 and MPI version 2018.4.427 because of a possible in the 2019.1.144er MPI)
- Select the version of GCCcore you want to use, e.g 6.4.0. Stay close to the GCC version the eb-files for Intel Compilers request (unless you have good reasons to change). If required a new hpc-env/<gcccore_version> can be created (foss should use the same GCCcore anyways). If so, also create the alias ebNN (e.g. eb64) for erle.
- Copy the eb-files for this version to a directory in InstallationPackages/<GCCver>/TOOLCHAINS/intel. You need eb-files for icc and ifort (compilers), iccifort (compiler toolchain), impi (MPI) and iimpi (toolchain), imkl (numlib) and the final toolchain intel-<version>
- Download the sources from Intel Developer page (see License Page), download four individual files for C/C++ and Fortran compilers, MPI and MKL. Names of the files should match the file names in the eb-files.
- modifications of the eb-files so that the modules get short intuitive names, goal is that the following modules are installed (example for version 2019a). New: keep the Intel versions for the components icc, ifort, impi and imkl, makes life easier. Only the toolchains iccifort, iimpi and intel get the year<a/b> versioning:
- icc/2019.1.144
- ifort/2019.1.144
- iccifort/2019a
- impi/2018.4.427-iccifort-2019a
- iimpi/2019a
- imkl/2019.1.144-iimpi-2019a
- intel/2019a
- for the compilers you need to comment out the versionsuffix (kind of redundant), the same change is required for the dependencies in the toolchain eb-files. Do not forget to rename the eb-files.
- New: no longer needed In addition a change to the easyblocks 'icc.py' and 'ifor.py' was needed that deals with the different version number.
- In EB 3.5.3 and 3.8.1 the change is done
- for 3.8.1 in icc.py (two changes below are in lines 76 and 206, in 3.5.3 the first change is closer to the second)
--- self.comp_libs_subdir = os.path.join('compilers_and_libraries_%s' % self.version.split('a')[0], 'linux') +++ self.comp_libs_subdir = os.path.join('compilers_and_libraries_%s' % self.version.split('a')[0], 'linux') --- self.debuggerpath = 'debugger_%s' % self.version.split('.')[0] +++ self.debuggerpath = 'debugger_%s' % self.version.split('.')[0].split('a')[0]