Soumettre des jobs

vendredi 11 février 2011
par  Georges Raseev

Disponibilité en “batch” : classes et ressources

La GMPCS est composé de 10 noeuds à 32 Go et 2 noeuds à 64 Go de mémoire vive. Chaque noeud est composé de 8 coeurs. La documentation du gestionnaire de queue SGE demande qu’on ne spécifie pas la queue de soumission dans son script ou sur la ligne de commande de lancement. Ceci permet à la SGE une gestion dynamique des ressources de la grappe et une réaffectation des travaux/jobs aux ressources et queues les moins utilisées. Pour orienter les travaux/jobs il est quand même indispensable que les administrateurs définissent un petit nombre de queues dont la définition est donnée dans l’annexe C. Dans cette annexe les queues sont définies en fonction des ressources demandées : mémoire vive (max 64 Go), temps de calcul et nombre des noeuds. Donc dans les exemples "batch’’ ci-après nous préciserons ces ressources sans indiquer la queue de soumission.

Travaux par lot ou "batch"

Ci-dessus nous avons expliqué comment faire des calculs en interactif. Donc la procédure complète comporte deux étapes :

  • sur le nœud maître gmpcs.lumat.u-sud.fr, compiler et tester le programme avec les contraintes < 5 minutes et < 32 Go de mémoire vive en interactif ;
  • intégrer l’exécutable, par exemple a.out à un script “batch” soumis à travers le système batch SGE aux noeuds de calcul de la GMPCS.

