Ada : Executing jobs under the Intel environment

IDRIS now offers you the possibility of executing your MPI or hybrid (MPI + OpenMP/Pthreads) codes in the Intel environment (via mpirun) in addition to the IBM environment (via poe), the latter being the only environment previously available. It is also possible to use the MPMD execution mode with Intel MPI for coupling several MPI codes.

New Intel environments

This new functionality is accompanied by the availability of new Intel environments:

$ module avail intel
------------- /smplocal/pub/Modules/IDRIS/modulefiles/compilers --------------
intel/2012.0   intel/2013.0   intel/2013.1(default)   intel/2015.2   intel/2016.2
  • We advise you to compil and execute your codes in the same Intel environment: Use the same command module load intel/… at the execution and the compilation.
    • Nevertheless, a code compiled with intel/2013.1 can also be executed under a more recent environment (Intel/2015.2 ou intel/2016.2).
    • The contrary, however, is not guaranteed: A code compiled under intel/2016.2 will probably not run under intel/2013.1.
  • ATTENTION: A code compiled under intel/2015.2 or intel/2016.2 CANNOT be executed under the IBM environment (via poe) :
    • There is incompatibility between the MPI IBM library currently used and the MPI Intel 5.0.xx and 5.1.xx libraries which are part of these new Intel environments.

Executing jobs under the Intel environment

  • To optimise code performance during job executions under an Intel environment, IDRIS automatically sets certain environment variables. Consequently, the Intel I_MPI_PIN_DOMAIN variable is set to allow binding the MPI processes and the threads (hybrid jobs) on the physical cores of the machine.
  • The limits concerning the number of MPI processes, the number of threads, the elapsed time, the number of threads, and the job memory are the same as those of IBM jobs: The structure of the batch classes is unchanged (see the news class command output).
  • ATTENTION: The intel/2013.0 environment cannot be used for a batch execution (job LoadLeveler). In fact, the associated mpirun command is bugged and sends back the following error message:
$ mpirun -np 8 ./a.out
[mpiexec@ada295] HYDT_bscd_ll_launch_procs (./tools/bootstrap/external/ll_launch.c:67): ll does not support user-defined host lists
*** glibc detected *** mpiexec.hydra: munmap_chunk(): invalid pointer: 0x00000000024bb660 ***

Compilation/execution compatibility according to environments

  • The table below indicates the execution environments possible for the Intel environment used to compile your code.
Compilation
under Intel
PE IBM (1)
Execution
intel/2012.0
Execution
intel/2013.0
Execution
intel/2013.1
Execution
intel/2015.2
Execution
intel/2016.2
Execution
2012.0 Yes Yes (2) No (4) Yes Yes Yes
2013.0 Yes No (4) Yes Yes Yes
2013.1 Yes No (4) Yes (2) Yes Yes
2015.2 No (3) No (4) Yes (2) Yes
2016.2 No (3) No (4) Yes (2)

(1) PE IBM is the Parallel Environment IBM (execution via poe).
(2) Situation recommanded at IDRIS: Compile and execute your codes under the same Intel environment.
(3) There is incompatibility between the IBM MPI library currently used and the Intel MPI 5.0.xx and 5.1.xx libraries which are parts of the new Intel 2015.2 and 2016.2 environments.
(4) The mpirun command associated with intel/2013.0 is bugged and sends back an error message during a batch execution (job LoadLeveler).