navigation
Home
admin
|
Torque
October 18th, 2016
|
Configuration / Installation / Gestion d'un cluster Torque - maui
| Table des matières |  |
1 Section à destination des utilisateurs
1.1 Comment ça marche ?
1.2 Comment utilise t'on le cluster
1.2.1 Lancement des jobs - Groupe Trad
1.2.2 Lancement des jobs - Groupe Parole
1.2.3 Surveillance des jobs
1.2.4 Informations diverses
2 Section à destination des administrateurs
2.1 Installation de torque
2.2 Installation de maui
2.3 Installation des clients
2.4 Gestion des noeuds
2.5 Gestion des files
2.6 Consultation / surveillance
2.7 Gestion des incidents
| 1 Section à destination des utilisateurs |  |
1.1 Comment ça marche ?
Sur les serveur n20 et quad, tournent torque et un scheduleur, maui (version libre de MOAB). Ils récupèrent les jobs soumis et organisent leur exécution (maui donne les ordres à torque qd à l'exécution des jobs).
Sur les clients n* (-n20), tourne mom qui lance les jobs sur le client.
Les fichiers logs (sdterr, sdtout) résultant de l'exécution du job sont copiés à la racine de votre compte (ils sont de la forme <nom_du_job>.e ou o.<numero du job>
Cette copie se fait via scp. Il faut donc que :
1/ que vous ayez créé une clé ssh,
2/ que votre clé publique soit accessible sur chacun des noeuds (ce que ne doit pas causer de pb car vos homes sont montés partout via NFS) et, enfin,
3/ que votre fichier know_hosts soit à jour (i.e. que vous vous soyez connecté au moins une fois sur chaque noeud).
Pour le détail de la création des clés voir http://www.clusterresources.com/wiki/doku.php?id=torque:6.1_scp_rcp_setupj
1.2 Comment utilise t'on le cluster ?
1.2.1 Lancement des jobs - Groupe Trad
Une file a été créée : trad. Elle regroupe les machines quad + n1->n11.
Lancement via la création d'un script de lancement :
cat mon_script_de_lancement
#!/bin/sh
#PBS -l nodes=3
#PBS -q trad
#PBS -l walltime=00:02:00
/mon_compte/monjob
|
Les pseudocommentaires #PBS sont des options pour qsub (3 noeuds, file "batch" et 2mn max de cpu). Ces options peuvent également être passé en ligne de commande. (ref : http://spc.unige.ch/myrinet_fr)
Il est ensuite possible de soumettre son job avec la commande qsub :
qsub -q <ma file> mon_script_de_lancement |
Lancement avec passage des paramètres via la ligne de commande :
qsub -l nodes=3 -q trad -l walltime=00:01:00 -l mem=1000mb /mon_compte/monjob |
Cette commande va soumettre le job dans la queue trad, demander 3 noeuds, pour un temps CPU de 1 minute et 1Go de mémoire.
Note 1 :
Il est également possible de spécifier une liste de machines sur lesquelles vous voulez que vos jobs tournent :
qsub x="HOSTLIST:palantir10:palantir10:palantir11,palantir11" /mon_compte/monjob |
(merci à Loic et à http://wwwas.oat.ts.astro.it/planck/index.php?option=com_content&task=view&id=30&Itemid=46)
Note 2 :
Il est possible d'utiliser cette syntaxe pour lancer des jobs :
>echo "<ma commande a exécuter>" | qsub -q trad
Note 3 :
Si vous ne spécifiez pas de taille mémoire nécessaire, par défaut 100mb vous sont alloués. Si vous dépassez cette valeur, le job est suspendu. Ces restrictions ont pour but d'aider maui dans son travail : affecter le bon job au bon endroit.
1.2.2 Lancement des jobs - Groupe Parole
Dans cette partie du cluster, il est nécessaire de créer un script de lancement et d'y ajouter le paramètre
#PBS -W X="PARTITION:parole"
ou
#PBS -W X="PARTITION:tpic2".
La file a utiliser est batch (il n'existe pas d'autre file; parole et tpic2 sont des partitions).
Exemple de script TORQUE :
cat mon_script_de_lancement
#!/bin/sh
#PBS -l nodes=3
#PBS -q batch
#PBS -l walltime=00:02:00
#PBS -W X="PARTITION:parole"
/mon_compte/monjob |
Les pseudocommentaires #PBS sont des options pour qsub (3 noeuds, file "batch" et 2mn max de cpu).
Soumission :
>qsub mon_script_de_lancement
Des paramètres peuvent également être ajoutés via la ligne de commande :
>qsub -l nodes=3 -l walltime=00:01:00 -l mem=1000mb /mon_compte/monjob
Cette commande va soumettre le job dans la queue batch, demander 3 noeuds dans la partition parole, pour un temps CPU de 1 minute et 1Go de mémoire.
Il est également possible de spécifier une liste de machines sur lesquelles vous voulez que vos jobs tournent :
>qsub x="HOSTLIST:palantir10:palantir10:palantir11,palantir11" /mon_compte/monjob
(merci à Loic et à http://wwwas.oat.ts.astro.it/planck/index.php?option=com_content&task=view&id=30&Itemid=46)
1.2.3 Surveillance des jobs
commandes maui :
/usr/local/maui/bin/showq
-> display detailed prioritized list of active and idle jobs
/usr/local/maui/bin/checkjob
->display job state, resource requirements, environment, constraints, credentials, history, allocated resources, and resource utilization
/usr/local/maui/bin/canceljob
->cancel existing job
/usr/local/maui/bin/showbf
->show resource availability for jobs with specific resource requirements
/usr/local/maui/bin/showstart
->show estimated start time of idle jobs
/usr/local/maui/bin/showstats
->show detailed usage statistics for users, groups, and accounts which the end user has access to
commandes pbs_server :
qstat -n
-> voir les jobs
qstat -q
-> voir les files disponibles
1.2.4 Informations diverses
Dans quel ordre, torque utilise-t'il les machines ?
"Torque/PBS follows the **reverse** order prescribed on server_priv/nodes to start jobs."
cf : https://lists.sdsc.edu/pipermail/npaci-rocks-discussion/2009-January/036593.html
Espace temporaire :
sur chaque machine du cluster, vous disposez d'un espace pour stocker vos fichiers temporaires : /disk1/tmp
| 2 Section à destination des administrateurs |  |
2.1 Installation de torque
lectures
lecture du guide d'administration (récupération du pdf) et du quick start :
http://www.clusterresources.com/products/torque/docs/torquequickstart.shtml
packages
>yum install torque-server torque-gui libtorque libtorque-devel
initialisation
root@n20 /# ./usr/share/doc/torque-2.1.10/torque.setup bruno
initializing TORQUE (admin: bruno@n20)
qmgr obj= svr=default: Unauthorized Request
Max open servers: 4
qmgr obj= svr=default: Unauthorized Request
Max open servers: 4
qmgr obj= svr=default: Unauthorized Request
qmgr obj=batch svr=default: Unauthorized Request
qmgr obj=batch svr=default: Unauthorized Request
qmgr obj=batch svr=default: Unauthorized Request
qmgr obj=batch svr=default: Unauthorized Request
qmgr obj=batch svr=default: Unauthorized Request
qmgr obj=batch svr=default: Unauthorized Request
qmgr obj= svr=default: Unauthorized Request |
ça déconne car il faut au préalable faire :
>echo n20 > /var/torque/server_name
puis :
> torque.setup bruno@n20)
ou taper les commandes à la main :
qmgr -c "set server scheduling=true"
echo set server operators += bruno@n20 | qmgr
echo set server managers += bruno@n20 | qmgr
qmgr -c 'create queue batch'
qmgr -c 'set queue batch queue_type = execution'
qmgr -c 'set queue batch started = true'
qmgr -c 'set queue batch enabled = true'
qmgr -c 'set queue batch resources_default.walltime = 1:00:00'
qmgr -c 'set queue batch resources_default.nodes = 1'
qmgr -c 'set server default_queue = batch'
Options
+ Autoriser tt le monde à soumettre des jobs :
> qmgr
Qmgr: set server submit_hosts = quad
Qmgr: set server submit_hosts += bart
Qmgr: set server allow_node_submit = True
Qmgr: exit
+ Permettre à qstat de montrer les jobs de tout le monde
> qmgr
Qmgr: s s query_other_jobs=true
Qmgr: exit
+ Gérer la mémoire allouée
>set queue batch resources_default.mem = 100mb
+ Envoyer des mails
set server mail_domain = quad.domaine.fr set server mail_from = torque_admin
+ Utiliser des partitions :
On laisse la queue par défaut (batch). Tous les noeuds font référence à cette queue. modification de maui.cfg
PARTITIONMODE ON
SYSCFG PLIST=part21:part22:part23 PDEF=part22
NODECFGn21 PARTITION=parole
NODECFGn22 PARTITION=parole
NODECFGn23 PARTITION=parole
etc.
NODECFGic2s120-01 PARTITION=tpic2
NODECFGic2s120-02 PARTITION=tpic2
Attention, par défaut, seules 2 partitions peuvent etre créées. Pour en créer plus, il faut modifier avant la compilation moab.h et augmenter MAX_MPAR (cf http://www.clusterresources.com/products/maui/docs/a.ddevelopment.shtml)
Vérifications
>qstat -q
server: n20
Queue Memory CPU Time Walltime Node Run Que Lm State
- - -
batch 0 0 E R - --- 0 0
>qmgr -c 'p s' // 'p s' pour 'print server'
#
# Create queues and set their attributes.
#
#
# Create and define queue batch
#
create queue batch
set queue batch queue_type = Execution
set queue batch resources_default.nodes = 1
set queue batch resources_default.walltime = 01:00:00
set queue batch enabled = True
set queue batch started = True
#
# Set server attributes.
#
set server scheduling = True
set server managers = bruno@n20
set server operators = bruno@n20
set server default_queue = batch
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
set server pbs_version = 2.1.10
Fonctionnement
> echo "sleep 30" | qsub
0.n20
>qstat
Job id Name User Time Use S Queue
0.n20 STDIN bruno 0 Q batch
2.2 Installation de maui
Installation
>./configure
>make
>make install
Note 1
Si maui ne récupère pas les jobs, une modif est à faire : (thanks to http://debianclusters.cs.uni.edu/index.php/Scheduler:_Maui
in your /usr/local/maui/maui.cfg, you should have a line like
#RMCFGHEADNODE TYPE=PBS@RMNMHOST@
where HEADNODE is your head node's hostname in capital letters. Comment out this line by adding a pound symbol, #, in front of it. Then create a line below it:
RMCFGheadnode TYPE=PBS
where headnode is your head node's hostname in lowercase letters.
Note 2
Politique du cluster :
>NODEALLOCATIONPOLICY CPULOAD
# oblige a specifier memoire et walltime dans les batches
# sinon => job suspendu
RESOURCELIMITPOLICY MEM:ALWAYS:SUSPEND
RESOURCELIMITPOLICY PROC:ALWAYS:SUSPEND
# 1 heure de depassement autorise
JOBMAXOVERRUN 01:00:00
Lidée est de mieux gérer le remplissage des noeuds (en utilisant les noeuds les moins chargés pour répartir les jobs), et dobliger les utilisateurs à spécifier le temps et la mémoire nécessaires pour éviter quil y ait trop de défauts de pages sur les noeuds (2 jobs à 1,5 Go alloués sur le même noeud à 2Go de RAM créent un effondrement des performances).
(cf. http://www.math.u-bordeaux1.fr/maths/cellule/spip.php?article22)
2.3 Installation des clients
fedora
>yum install torque torque-mom torque-client torque-gui libtorque libtorque-devel
>echo n20 > /var/torque/server_name // nécessaire si on veut que les noeuds puissent faire des qstat
> more /var/torque/mom_priv/config
$pbsserver n20
$logevent 255
$loglevel 7
>/etc/init.d/pbs_mom start
ubuntu
>apt-get install torque-mom torque-client
+ cf. fedora
sur le serveur
>qmgr -c 'create node n30'
qmgr
s n n30 properties = batch
s n n30 np=16
Vérif ;
pbsnodes -a
qmgr -c 'print n n21'
+ regarder /var/torque/server_priv/nodes
2.4 Gestion des noeuds
Caractéristiques d'un noeud
Qmgr: print n n21
#
# Create nodes and set their properties.
#
#
# Create and define node n21
#
create node n21
set node n21 state = free
set node n21 np = 8
set node n21 ntype = cluster
set node n21 status = opsys=linux
set node n21 status += uname=Linux n21 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:47:07 EDT 2007 x86_64
set node n21 status += sessions=3200 3204
set node n21 status += nsessions=2
set node n21 status += nusers=1
set node n21 status += idletime=530e9740
set node n21 status += totmem=50002116kb
set node n21 status += availmem=49779408kb
set node n21 status += physmem=16450372kb
set node n21 status += ncpus=8
set node n21 status += loadave=0.07
set node n21 status += netload=940268382811
set node n21 status += state=free
set node n21 status += jobs=? 15201
set node n21 status += rectime=1233826072 |
Activation/Désactivation d'un noeud
pbsnodes -a
désactivation (le noeud est mis OFFLINE. les jobs en cours sur la machine se terminent. La machine n'accepte pas de nouveau job) : pbsnodes -o n21
activation (le noeud est mis ONLINE) : pbsnodes -c n21
2.5 Gestion des files
Créer une file :
qmgr
create queue trad resources_default.neednodes=trad
set queue trad started = true
set queue trad queue_type = execution
set queue trad enabled = true
set queue trad resources_default.walltime = 01:00:00
set queue trad resources_default.mem = 100mb
Voir les paramètres d'un file :
Qmgr: print q batch
#
# Create queues and set their attributes.
#
#
# Create and define queue batch
#
create queue batch
set queue batch queue_type = Execution
set queue batch resources_default.nodes = 1
set queue batch resources_default.walltime = 01:00:00
set queue batch enabled = True
set queue batch started = True
Modifier les paramètres d'une file :
-> file non opérationnelle : qmgr -c "set queue batch enabled = False"
-> file opérationnelle : qmgr -c "set queue batch enabled = True"
-> arrêter : qmgr -c "set queue batch started = False"
-> démarrer : qmgr -c "set queue batch started = True"
2.5 Consultation / surveillance
torque
- pbsnodes -a montre létat de TOUS les noeuds.
- qstat sert à voir létat des jobs et des files dattente.
- qsub sert à soumettre les batches. Il prend toutes les options qui pourraient manquer dans le fichier batch, par exemple -q , -l etc. (cf man qsub)
- qdel détruit le job dont le n° est donné en argument
- qalter permet de changer les paramètres dun job en cours. Sil est par exemple Suspendu, et que la raison en est un dépassement de mémoire, on peut changer ses paramètres mémoire : qalter -l mem=512mb . On peut changer tous les paramètres du qsub. Mais si je job est attribué à une file dattente on ne peut pas len déplacer.
- qmove permet de changer un job en état Queued de file dattente. qmove q1jour
- qhold place une « suspension » sur un job, qui ne pourra donc pas être exécuté. Ce « hold » peut être enlevé avec qrls
- qrerun relance un job depuis son départ...
maui (/usr/local/maui/bin)
- jobs management control :
canceljob cancel existing job
checkjob display job state, resource requirements, environment, constraints, credentials, history, allocated resources, and resource utilization
diagnose -j display summarized job information and any unexpected state
releasehold-a remove job holds or defers
runjob start job immediately if possible
sethold set hold on job
setqos set/modify QoS of existing job
setspri adjust job/system priority of job
- status commands :
checkjob display job state, resource requirements, environment, constraints, credentials, history, allocated resources, and resource utilization
checknode display node state, resources, attributes, reservations, history, and statistics
diagnose -j display summarized job information and any unexpected state
diagnose -n display summarized node information and any unexpected state
showgrid display various aspects of scheduling performance across a job duration/job size matrix
showq -r display various views of currently queued active, idle, and non-eligible jobs
showstats -f display historical fairshare usage on a per credential basis
showstats -g display current and historical usage on a per group basis
showstats -u display current and historical usage on a per user basis
showstats -v display high level current and historical scheduling statistics
2.7 Gestion des incidents
Certains jobs refusent d'etre killés ?
- solution 1 :
>qdel -p <job>
- solution 2 (plus rustique) : With your old TORQUE, the only solution is rather blunt... Stop pbs_server, delete the job files in $PBS_SERVER_HOME/server_priv/jobs and start pbs_server. cf. http://archive.netbsd.se/?ml=cluster-maui-users&a=2006-07&t=3467543
Des jobs plantés en même temps qu'un node ?
essayer de modifier leur config avec
/usr/local/maui/bin/mjobctl
voir :
-s
-r -n <node>
et attendre 5 mn... cf. http://www.clusterresources.com/products/maui/docs/a.gmjobctl.shtml
En cas de pb :
Sur le serveur :
- regarder les logs de pbs : tail -100f /var/torque/server_logs/
- regarder les logs de maui : tail -100f /usr/local/maui/log/maui.log
- regarder les files :
>qstat -n1 //affichage sur une ligne. montre sur quelles machines ca tourne
>qstat -n1|grep " R " |sort -k12 //josb qui tournent + tri par machine
>showq
>/usr/local/maui/bin/diagnose -j
- regarder les noeuds :
>pbsnodes -a
>pbsnodes <noeud>
>/usr/local/maui/bin/diagnose -n
- tester la réponse du noeud :
>momctl -h <noeud> -d3
- regarder les jobs :
>/usr/local/maui/bin/checkjob -vv <job id>
> qstat -f
Si le job est bloqué (job hold active) :
>/usr/local/maui/bin/releasehold <job id>
On peut également relancer le job :
> /usr/local/maui/bin/runjob <job id>
Sur les clients :
> tail -100f /var/torque/mom_logs/200...
|
|
Dernières modifs
|
|---|
VNC (November 22nd, 2020) Editeurs (October 20th, 2016) Awk (October 18th, 2016) Claws Mail (October 18th, 2016) Cups (October 18th, 2016) Gimp (October 18th, 2016) Git (October 18th, 2016) |
Contact
|
|---|
Pour m'envoyer un mail, Pour me laisser un commentaire :richard.brunooo chez gmail.com |  |
|
|