Supposant un script nommé "qsub_a_out.bash" (un script typique complet est donné dans l’annexe B ; une copie se trouve dans le sous répertoire /export/home/utilisateur_GMPCS/Sun_grid_engine/Examples_script. Pensez à remplacer #$ -M georges.raseev@u-psud.fr par votre courriel personnel. Pour lancer ce script on utilise la commande :

qsub qsub_a_out.bash

L’ordinateur frontal ou maître de la GMPCS (gmpcs.lumat.u-psud.fr) est accessible en mode graphique interactif à partir d’un ordinateur des laboratoires LUMAT. Il y a une sécurité : au delà de 3 tentatives de connections, il est impossible de se connecter sur la GMPCS pendant 10 minutes. Il est possible de se connecter de chez soi à condition d’accéder d’abord à un ordinateur de la fédération LUMAT, puis à la GMPCS. A partir d’un poste LUMAT :

  • sous GNU/Linux. Sur ce système d’exploitation, on ouvre une fenêtre terminal X11, xterm ou Konsole KDE, etc ;
  • sous MS Windows. Dans ce cas on installe un logiciel d’émulation X11. A titre d’exemple, Yves Bergougnoux et Mondher Besbes ont testé pour vous le logiciel xming du site sourceforge.net. Mais vous pouvez utiliser l’émulateur X11 de votre choix. Pour xming les détails d’installation sont donnés dans l’annexe ??. Une fois installé, vous activez/cliquez sur/lancez d’abord xming puis Putty et dans l’arborescence “Session” sur la gauche vous lancez par exemple la session “lumat” que vous avez définie lors de l’installation. Une fenêtre terminal X11 graphique s’ouvre et vous êtes au même niveau que linux.

En somme pour les deux systèmes d’exploitation vous avez ouvert une fenêtre terminal. Pour se connecter à la GMPCS en mode “ssh”, dans le terminal X11 on utilise une des commandes suivantes :

slogin -X prénom_nom@gmpcs.lumat.u-psud.fr

ou

ssh -X prénom_nom@gmpcs.lumat.u-psud.fr

Si votre serveur X11 du terminal lancé ci-dessus est ouvert aux requêtes extérieures, alors sur le frontal GMPCS on peut utiliser des logiciels graphiques tels le gestionaire des fichiers konqueror de KDE

konqueror &

un éditeur graphique par exemple l’éditeur KDE kwrite

kwrite &

ou le gestionaire des travaux/jobs en batch qmon de SGE (voir plus loin)

qmon&

Si un logiciel existe en local et sur la GMPCS, on peut travailler sur la GMPCS comme sur son ordinateur personnel. Tout autre logiciel en mode X11 comme “ganglia” peut aussi être utilisé sur la GMPCS.

On peut acceder à ses fichiers en local par konqueror. On ouvre une fenêtre konqueror et dans l’emplacement on tape :

fish ://utilisateur@gmpcs.lumat.u-psud.fr/home/utilisateur

On voit ses fichiers comme en local et on peut les ouvrir pour les modifier. On peut ouvrir un autre onglet local pour traiter (par exemple pour copier) ces fichiers.

Pour les travaux interactifs sur le frontal GMPCS uniquement six cœurs du nœud maître sont mis à la disposition des utilisateurs, deux sont réservés pour l’administration du système.

Les autres 12 nœuds de calcul de la GMPCS sont accessibles en mode “batch” uniquement et utiliseront la totalité des 8 cœurs par nœud. Sur la GMPCS le shell par défaut est le bash avec le fichier de configuration :

$HOME/.bashrc

Travaux interactifs de taille modeste sur le frontal

Ceci concerne les compilations, les petites exécutions et l’utilisation restreinte de logiciels intégrés :

  • Toutes les compilations/links Fortran, C etc devront obligatoirement être effectuées sur le frontal de la GMPCS (gmpcs.lumat.u-psud.fr) en mode interactif. L’appel au compilateur se fait par l’ordre suivant :
    ifort -O2 -parallel -ipo -fpp -openmp nom fichier fortran.f90

où “-O2” est une option d’optimisation non-agressive ne provoquant pas de risque de bugs, “-parallel” permet une parallèlisation automatique des boucles en toute sécurité par le compilateur lui même. Ces deux options “-O2” et “-parallel” sont indissociables. Les trois autres options “-ipo”, “-fpp” et “-openmp” correspondent respectivement à l’optimisation du programme dans sa totalité impliquant l’ensemble des subroutines, à l’utilisation du préprocesseur et à la parallèlisation OpenMP. Pour une optimisation plus poussée, vous pouvez utiliser “-O3” au lieu de “-O2” et ajouter l’option “-xT” utilisant des ordres spécifiques du processeur lors de la compilation. Dans ce cas vérifiez sur quelques cas particuliers la validité de vos calculs en les comparant aux résultats obtenus avec les options standard mentionnées ci-dessus. Cet appel au compilateur génère un exécutable “dynamique”, c’est à dire que toutes les références aux librairies au moment de l’exécution NE sont résolues. Intel préconise ce mode de compilation et d’édition des liens (link) puisqu’il génère un exécutable plus petit, pose moins de problèmes en calcul parallèle et permet d’utiliser les versions réactualisées de librairies. Nous encourageons les utilisateurs d’utiliser ce mode qui marche dans la plupart de cas. Il existe un autre mode de compilation/link appelé “-static” qui indique que dans le module exécutable résultant toutes les références aux librairies “run time” sont résolues :

ifort -static -O2 -parallel -ipo -fpp -openmp nom fichier fortran.f90

Nous préconisons n’utiliser ce mode que quand le mode dynamique est inopérant.

Dans certains cas au niveau de l’édition des liens il faut indiquer des librairies de modules spécifiques. Par exemple :

-L/opt/intel/fce/$(INTEL F ACTUAL)/lib
-L/opt/intel/mkl/$(INTEL MKL ACTUAL)/lib/em64t
-lmkl lapack -lmkl em64t -lguide -lpthread -lm -lsvml

tout écrit sur une même ligne. Nous avons fait appel aux librairies du compilateur lui même

-L/opt/intel/fce/$(INTEL F ACTUAL)/lib

et de MKL

-L/opt/intel/mkl/$(INTEL MKL ACTUAL)/lib/em64t

Les ordres -lmkl_lapack -lmkl_em64t -lguide -lpthread -lm -lsvml font référence à des modules particuliers de la librairie MKL. Les variables d’environement $(INTEL F ACTUAL) et $(INTEL MKL ACTUAL) pointent vers les versions actuelles du compilateur Intel et de sa librarie MKL. Ils seront mises à jour par les gestionaires de la GMPCS au changement de version. Pour l’utilisateur ce changement de version reste transparent. La signification des librairies peut être trouvée dans la documentation de MKL d’Intel. Aux libraries standard MKL, nous avons ajouté la librairie de primitives graphiques “dislin“ qui se trouve dans ”interfaces“ de la librairie mkl :

opt/intel/mkl/$(INTEL MKL ACTUAL)/interfaces/dislin

Toutes les librairies ”run time“ nécéssaires à un executable ”dynamique“ sont accessibles aussi sur les tous noeuds de calcul ;

  • Ces compilations peuvent être suivies de petits calculs préliminaires (<5 minutes temps cpu et < 31.4 Go mémoire vive) permettant une vérification avant soumission en batch par SGE sur les nœuds de calcul. Pour comparer les vitesses en local et sur la GMPCS commencez par compiler et exécuter vos programmes sur vos machines en local. Le même calcul passé sur la GMPCS vous donnera le rapport des temps d’exécution sur les deux machines. Attention le “cpu time” du fortran 90 donne la somme des temps d’exécution des cœurs. Lancez votre a.out par la commande :
time ./a.out

et alors le “real“ sur l’écran vous donne le temps de calcul sur le nœud avec 6 processeurs en interactif tandis que le cpu time est approximativement 6 fois ce temps. Le rapport cpu time/real donne le gain réel d’utilisation du multithreading ;

  • Les logiciels de type interpréteur de commandes comme Mathematica ou Matlab assujettis à une licence peuvent aussi être utilisés en interactif pour permettre une vérification avant soumission en batch. Les scripts d’exécution de ces petits travaux préliminaires doivent être limités à < 5 minutes et 31.4 Go mémoire vive. Ceux possédant une licence par groupe (voir les conditions de la licence ci-dessus) pourront lancer Mathematica ou Matlab par la commande :
mathematica&
matlab&
  • Après ces tests préliminaires les travaux de calcul intensif se fait par lots et est décrit plus loin.

RTRA

Annonces

Stage : "Diagonalisation des matrices réelles sur GPU"

Rapport de stage de Kun SONG :

PDF - 803.4 ko
(mai - août 2013)

Jourrnées ISMO

Prséentation de la GMPCS aux journées ISMO (3, 4 et 5/04/2013)

PDF - 255.9 ko

7ème demi-journée des théoriciens de la fédération LUMAT (07/11/2012)

Optique et phénomènes non-linéaires, champs intenses et contrôle cohérent

PNG - 3.8 ko


Stage : "Optimisation du transfert de données entre un CPU et un GPU"

Rapport de stage de Jean YAOKELI :

PDF - 915.4 ko
(mai - août 2012)