|
# Utilisation des phi au LPNHE #
|
|
# Utilisation des phi au LPNHE #
|
|
Pour savoir qu'est-ce qu'un phi, voir par exemple [la revue de Intel](http://www.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-overview.html) à ce sujet.
|
|
Pour savoir qu'est-ce qu'un phi, voir par exemple [la revue de Intel](http://www.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-overview.html) à ce sujet.
|
|
|
|
|
|
Dans la pratique, chauqe carte Xeon Phi comporte 4 processeur chacun comportant 60 cœurs de calcul. Finalement, chaque carte se comporte comme une machine NUMA à 240 cœurs, machine que l'on utilisera via OpenMP ou MPI aisément. Voir OpenmpLpnhe.
|
|
Dans la pratique, chauqe carte Xeon Phi comporte 4 processeur chacun comportant 60 cœurs de calcul. Finalement, chaque carte se comporte comme une machine NUMA à 240 cœurs, machine que l'on utilisera via OpenMP ou MPI aisément. Voir utilement [la page consacrée à OpenMP au labo](OpenmpLpnhe).
|
|
|
|
|
|
## Utisation de base ##
|
|
## Utisation de base ##
|
|
### Accès à la machine hôte ###
|
|
### Accès à la machine hôte ###
|
... | @@ -28,6 +28,8 @@ Le `home` du labo est disponible sur la machine hôte directement. |
... | @@ -28,6 +28,8 @@ Le `home` du labo est disponible sur la machine hôte directement. |
|
En revanche sur les phi, c'est le `home` vu du phi `/home/$USER` qui est vu. Il s'agit aussi de `/local/home/$USER` de la machine hôte. Il faut effectuer les copies qui s'imposent. Ainsi on créera utilement le répertoire `/local/home/$USER/.ssh` avec le fichier `authorized_keys`.
|
|
En revanche sur les phi, c'est le `home` vu du phi `/home/$USER` qui est vu. Il s'agit aussi de `/local/home/$USER` de la machine hôte. Il faut effectuer les copies qui s'imposent. Ainsi on créera utilement le répertoire `/local/home/$USER/.ssh` avec le fichier `authorized_keys`.
|
|
|
|
|
|
## Compiler pour les phi ##
|
|
## Compiler pour les phi ##
|
|
|
|
### Compilateur Intel ###
|
|
|
|
L'utilisation du compilateur Intel est nécessaire.
|
|
```bash
|
|
```bash
|
|
export INTEL_LICENSE_FILE=/home/beau/intel/licenses
|
|
export INTEL_LICENSE_FILE=/home/beau/intel/licenses
|
|
. /afs/cern.ch/sw/IntelSoftware/linux/x86_64/xe2015/bin/iccvars.sh intel64
|
|
. /afs/cern.ch/sw/IntelSoftware/linux/x86_64/xe2015/bin/iccvars.sh intel64
|
... | @@ -36,8 +38,12 @@ cd ~/HPC/gpu/pi-test |
... | @@ -36,8 +38,12 @@ cd ~/HPC/gpu/pi-test |
|
icc -mmic -O3 -qopenmp --static pi_omp.c
|
|
icc -mmic -O3 -qopenmp --static pi_omp.c
|
|
cp a.out /local/home/$USER
|
|
cp a.out /local/home/$USER
|
|
```
|
|
```
|
|
|
|
### Compilateur GNU ###
|
|
|
|
Il est possible en principe d'utiliser `gcc`... mais la procédure complète ne fonctionne pas encore.
|
|
|
|
|
|
### Execution
|
|
*TODO*
|
|
|
|
|
|
|
|
### Execution ###
|
|
```bash
|
|
```bash
|
|
ssh mic1
|
|
ssh mic1
|
|
export OMP_NUM_THREADS=239 # il y a 240 coeurs par device phi
|
|
export OMP_NUM_THREADS=239 # il y a 240 coeurs par device phi
|
... | | ... | |