Flash player not detected. Please visit http://www.macromedia.com
 
> Starlight
 
     
 

back

Utilisation de la machine de développement Starlight



Présentation :

La machine Starlight est une machine exclusivement dédiée au développement, au débuggage et à l'optimisation des codes de calculs. Un certain nombre de logiciels spécifiques pouvant vous aider dans ces taches sont installés sur cette machine, dont principalement :

  • TotalView + ReplayEngine : un débuggeur graphique permettant de sauvegarder tous les calculs intermédiaires et de rejouer une simulation pour débugger votre code.
  • Vtune : un logiciel de profilage de code permettant d'analyser les performances de votre code et de déterminer les fonctions sur lesquelles doivent porter les efforts d'optimisation.
Cette machine est constituée d'une machine frontale et de 4 noeuds de calcul :
  • compute-0-0 et compute-0-1 : biprocesseur quad-coeur Intel Xeon Nehalem, 24 Go RAM

  • compute-0-2 et compute-0-3 : biprocesseur quad-coeur AMD Opteron Shanghai, 16 Go RAM

Le répertoire $HOME de chaque utilisateur est visible depuis toute les machines.
La compilation s'effectue sur la machine frontale. L'exécution des codes s'effectue grâce au gestionnaire de queue et à l'ordonnanceur Torque / Maui (même système que sur la grappe du SIO).
Vous pouvez utiliser Totalview sur la machine frontale. Le logiciel Vtune, ainsi que les autres outils Intel, doivent quant à eux être utilisés sur un noeud Intel, compute-0-0, sur lequel ils ont été installés.



Connexion :

La machine Starlight utilise l'annuaire LDAP de l'Observatoire pour l'authentification des utilisateurs. Tous les membres du laboratoire peuvent donc se connecter sur Starlight et bénéficier d'un compte sans avoir besoin d'en faire la demande.

Connexion avec transfert de l'affichage :
ssh -X login@starlight

Lors de la première connexion, il vous sera demandé de créer une clé Systéme et réseau. Cette clé est utilisée pour les connexions entre les différents noeuds de Starlight. Pour plus de confort, en particulier si vous travaillez sur des applications MPI, vous pouvez laisser une passphrase vide.









Compilation :

La machine Starlight dispose des compilateurs Fortran, C et C++ de GNU et Intel.
Les versions installées sont la version 4.1.2 des compilateurs GNU et la version 11.1 des compilateurs Intel.
Pour faire appel à ces compilateurs, vous devez utiliser les commandes :

Langage

GNU

Intel

Fortran

gfortran

ifort

C

gcc

icc

C++

g++

icpc


Pour plus d'informations sur les compilateurs et les bibliothèques installées sur Starlight, vous pouvez consulter cette page.



Soumission de jobs :

L'exécution des jobs se déroule essentiellement sur les noeuds de calcul par l'intermédiaire de Torque / Maui. Deux types d'exécutions sont possibles :

  • En batch : la demande d'exécution est faite à l'aide d'un script qui décrit les ressources nécessaires et les commandes à exécuter une fois ces ressources disponibles. Les sorties sont redirigées vers des fichiers nomdujob.enumérodujob (sortie erreur) et nomdujob.onumérodujob (sortie standard).
  • En interactif : l'utilisateur demande des ressources, et une fois ces ressources disponibles, est connecté automatiquement sur la machine pouvant les lui offrir. Une fois connecté, il peut exécuter son code ou utiliser un outil particulier.

Les noeuds sont divisés en deux groupes, qui sont accessibles par deux queues différentes :
  • la queue « amd » pour les noeuds équipés de processeurs AMD
  • la queue « intel » pour les noeuds équipés de processeurs Intel
Une queue default contient tous les noeuds, quelle que soit leur architecture.



Soumission d'un job de type batch

Exemple d'un script essai.pbs pour une soumission de type batch dans lequel l'exécutable essai situé dans mon répertoire $HOME/tmp est lancé :

#!/bin/sh
#PBS -S /bin/sh
#PBS -N essai
#PBS -q intel
#PBS -l nodes=1:ppn=1,mem=100mb,walltime=01:05:30
#PBS -r n
#PBS -M fabrice.roy@obspm.fr
#PBS -m abe

cd $HOME/tmp
./essai


Signification des directives #PBS :

#PBS -S /bin/sh
shell à utiliser
#PBS -N essai
nom du job
#PBS -q intel
nom de la queue sur laquelle le job doit être exécuté, intel ou amd pour nous (si cette option n'est pas spécifiée, l'exécution sera lancée sur la queue default)
#PBS -l nodes=1:ppn=1 ,mem=100mb,walltime=01:05:30
ressources demandées, par exemple, ici :

  • nodes=1 : 1 noeud de calcul
  • ppn=1 : 1 coeur de calcul sur ce noeud
  • mem=100mb : 100 Mo de mémoire vive en tout (somme pour l'ensemble des processus/threads sur l'ensemble des noeuds)
    kb = ko
    mb = Mo
    gb = Go
  • walltime=01:05:30 : 1h05min30s de temps d'exécution total
    #PBS -r n
    le job ne sera pas relancé automatiquement en cas d'échec (ne pas changer cette option)
    #PBS -M fabrice.roy@obspm.fr
    adresse email à laquelle le système envoie les messages concernant le job (mettre votre adresse email)
    #PBS -m abe
    option concernant les envois de message :
  • a : envoyer un message en cas d'arrêt du job avant la fin
  • b : envoyer un message au début de l'exécution du job (quand le job sort de la file d'attente)
  • e : envoyer un message lorsque le job se termine normalement.

    Soumission du job :
    qsub essai.pbs

    Pour voir l'état des files d'attente :
    qstat

    Exemple de sortie de qstat :


    Job id Name User Time Use S Queue
    ------------------------- ---------------- --------------- -------------- - -----
    109.starlight essai roy 0 R intel




    Signification des statuts S les plus courants :
    R : en cours d'exécution
    Q : en queue
    E : en fin d'exécution

    Quelques options de qstat :
    qstat -a : affiche tous les jobs
    qstat -n : affiche le noms des machines sur lesquelles l'exécution a lieu pour les jobs en cours d'exécution
    qstat -q : informations par queues

    Pour connaître l'état d'un job particulier :
    checkjob jobid

    Pour tuer un job en cours d'exécution ou retirer un job de la queue :
    qdel jobid

    Soumission d'un job de type interactif

    La soumission de job interactif se fait simplement à l'aide de la commande qsub avec l'option -I, de l'option -l servant à spécifier les ressources demandées et éventuellement de l'option -q pour spécifier la queue souhaitée (intel ou amd).
    Par exemple,
    qsub -I -l nodes=1:ppn=1,mem=100mb,walltime=01:05:30 -q amd
    sert à réserver 1 noeud de type AMD, 1 coeur et 100 Mo sur ce noeud, pendant 1h05min30s, pour un job interactif.

    Monitoring de la machine Starlight


    L'outil Ganglia permet de connaître l'occupation des noeuds de la machine Starlight et de surveiller son état. Cet outil est accessible via votre navigateur web, à l'adresse http://starlight/ganglia

    Utilisation de TotalView + ReplayEngine


    Le débuggeur graphique TotalView se lance avec la commande totalview.
    L'interface graphique apparaît alors et vous permet de choisir le programme que vous souhaitez débugger et de sélectionner l'option ReplayEngine si vous le désirez.
    Le programme à débugger doit avoir été compilé avec l'option -g.



    (Cliquez sur les images pour les agrandir.)
    Une fois l'exécutable à débugger choisi, une fenêtre contenant les sources de votre exécutable apparaît. Vous pouvez alors placer des points d'arrêt, et lancer l'exécution du code. Vous pouvez mettre l'exécution en pause à tout moment, contrôler le contenu de chaque variable, visualiser le contenu des tableaux sous forme graphique, etc...



    Pour plus d'informations concernant l'utilisation de TotalView, consultez cette page.


    Utilisation de Vtune

    Vtune ne peut être utilisé que sur l'un des noeuds de calcul équipé de processeurs Intel. Le logiciel est installé sur le noeud compute-0-0 seulement. Vous devez donc vous connecter sur compute-0-0 pour utiliser ce logiciel.
    L'application se lance avec la commande vtlec.
    Une fenêtre vous invite alors à choisir votre espace de travail (vous pouvez laisser le répertoire proposé par défaut), puis l'interface graphique de Vtune apparaît.
    Lors d'une première utilisation, il est conseillé d'utiliser l'assistant First Use qui se trouve dans l'onglet Start à la gauche de la fenêtre. Cet assistant vous permettra de faire une première analyse de votre code.



    Plus d'informations concernant l'utilisation de Vtune vous seront communiquées prochainement.
    Trois documentations sont disponibles pour vous aider à prendre le logiciel en main :



    Utilisation de Starlight pour le débuggage et l'optimisation d'applications parallèles

    Pour tout ce qui concerne les applications parallèles, merci de prendre contact avec Fabrice Roy. Une documentation sur ce sujet vous sera proposée prochainement.

    Pour toute information complémentaire, vous pouvez contacter Stéphane Méné ou Fabrice Roy.

  •  
     
     
    Présentation | Recherche | Enseignement | Grand Public | Centre de données | Séminaires | Contacts | Intranet