Exporter la page en format Open Document

Notes pour le TP OpenMP

Cette page décrit comment se connecter et lancer des calculs OpenMP en mémoire partagée sur le mésocentre.

Le compte est partagé par plusieurs étudiants, l'idée est de de créer un répertoire par étudiant qui servira comme répertoire de travail tout au long du TP

Se connecter au noeud de login

     ssh -CX loginmeso@mesologin1.univ-fcomte.fr

Se placer dans le répertoire de travail WORK

    $ cd WORK 

Créer un répertoire personnel unique en utilisant votre nom de famille, par exemple :

    $ mkdir dupont

Se placer dans le répertoire nouvellement crée

    $ cd dupont

ça sera votre répertoire de travail tout au long du TP

Copier vos programmes (les fichiers sources) de votre poste du travail vers le mésocentre. Par exemple copier le fichier matmul.c du répertoire courant vers le répertoire nouvellement crée sur le mésocentre :

$ scp matmul.c loginmeso@mesologin1.univ-fcomte.fr:WORK/dupont

Il faut d'abord charger le compilateur à utiliser. Nous utilisons le compilateur Intel (icc, icpc, ifort)

$ module load intel/14.0.2

Compiler l'application

$ icc  -openmp monProgramme.c -o monProgramme

Se connecter sur la machine : mesologin1.univ-fcomte.fr

Les éditeurs de texte disponibles : nano, vim, emacs, gedit*

Préparer un script SGE :

script_mpi.sge
#!/bin/bash
#$ -q formation.q    ## on demande la file formation.q
#$ -N tp_omp_dupond       ## le nom de votre job  
#$ -pe openmp 16          ## on demande 16 coeurs 
#$ -l h_vmem=4G           ## on demande 4G/coeur
#$ -o $JOB_NAME.$JOB_ID.out  ## le nom de fichier output/err
 
 
#### on charge le module open mpi
 
module load intel/14.0.2
 
## on lance l'application
export OMP_NUM_THREADS=$NSLOTS 
 
./monProgramme

Enregistrer le script dans le même répertoire que votre programme, par exemple : matmul_omp.sge

On demande à SGE d'exécuter le programme :

$ qsub matmul_omp.sge

Une fois lancé, SGE attribue un numéro à chaque lancement (job)

On vérifie l'état des jobs :

qstat 

L'état de tous les jobs sur le cluster ;

$ qstatAll

Arrêter un job :

$ qdel <numeroDuJob>

Liens