4 merge requests!368Update prace.md to document the change from qprace to qprod as the default...,!367Update prace.md to document the change from qprace to qprod as the default...,!366Update prace.md to document the change from qprace to qprod as the default...,!323extended-acls-storage-section
Intel Xeon Phi (so-called MIC) accelerator can be used in several modes ([Offload][1] and [Native][2]). The default mode on the cluster is offload mode, but all modes described in this document are supported.
The Intel Xeon Phi (so-called MIC) accelerator can be used in several modes ([Offload][1] and [Native][2]). The default mode on the cluster is the offload mode, but all modes described in this document are supported.
See sections below for more details.
For more details, see the sections below.
## Intel Utilities for Xeon Phi
...
...
@@ -10,14 +10,14 @@ Continue [here][3].
## GCC With KNC Support
On Salomon cluster we have module `GCC/5.1.1-knc` with cross-compiled (offload) support for [KNC][a]. (gcc, g++ and gfortran)
On Salomon, we have the `GCC/5.1.1-knc`module with cross-compiled (offload) support for [KNC][a]. (gcc, g++ and gfortran)
!!! warning
Salomon cluster only.
Available on Salomon only.
To compile a code using GCC compiler run following commands
To compile a code using GCC compiler, run the following commands:
* Create `reduce_mul.c`
* Create `reduce_mul.c`:
```console
$vim reduce_mul.c
...
...
@@ -33,7 +33,7 @@ double reduce(double* values)
}
```
*A create `main.c`
*Create `main.c`:
```console
vim main.c
...
...
@@ -66,7 +66,7 @@ int main(int argc, char* argv[])
In the native mode a program is executed directly on Intel Xeon Phi without involvement of the host machine. Similarly to offload mode, the code is compiled on the host computer with Intel compilers.
In the native mode, a program is executed directly on Intel Xeon Phi without involvement of the host machine. Similarly to offload mode, the code is compiled on the host computer with Intel compilers.
To compile a code user has to be connected to a compute with MIC and load Intel compilers module. To get an interactive session on a compute node with an Intel Xeon Phi and load the module use following commands
To compile code, the user has to be connected to a compute node with MIC and load the Intel compilers module. To get an interactive session on a compute node with an Intel Xeon Phi and load the module, use following commands:
```console
$qsub -I-q qprod -lselect=1:ncpus=24:accelerator=True -A NONE-0-0
$ml intel/2017b
```
To produce a binary compatible with Intel Xeon Phi architecture user has to specify `-mmic` compiler flag. Two compilation examples are shown below. The first example shows how to compile OpenMP parallel code `vect-add.c` for host only
To produce a binary compatible with the Intel Xeon Phi architecture, the user has to specify the `-mmic` compiler flag. Two compilation examples are shown below. The first example shows how to compile the OpenMP parallel code `vect-add.c` for host only:
* The second example shows how to compile the same code for Intel Xeon Phi
* The second example shows how to compile the same code for Intel Xeon Phi:
```console
$icc -mmic-fopenmp vect-add.c -o vect-add-mic
```
* Execution of the Program in Native Mode on Intel Xeon Phi
* Execution of the Program in Native Mode on Intel Xeon Phi:
The user access to the Intel Xeon Phi is through the SSH. Since user home directories are mounted using NFS on the accelerator, users do not have to copy binary files or libraries between the host and accelerator. Get the PATH of MIC enabled libraries for currently used Intel Compiler.
* To run this code on Intel Xeon Phi
* To run this code on Intel Xeon Phi:
```console
$ssh mic0
...
...
@@ -209,7 +209,7 @@ Test passed
## Only Intel Xeon Phi Cards
Execute native job
Execute a native job:
```console
$qsub -A NONE-0-0 -q qmic -lselect=1 -lwalltime=10:00:00 -I
...
...
@@ -218,14 +218,14 @@ r21u01n577-mic1:~$
## Devel Environment
To get an overview of the currently loaded modules, use `module list` or `ml` (without specifying extra arguments).
To get an overview of the currently loaded modules, use `module list` or `ml` (without specifying extra arguments):
```console
r21u02n578-mic0:~$ml
No modules loaded
```
To get an overview of all available modules, you can use `ml avail` or simply `ml av`
To get an overview of all available modules, you can use `ml avail` or simply `ml av`:
```console
r21u02n578-mic0:~$ml av
...
...
@@ -238,13 +238,13 @@ r21u02n578-mic0:~$ ml av
```
Activate devel environment
Activate devel environment:
```console
r21u02n578-mic0:~$ml devel_environment
```
And again to get an overview of all available modules, you can use `ml avail` or simply `ml av`
And again to get an overview of all available modules, you can use `ml avail` or simply `ml av`:
```console
r21u02n578-mic0:~$ml av
...
...
@@ -281,7 +281,7 @@ r21u02n578-mic0:~$ ml av
```
After load module `devel_environment` are available modules for architecture k1om-mpss-linux and now exists systems software (gcc, cmake, make, git, htop, vim, ...).
After load module `devel_environment` are available modules for architecture k1om-mpss-linux and now exists systems software (gcc, cmake, make, git, htop, vim...).
* Example
...
...
@@ -340,7 +340,7 @@ Examples for modules.
### MPI
Load module for devel environment `devel_environment` and load mpi module `impi/2017.3.196-iccifort-2017.4.196-GCC-6.4.0-2.28` (intel/2017b)
Load the module for devel environment `devel_environment` and the mpi module `impi/2017.3.196-iccifort-2017.4.196-GCC-6.4.0-2.28` (intel/2017b)
Modules icc, ifort and iccifort are only libraries and headers, not compilers... For compile use the procedure from the chapter [Native Mode](#native-mode)
Modules icc, ifort, and iccifort are only libraries and headers, not compilers. To compile, use the procedure from the chapter [Native Mode](#native-mode)
### Octave/3.8.2
Load module for devel environment `devel_environment`, load module `Octave/3.8.2` and run test
Load the module for devel environment `devel_environment`, load module `Octave/3.8.2` and run test:
```console
r21u01n577-mic0:~$ml devel_environment
...
...
@@ -424,7 +424,7 @@ Architecture (depends on compiled software):
* x86_64-k1om-linux
* k1om-mpss-linux
Configure step (for `configure`,`make` and `make install` software)
Configure step (for the `configure`,`make` and `make install` software).