ENS Radioastronomy Laboratory - LERMA UMR 8112

CEMAG computer//Outil pour exécutions tests MPI

Last update 01-11-2013 11:29 am / Jean-François Rabasse

Back to topic CEMAG computer

(This text is not available in English, we apologize.)

Exécutions tests MPI

Introduction

Le gestionnaire de tâches PBS utilise 64 CPU sur chacun des quatre noeuds de calcul jxb01 à jxb04. Les quatre premiers CPU de chaque machine servent à faire fonctionner le système d'exploitation, ce qui ne les surmène pas.

L'idée est de pouvoir les utiliser pour de petites exécutions interactives typiques d'une activité de développement et mise au point. Un outil est installé pour faire cela «proprement», à savoir :

  • Nombre de sous processus MPI par programme limité à 4, 8, 12, 16, 24 ou 32. Ce qui semble amplement suffisant pour des tests.

  • Utilisation de cpuset dédiés, configurés sur les quatre machines, n'interférant pas avec la zone PBS.

  • Démarrage des processus en nice de manière à ne pas pénaliser l'activité système.

  • Sélection des noeuds de calcul par un mécanisme de rotation et construction de la ligne de commande (laquelle n'est pas d'une franche convivialité).

Utilisation

Le lanceur s'appelle mpitest, par analogie avec mpirun mais avec une syntaxe très simplifiée et confortable.

rabasse@jxb00:~> mpitest -help
Usage: mpitest [-v]   []

Le nombre de CPU désirés est le total. Les noeuds de calcul vont être choisis automatiquement, 1, 2, 3 ou 4 pour des lancements sur 4, 8, 12 ou 16 CPU.

Pour 24 ou 32 CPU, le lanceur utilise 3 ou 4 noeuds avec 8 processus par noeud, chacun n'ayant bien sûr que 50% de CPU, il n'y a pas de magie.

Enfin on indique le nom du programme et ses arguments s'il en utilise.

ATTENTION il s'agit du nom du programme exécutable et non d'un script PBS contenant déjà une commande mpirun. C'est mpitest qui va construire la commande !

Par exemple, lancement d'un programme testsig avec option -a 60 sur 8 CPU :

rabasse@jxb00:~> mpitest 8 ./testsig -a 60

Une option -v, pour verbose, qui doit figurer en première place dans la liste d'arguments, permet de faire afficher la commande effectivement lancée et son PID :

rabasse@jxb00:~> mpitest -v 12 ./testsig -a 150
-- Launching command :
mpirun -a jxb 
jxb01 4 cpuset -i MPItest -I dplace -- -s1 -c0-3 nice -n 10 ./testsig -a 150
: jxb02 4 cpuset -i MPItest -I dplace -- -s1 -c0-3 nice -n 10 ./testsig -a 150
: jxb03 4 cpuset -i MPItest -I dplace -- -s1 -c0-3 nice -n 10 ./testsig -a 150
-- PID is 10127
rabasse@jxb00:~>

Comme on peut le voir ci-dessus, il s'agit simplement d'une génération de commande mpirun, donc d'un lancement interactif et immédiat. L'affichage produit par les processus apparaît directement à l'écran, si vous voulez le conserver, à vous de le rediriger :

rabasse@jxb00:~> mpitest 12 ./testsig -a 150 > test1.output

NB: l'affichage de la charge des machines via les outils graphiques comme pmgcluster peut sembler inhabituel. Les CPU utilisés (quatre premiers de chaque machine) n'apparaissent pas en bleu mais, selon les cas, en gris, en jaune, en rouge. Rien n'anormal c'est du à l'utilisation de nice et à l'activité système.

Règles d'usage

  • Cet outil est destiné à des tests de mise au point. Utilisez le pour des exécutions courtes, quelques dizaines de secondes ou quelques minutes, et non comme un complément PBS.

  • Utilisez-le plutôt que faire tourner des programmes sur la machine frontale jxb. Cette machine assure beaucoup de services, contrôle du cluster, contrôle des queues PBS, service de disques NFS, plus les travaux utilisateurs, compilations, etc.

    Et donc, lancer des runs interactifs sur 3 CPU sur les 4 de la machine (déjà vu), n'est pas une pratique socialement raisonnable vis à vis de l'équipe.

  • On peut bien sûr lancer autant d'exécutions que l'on veut en simultané. Comme sur tout système Unix, s'il y a davantage de processus par machine que les 4 CPU disponibles, c'est le commutateur de tâches Unix qui gère, et on augmente d'autant la durée d'exécution.

  • Soyez raisonnables en termes d'utilisation de ressources mémoire. Les cpuset sont configurés de manière à utiliser la mémoire disponible dans la première blade, soit 12 Go, et non toute la mémoire machine. Ceci pour ne pas aller perturber les «vrais» jobs qui tournent sous le système PBS.

    Une fois les petits tests satisfaisant, les lancements en vraie grandeur doivent être soumis normalement.

Add a comment