Actualité ROMEO
Compilateur Intel C/C++, Fortran et OpenMP

Résumé: Ce document sert juste de rapide introduction à l'utilisation du compilateur Intel C/C++ avec OpenMP installé sur le cluster Romeo2. Nous ne détaillerons pas comment programmer avec OpenMP, ce n'est pas le but recherché.

1 Connexion à Romeo2

Pour se connecter à Romeo2, vous pouvez utiliser la commande ssh :

ssh nom@romeo2.univ?reims.fr

ou

ssh ?X nom@romeo2.univ?reims.fr

si vous souhaitez exporter le Display. Vous trouverez plus d'informations sur la commance ssh en tapant dans votre terminal man ssh.

2 Le compilateur Intel C/C++ - Fortran

Le compilateur Intel C/C++ est le seul compilateur ?actuellement? sur Romeo2 capable d'utiliser la librairie OpenMP. Cependant, l'appel au compilateur icc (langage C) ou icpc (langage C++) ne vous renverra qu'un message d'erreur (command not found). Pour pouvoir utiliser ces compilateurs vous devez tout d'abord en définir la source. Pour cela tapez :

source /opt/intel/iccvars.sh

pour charger l'environnement Fortran

source /opt/intel/ifortvars.sh

 


Cette commande est à taper à chaque nouvelle session sur Romeo2. Afin de nous faciliter la tâche, nous allons rajouter cette ligne dans notre fichier .bashrc se trouvant à la racine de notre compte (voir listing 1).

Listing 1: Le fichier .bashrc

 

# .bashrc
# User specific aliases and functions
# Acces au compilateur C/C++ d'Intel (uniquement sur Romeo1)
if [ "$HOSTNAME" == romeo1 ]; then
source /opt/intel/iccvars.sh
fi
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

Désormais, à chaque nouvelle session, nous aurons accès au compilateur icc et icpc directement.

3 Intel C/C++ et OpenMP

Pour compiler votre projet OpenMP avec les compilateurs Intel, il suffit de rajouter l'argument -openmp à la ligne de commande. Par exemple :

icc ?openmp source.c ?o executable
ou
icpc ?openmp source.c ?o executable

4 Soumettre un job

Afin de soumettre un job à Romeo2, il faut passer par un gestionnaire. On l'appelle par la commande qsub. Cette commande prend une série de paramètres assez conséquent et où il est facile de se tromper. C'est pourquoi nous allons créer un script (listing 2) contenant les informations à passer à qsub.

Listing 2: Le fichier Script

 

#!/bin/sh
### On nomme le job afin de l'identifier facilement
#PBS -N NOM_NB_DE_PROC_UTIL
### Le job peut-il être relancé ? (ici non)
#PBS -r n
### Fichier de sortie d'erreur
#PBS -e erreur.err
### Fichier de sortie standard
#PBS -o sortie.log
### Configuration de la messagerie
### Le serveur enverra un message si le job :
### (a) est tué / (b) commence / (e) est terminé
#PBS -m abe
### Le serveur enverra le mail à l'adresse :
#PBS -M Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
### Placement du job dans la file correspondante à sa durée
### small / long / infinite
#PBS -q long
### Réservation des ressources
### Attention : si votre programme fonctionne en mémoire partagée
### (OpenMP) vous ne devez demander qu'un seul noeud.
#PBS -l nodes=1:ppn=32
### Pour les utilisateurs de OpenMP, il faut indiquer le nombre de threads
export OMP_NUM_THREADS=32
### Définition du répertoire
PBS_O_WORKDIR=/home_nfs/nom/chemin/repertoire_de_l_application/
cd $PBS_O_WORKDIR
./l_applicaton parametres_de_l_application

Le script créé (et adapté à vos besoins) est soumis au gestionnaire par la commande :

qsub Script

5 Pour finir

Vous savez maintenant compiler vos programmes C/C++ utilisant OpenMP sur Romeo2, et les soumettre au système. Pour plus d'informations, je vous invite à lire le User's Guide (User.pdf) disponible sur le site http://cosy.univ-reims.fr/romeo2/.

Actualité ROMEO
Journée débugger parallèle graphique DDT


Dans le cadre de l'animation scientifique du Centre de Calcul Régional - ROMEO II, la journée du mardi 12 juin 2007 est organisée autour du débugger graphique DDT. Cet outil permet de debugger et d'analyser le comportement de vos applications scalaires, multithreadées ou plus largement parallèles (MPI, Pthreads, OpenMP), écrites en C, C++ ou Fortran. L'interface graphique (copies d'écran ci-dessous) permet par exemple de visualiser l'utilisation mémoire sur plusieurs processeurs ... un outil performant et très utile qui est disponible sur ROMEO II.

La journée se déroulera en anglais. Outre la présentation de l'utilisation et des fonctionnalités de DDT, cette journée laissera la place à une partie pratique où chacun pourra expérimenter l'outil. Un déjeuner est aussi prévu pour les participants.


  • Afin de préparer au mieux cette journée et notamment la réservation du repas, merci de vous inscrire par mail avant le 26 mai 2007 auprès de Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voiren indiquant vos noms, prénoms et labo, et en précisant votre participation au repas.
  • Programme prévisonnel :
    9h30 - 10h00 - accueil des participants.RDV au batiment Mathématiques-Informatique (numéro 3) de l'Ufr Sciences
    10h00 - 11h00 - introduction, comment démarrer ?
    11h00 - 12h20 - première manipulation séquentielle suivie d'un premier code parallèle MPI.
    12h20 - 13h30 - repas
    13h30 - 14h45 - débuggage de code OpenMP sur processeur multi-core, modules Fortran et templates C++. Gestion de la mémoire.
    15h00 - 17h00 - DDT sur vos codes et introduction au profileur / optimiseur OPT

Lien : http://www.allinea.com/?page=48

Actualité ROMEO
Liste de diffusion ROMEO II

La liste Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir