Toutes les actualités, formations et événements

Utilisation du calculateur Romeo

01 / 01 / 1970,

Actualité

 

Attention, cet article traite du premier calculateur Romeo installé en 2002 !

Utilisation du calculateur Romeo

 

Le système batch sur Romeo

 

Romeo est à la disposition des utilisateurs dans le cadre des files d'attente gérées par SGE. Tout manquement à cette règle, sciemment, par négligence, ou par incompétence entraînera simplement la fermeture des comptes mis en cause. Pour aider à mieux maîtriser ce système de file d'attente SGE, cette page rappelle les différentes queues et les commandes permettant de lancer un job. Le mode de contrôle est également détaillé. Vous pouvez aussi télécharger la documentation complète de SGE au format pdf.

  1. Présentation des queues batchs
  2. Les utilisateurs désirant faire des calculs longs sur Romeo (>1minute) doivent soumettre leurs travaux au système de gestion SGE (Sun Grid Engine). Le tableau suivant résume les différentes queues batch disponibles sur la machine.

    Noms queues
    # de slots Limite temps Limite disque Modes
    disponibles*
    Priorités
    (nice)
    court 4 30 mn 10 Go BIP 2
    6heures (désactivée) 4 6 h 1 Go B 4
    12heures 4 12 h 10 Go BP 4
    24heures (désactivée) 2 24 h 1 Go B 8
    48heures 8 48 h 1 Go BP 10
    big48 6 48 h 10 Go BP 10
    infini 4 336 h (14 jours) 1 Go BP 19
    biginf 4 336 h (14 jours) 10 Go BP 19
    24procs 24 1 h 1 Go P ¢ 0
    * B=batch, I=interactif (job=shell), P=parallèle
    ¢ queue spécifique au groupe "infoleri" pour job de 10' maximum sur toute la machine (priorité basse, nice 15).

    Remarques importantes : Le nombre de jobs est limité à 8 par utilisateur.
    Le nombre de jobs en parallèle est limité à 8 pour la machine entière (sauf 24procs)

     

  1. Comment soumettre un job?
  2.  

    Deux méthodes sont disponibles : soit on utilise l'interface graphique de SGE, soit on passe par la ligne de commande. On ne présentera ici que les commandes "clavier".

     

    • Comment monitorer la charge de la machine?
    • On dispose pour ce faire de la commande qstat. Une option pratique de qstat est -f (pour "full"), qui permet de formater l'affichage des jobs tournants en fonction des queues où ils se trouvent.

      Une autre commande pratique est prstat. Elle ressemble à la commande bien connue top mais permet par exemple d'obtenir avec l'option -t les sous-totaux mémoires, cpu, temps consommés par chaque utilisateur.

      La commande qacct -o permet quant à elle d'accèder aux totaux des temps machines consommés par chaque utilisateur depuis la création de leur compte

      Ces commandes de monitoring sont rappelées afin de permettre à l'utilisateur de bien choisir l'emplacement où il veut lancer son job et aussi pour lui permetre de connaître sa consommation cpu.


    • La commande qsub
    • La commande qsub est la principale commande de SGE et nous ne saurions que trop conseillé de lire sa page de man. Toutefois, nous allons résumé ici son utilisation.

      La syntaxe principale est la suivante : qsub nom_du_script où nom_du_script est le nom du fichier de script où sont stockés les commandes que devra faire tourner SGE dans la queue. On devrait donc y trouver généralement nom_du_programme <fichier_input > fichier_output.

      Nous allons résumer dans un tableau les principales options de qsub. Ces options peuvent être ajoutées au début du fichier de script en les faisant précéder d'un dièse et d'un dollar(#$).

      Options Effets
      -q nom_queue soumet le job dans la queue demandée
      -cwd l'entrée et la sortie standard deviennent le répertoire de travail où se trouve le fichier de script
      -M addresse e-mail définit une addresse e-mail à laquelle SGE peut envoyer l'état d'un job
      -m b envoie un mail à l'addresse définie par -M lorsque le job démarre
      -m e envoie un mail à l'addresse définie par -M lorsque le job finit correctement ;-)
      -m a envoie un mail à l'addresse définie par -M lorsque le job plante :-(
      -m s envoie un mail à l'addresse définie par -M lorsque le job est suspendu :-o
      -V exporte les variables d'environnement
      -S /path_to/shell exécute le job avec le shell demandé


      Exemple de script pour lancer un job:

          #!/bin/ksh

          #$ -S /bin/ksh
          #$ -V -cwd
          #$ -M nom_user@romeo
          #$ -m b
          #$ -m e
          #$ -m s
          #$ -m a
          /home/nom_user/bin/program.exe < file.inp > file.out

       


      Exemple de script pour lancer un job Fluent:

          #!/bin/ksh
          #$ -S /bin/ksh
          #$ -V -cwd
          #$ -M Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
          #$ -m b
          #$ -m e
          #$ -m s
          #$ -m a
          export FLUENT_INC=/opt/Fluent.Inc
          /opt/Fluent.Inc/bin/fluent 2d -g -sge -i /data/home/user/fichier.jou

       

    • Parallèlisme
    • Romeo étant un calculateur SMP 24 processeurs, il est naturellement dédié aux calculs parallèles. Comment faire pour lancer un job en parallèle dans SGE?

      Dans un premier temps, il est nécessaire pour certains logiciels (dont Gaussian) de spécifier la taille du cache. En Ksh, on ajoute dans son fichier de script ulimit -s 8192 (ne pas mettre #$) (les processeurs ont un cache de 8Mo). En Csh, cela donne limit -h stacksize 8192 (ne pas mettre #$).

      Il faut ensuite demander à SGE de tourner en parallèle. Pour cela, un environnement parallèle SMP a été créé qui est accessible dans toutes les queues pour l'instant.
      Remarque : les jobs MPI ou OpenMP nécessitent de créer d'autres environnements parallèles.
      On ajoute donc dans les options de qsub : #$ -pe SMP nombre_procs. Valable sauf pour 24procs pour laquelle on utilise #$ -pe parallele nombre_procs


    • Parallèlisme avec MPI
    • Lorsque que l'on lance un job avec MPI sur roméo il est nécessaire d'adapter son shell de lancement afin de respecter la priorité (nice) assignée à la file.

      Il faut donc ajouter à la ligne de lancement la commande nice suivie de l'indice de priorité devant mprun et devant votre programme MPI.

      Exemple:

      Je souhaite lancer mon programme MPI dans la file "court" qui possède un nice de "2" (voir ci-dessus le tableau de correspondance file-nice)

          #!/usr/bin/bash
          #$ -S /usr/bin/bash
          #$ -V
          #$ -cwd
          #$ -M votre@email
          #$ -m b
          #$ -m e
          #$ -m s
          #$ -m a
          #$ -pe SMP 4
          nice -2 mprun -np 4 nice -2 monProgrammeMPI

      Remarque: seule la dernière ligne de ce shell est importante pour gérér la priorité

    • De l'interactif dans du batch
    • Il est possible de lancer dans la queue "court" un job qui est en fait une session, càd, qu'un utilisateur peut à partir de sa session principale demander la création d'un job interactif. Les commandes sont:

      • qrsh: soumet une session interactive rsh à SGE
      • qlogin: soumet une session interactive login à SGE
      • qsh: soumet une session interactive X-Window à SGE
      Ces sessions interactives sont limitées à la queue courte (en queue infini un utilisateur pourrait bloquer la machine indéfiniment). Les options de ces trois commandes sont disponibles dans la page de man, elles sont globalement les mêmes que pour qsub.

       

     

  3. Comment tuer un job?
  4. C'est toujours l'étape la plus facile : qdel job_id où job_id est le numéro de job attribué par SGE et disponible via la commande qstat -f.

 


Pour toute question sur cette page, veuillez vous adresser à Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir

 

 

Tutoriaux disponibles

 

Questions / Réponses

 

Q.0 :Lorsque je compile avec gcc, l'executable obtenu ne fonctionne pas sur Romeo. Est-ce normal ?
R.0: En effet, 2 gcc sont installés sur Roméo, et la commande make utilise le gcc Unix et non le gcc Solaris...

Q.1 :Je suis responsable d'un projet et je souhaite en soumettre un nouveau. Y a-t-il quelquechose de particulier à faire ?
R.1: Il faut impérativement que vous spécifiez un mot de passe différent de celui de votre autre projet. C'est la seule restriction connue.

Q.2 :Jobs MPI non terminés en sortie de SGE ?
R.2: SGE sort bien vos jobs de son système de file mais n'arrive pas à les stopper (uniquement sur les jobs MPI) il faut faire un kill de vos process, car ils continuent à tourner hors du système de file

Q.3 :Comment gérér la priorité de mes jobs MPI (nice) ?
R.3: Il suffit d'ajouter "nice -prioritéDeLaFile mprun -np nombreDeProcesseurs nice -prioritéDeLaFile jobMPI" à la fin de votre shell de lancement. Un exemple se trouve au bas de cette page.

Q.4 :Utilisation de X11 via SSH
R.4: Vous pouvez utiliser X11 à travers le tunnel SSH en utilisant lors de votre connexion "ssh -X romeo.univ-reims.fr", attention verifier alors la valeur de votre variable DISPLAY elle doit être égale à "localhost:10.0". Vous pourrez ensuite lancer des applications en mode graphique.

Q.5 :Comment lancer Scilab en mode texte ?
R.5: Utilisez la ligne de commande suivante "scilab -nw"

Q.6 :Comment lancer dans Sun Grid Engine des jobs dépendants ?
R.6: Vous pouvez utiliser la commande "qsub -hold_jid identifiant_job1, identifiant_job2, etc", ainsi le job numero 2 ne sera lancé que lorsque le job numéro 1 sera terminé.

Q.7 :Mon process vient d' être tué après 30 minutes ?
R.7: les jobs lancés hors systèmes de file sont limités dans le temps à 30 minutes, vous pouvez visualiser les restrictions en tapant "ulimit -a"

Q.8 :A quoi ressemble un script MPI ?
R.8: Regarder le tutorial fait par Philippe RIS vous en aurez un trés bon exemple. Cliquez ici

Q.9 :je veut diviser une matrice n*n sur un nombre p e processeur par mpi avec mpi_scatter ou mpi_send ca ne marche pas et je suis en blocage si mpi send et mpi rcv ...
R.9: je peux diffuser ce message à la liste des utilisateurs pour vous aider, ecrivez moi sur Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
[archive du site http://www.univ-reims.fr/calculateur au 4 mars 2007]

 

Toutes les actualités, formations et événements