InstallingICS

From HPC users
Revision as of 17:11, 19 February 2019 by Harfst (talk | contribs)
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):

  1. Identify the version of the toolchain (e.g. 2018a) and the corresponding Intel version (e.g. 2018.1.163)
  2. 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).
  3. 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>
  4. 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.
  5. modifications of the eb-files so that the modules get short intuitive names, goal is that the following modules are installed (example for version 2018a)
    • icc/2018a
    • ifort/2018a
    • iccifort/2018a
    • impi/2018a-iccifort-2018a
    • iimpi/2018a
    • imkl/2018a-iimpi-2018a
    • intel/2018a
  6. for the compilers you need to modify the version, make sure that the correct file is found.
  7. In addition a change to the easyblocks 'icc.py' and 'ifor.py' was needed that deals with the different version number.
    1. In EB 3.5.3 and 3.8.1 the change is done
    2. 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]