Zeon: Unterschied zwischen den Versionen

Aus IT Physics
Zur Navigation springen Zur Suche springen
(+OpenMPI)
K (→‎Pitfalls: path libcilkrts)
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 17: Zeile 17:


* <code>module avail</code> lists the installed modules, relevant are:
* <code>module avail</code> lists the installed modules, relevant are:
** compiler/latest → <code>ifort</code>, <code>icpc</code>, <code>icc</code>, ...
** compiler/latest → <code>icx</code>, <code>icpx</code>, <code>ifx</code>, ... (the [https://www.intel.com/content/www/us/en/developer/articles/guide/porting-guide-for-icc-users-to-dpcpp-or-icx.html new Intel compilers])
** mpi/latest → <code>mpirun</code>, <code>mpiifort</code>, <code>mpiicpc</code>, <code>mpiicc</code>, ...
** icc/latest → <code>icc</code>, <code>icpc</code> (the [https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/DEPRECATION-NOTICE-Intel-C-Compiler-Classic/m-p/1506693 deprecated C/C++ compilers])
** ifort/latest → <code>ifort</code> (the [https://community.intel.com/t5/Blogs/Tech-Innovation/Tools/A-Historic-Moment-for-The-Intel-Fortran-Compiler-Classic-ifort/post/1614625 deprecated Fortran compiler])
** mpi/latest → <code>mpirun</code>, <code>mpiicx</code>, <code>mpiicpx</code>, <code>mpiifx</code>,  <code>mpiicc</code>, <code>mpiicpc</code>, <code>mpiifort</code>, ... (Attention: The <code>mpii</code>*s are only wrappers; the actual compiler module needs to be loaded, too.)
** mkl/latest
** mkl/latest
* <code>module load</code> ... loads a module.
* <code>module load</code> ... loads a module.


Inside a shell script (bash), you have to do <code>shopt -s expand_aliases</code> before being able to use the <code>module</code> command.
Inside a shell script (bash), you have to do <code>shopt -s expand_aliases</code> in order to be able to use the <code>module</code> command.


== Pitfalls ==
== Pitfalls ==


* The <code>module</code> system fails to reach some Intel libraries (like libcilkrts.so.5<sup>*</sup>). If needed, their path has to be found out and appended:<br><code>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/oneapi/</code>...
* <code>ifort</code>/<code>mpiifort</code>: When compiling with <code>-i8</code>, you also have to link with <code>-i8</code> (cf. also [https://www.intel.com/content/www/us/en/develop/documentation/mpi-developer-reference-linux/top/command-reference/compiler-commands/compilation-command-options.html manual]).
* <code>ifort</code>/<code>mpiifort</code>: When compiling with <code>-i8</code>, you also have to link with <code>-i8</code> (cf. also [https://www.intel.com/content/www/us/en/develop/documentation/mpi-developer-reference-linux/top/command-reference/compiler-commands/compilation-command-options.html manual]).
<sup>*</sup>: currently in /opt/intel/oneapi/compiler/2023.2.4/linux/bin/intel64


= [https://www.open-mpi.org/doc/current OpenMPI] =
= [https://www.open-mpi.org/doc/current OpenMPI] =


* The setting <code>export OMPI_MCA_pml=ucx</code> is necessary to prevent a "failed OFI Libfabric library call".
* The setting <code>export OMPI_MCA_pml=ucx</code> is necessary to prevent a "failed OFI Libfabric library call".

Aktuelle Version vom 17. Dezember 2024, 13:34 Uhr

New Opterox-Login

Server is zeon.physik.uni-due.de, home directories are the same.

Queueing system = Slurm

  • sinfo shows overall load and available queues (partitions). The default one is marked with *.
  • squeue shows running jobs.
  • simplest submission: sbatch -nn script-name
  • scancel job-id kills job.

Intel oneAPI

Intel compilers, MKL and MPI are installed, must be selected via the module system:

module use /opt/intel/oneapi/modulefiles (unless you include that directory in your MODULEPATH)

  • module avail lists the installed modules, relevant are:
    • compiler/latest → icx, icpx, ifx, ... (the new Intel compilers)
    • icc/latest → icc, icpc (the deprecated C/C++ compilers)
    • ifort/latest → ifort (the deprecated Fortran compiler)
    • mpi/latest → mpirun, mpiicx, mpiicpx, mpiifx, mpiicc, mpiicpc, mpiifort, ... (Attention: The mpii*s are only wrappers; the actual compiler module needs to be loaded, too.)
    • mkl/latest
  • module load ... loads a module.

Inside a shell script (bash), you have to do shopt -s expand_aliases in order to be able to use the module command.

Pitfalls

  • The module system fails to reach some Intel libraries (like libcilkrts.so.5*). If needed, their path has to be found out and appended:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/oneapi/...
  • ifort/mpiifort: When compiling with -i8, you also have to link with -i8 (cf. also manual).

*: currently in /opt/intel/oneapi/compiler/2023.2.4/linux/bin/intel64

OpenMPI

  • The setting export OMPI_MCA_pml=ucx is necessary to prevent a "failed OFI Libfabric library call".