labs:grappe
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
labs:grappe [2008-02-22 20:06] – arraslei | labs:grappe [2011-10-25 20:04] – [execute 'commande' ['criteres'] [--proc='num'] [-- 'args ...']] derval | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Utilisation de la grappe de processeurs ====== | ====== Utilisation de la grappe de processeurs ====== | ||
- | Les machines de la grappe (// | + | La commande **cluster** |
+ | par Jean-Louis Martineau pour gérer l'accès | ||
+ | les clacs. | ||
- | ===== Exemples ===== | + | Actuellement, |
+ | les accès à plusieurs grappes associées à un laboratoire de recherche | ||
+ | ou à tout le département. | ||
- | Voici quelques exemples pour illustrer les principales options du programme **'' | + | ====== Principe de fonctionnement ====== |
- | * Pour consulter le tableau des réservations : < | + | L' |
- | * Pour réserver | + | C'est la raison d'être des actions **reserve** et **libere** de la commande |
- | ===== Réservation ===== | + | A cela s' |
- | L'utilisation des processeurs d'une grappe est soumise à une durée par défaut de 8 heures. Une durée supérieure peut être indiquée par le paramètre | + | Finalement l'action |
- | Une réservation | + | L' |
+ | Il faut aussi noter que l' | ||
- | ===== Myrinet | + | ====== Syntaxe ====== |
- | Voici une petite explication | + | La syntaxe |
+ | et possiblement suivi d'une ou plusieurs valeurs séparées par des "," | ||
+ | Les mots clés peuvent être séparés des valeurs, soit par un espace, soit par un " | ||
- | Comment utiliser MPI sur le cluster? Pour utiliser | + | Les mots clés peuvent être abrégés tant qu'il n'y a pas d'ambiguité et l' |
+ | En cas d' | ||
- | inclure mpich-myrinet | + | Lorsqu' |
- | | + | Un des mots clés présents et un seul doit préciser l' |
- | cluster --proc=? --myrinet --mpich --lancer local --execute mpirun -- -machinefile machinefile -np ? PROGRAM | + | |
- | Pour utiliser | + | Un mot clé absent (**--** tout seul) permet de stopper l'interprétation des mots clés |
+ | et de spécifier à sa suite les paramètres de la commande à exécuter. | ||
+ | On peut aussi spécifier la commande et ses paramètres entre "" | ||
- | inclure mpich | + | Voici quelques exemples de la syntaxe : |
- | mpicc ..... # compilation du programme | + | |
- | cluster --proc=? --mpich --lancer local --execute mpirun -- -machinefile machinefile -np ? PROGRAM | + | |
- | Pour compiler | + | < |
+ | cluster --aide | ||
+ | cluster --os=fc14 --liste | ||
+ | cluster --execute uname --os=fc9 -- -a | ||
+ | cluster --mem 20 --execute "uname -nrp" | ||
+ | cluster --libere --id=1234567 | ||
+ | </ | ||
+ | |||
+ | ====== Réservations ====== | ||
+ | |||
+ | Les réservations faites par l' | ||
+ | de vie (8 heures par défaut). | ||
+ | L' | ||
+ | une nouvelle durée pour la réservation. | ||
+ | La valeur maximum est de 31 jours, | ||
+ | ce qui correspond à la durée de vie d'un ticket Kerberos. | ||
+ | |||
+ | En plus de la durée, on peut spécifier un certain | ||
+ | nombre de critères caractérisant les machines à réserver. | ||
+ | En particulier, | ||
+ | |||
+ | A l' | ||
+ | et réserver toute une machine pour un usager était acceptable. | ||
+ | Avec les machines récentes qui peuvent avoir des dizaines de processeurs, | ||
+ | ces machines ont été partitionnées en pseudo-machines distinguées | ||
+ | par une lettre majuscule ajoutée au nom | ||
+ | afin d' | ||
+ | Ce partitionnement est flexible et peut être ajusté au besoin. | ||
+ | |||
+ | ====== Actions ====== | ||
+ | |||
+ | Les actions de la commande **cluster** | ||
+ | sont présentées en ordre alphabétique. | ||
+ | Les options facultatives sont mentionnées entre **[]**. | ||
+ | Dans la liste qui suit, le préfixe **--** a été omis. | ||
+ | Les chaines présentées entre **' '** représentent des valeurs | ||
+ | spécifiées par l' | ||
+ | Ainsi, ' | ||
+ | ' | ||
+ | Le détail des valeurs est expliqué dans la section **Options**. | ||
+ | |||
+ | La notation **[' | ||
+ | représente un certain nombre d' | ||
+ | précisant surtout le type de machine voulue. | ||
+ | |||
+ | ===== aide ===== | ||
+ | |||
+ | Imprime un aide-mémoire des actions et des options. | ||
+ | |||
+ | ===== charge [--os=' | ||
+ | |||
+ | Donne la charge et la réservation de chaque machine. | ||
+ | Les options facultatives permettent de restreindre l' | ||
+ | Il faut aussi noter que seules les machines auxquelles l' | ||
+ | |||
+ | La sortie comprend : le nom de la machine, | ||
+ | l' | ||
+ | |||
+ | ===== execute ' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Une réservation est d' | ||
+ | Si la réservation échoue, un message d' | ||
+ | Cette action réserve automatiquement les processeurs et les libère lorsque la commande se termine. | ||
+ | |||
+ | En cas de succès, la commande ' | ||
+ | |||
+ | < | ||
+ | cd ' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | ' | ||
+ | |||
+ | [format] indique une chaine facultative qui sera ajoutée avant les paramètres (args) de la commande | ||
+ | si l' | ||
+ | |||
+ | Par défaut, la commande est lancée sur un seul processeur. | ||
+ | |||
+ | La commande n'est pas limitée à un seul programme. | ||
+ | En fait toute expression acceptée par le //shell// de l'usager peut être utilisée. | ||
+ | Il faut cependant faire attention aux caractères d'échappement (' | ||
+ | |||
+ | ===== help ===== | ||
+ | |||
+ | Synonyme de **aide**. | ||
+ | |||
+ | ===== libere --id=' | ||
+ | |||
+ | Libère les machines de la réservation 'id'. | ||
+ | Attention, **libere** ne termine pas les tâches | ||
+ | en cours d' | ||
+ | |||
+ | ===== liste [--os=' | ||
+ | |||
+ | Imprime la liste des réservations et des machines. | ||
+ | Les options facultatives permettent de restreindre | ||
+ | l' | ||
+ | Il faut aussi noter que seules les machines auxquelles | ||
+ | l' | ||
+ | |||
+ | ===== prolonge --id=' | ||
+ | |||
+ | Prolonge la réservation ' | ||
+ | Si la durée est absente, | ||
+ | la valeur par défaut est utilisée. | ||
+ | |||
+ | ===== reserve [' | ||
+ | |||
+ | Réserve ' | ||
+ | Par défaut, un seul processeur est réservé. | ||
+ | Si la réservation est réussie, la sortie contiendra les valeurs: | ||
+ | ' | ||
+ | le nombre de processeurs et les machines réservées. | ||
+ | |||
+ | Cette action n'est plus directement accessible. | ||
+ | |||
+ | ===== -- ===== | ||
+ | |||
+ | Termine l' | ||
+ | permettant ainsi de spécifier à sa suite | ||
+ | les paramètres de la commande à exécuter. | ||
+ | |||
+ | ====== Options ====== | ||
+ | |||
+ | Les options sont présentées en ordre alphabétique. | ||
+ | Certaines options ne sont utiles qu' | ||
+ | elles sont simplement ignorées autrement. | ||
+ | Dans la liste qui suit, le préfixe **--** a été omis. | ||
+ | |||
+ | ===== cpu=' | ||
+ | |||
+ | Cette option permet de spécifier le nombre de processeurs (cpu) requis. | ||
+ | Par défaut, un seul processeur sera requis. | ||
+ | |||
+ | ===== cwd=' | ||
+ | |||
+ | Cette option permet de spécifier le répertoire ' | ||
+ | où sera exécutée la commande sinon c' | ||
+ | où la commande | ||
+ | qui sera utilisé. | ||
+ | |||
+ | ===== duree='val' | ||
+ | |||
+ | 'val' | ||
+ | Les suffixes ' | ||
+ | respectivement des minutes, des heures ou des jours. | ||
+ | La durée par défaut d'une réservation est de 8 heures. | ||
+ | La durée maximum est de 31 jours, | ||
+ | ce qui correspond à la durée de vie d'un ticket Kerberos. | ||
+ | |||
+ | ===== format=' | ||
+ | |||
+ | ' | ||
+ | comme premier argument à la commande à exécuter. | ||
+ | Dans cette chaine, les séquences suivantes seront remplacées | ||
+ | par les valeurs correspondantes: | ||
+ | |||
+ | %n par le nombre de processus | ||
+ | |||
+ | %m par le nom de la machine | ||
+ | |||
+ | %M par les noms des machines | ||
+ | |||
+ | |||
+ | ===== id=' | ||
+ | |||
+ | ' | ||
+ | Ce numéro apparait dans la première section de l' | ||
+ | |||
+ | ===== machine=' | ||
+ | |||
+ | ' | ||
+ | d'une machine. | ||
+ | Ce nom permet de restreindre les actions **charge**, | ||
+ | **execute**, | ||
+ | **liste** à la seule machine mentionnée. | ||
+ | |||
+ | ===== memoire=' | ||
+ | |||
+ | Cette option permet de spécifier la quantité de mémoire requise. | ||
+ | La mémoire est exprimée en méga-octets et la valeur par défaut est de 512. | ||
+ | |||
+ | ===== minproc=' | ||
+ | |||
+ | Normalement, | ||
+ | au nombre requis par l' | ||
+ | la réservation échoue. | ||
+ | Par contre, s'il y a au moins ' | ||
+ | la réservation s' | ||
+ | avec le nombre maximum de processeurs disponibles | ||
+ | jusqu' | ||
+ | |||
+ | ===== os=' | ||
+ | |||
+ | Cette option permet de spécifier la version du système d' | ||
+ | des machines à réserver en précisant la distribution voulue: | ||
+ | |||
+ | < | ||
+ | fc7 pour des noeuds avec Fedora core 7 | ||
+ | fc9 pour des noeuds avec Fedora core 9 | ||
+ | fc14 pour des noeuds avec Fedora 14 | ||
+ | all pour des noeuds avec fc7 ou fc9 | ||
+ | </ | ||
+ | |||
+ | La valeur par défaut est présentement ' | ||
+ | |||
+ | ===== proc=' | ||
+ | |||
+ | Cette option permet de spécifier le nombre de processeurs requis. | ||
+ | La valeur par défaut est de un. | ||
+ | |||
+ | ===== stdin ===== | ||
+ | |||
+ | L' | ||
+ | l' | ||
+ | Cette option permet de connecter l' | ||
+ | s'il n'y a qu'un seul processeur requis (**proc=1**). | ||
+ | |||
+ | ===== wait ===== | ||
+ | |||
+ | Cette option permet d' | ||
+ | s' | ||
+ | |||
+ | ====== Les fichiers d' | ||
+ | |||
+ | Par défaut, | ||
+ | l' | ||
+ | que l' | ||
+ | |||
+ | La sortie standard (stdout) et la sortie d' | ||
+ | En cas de longue exécution, il est recommandé de rediriger ces sorties | ||
+ | vers des fichiers pour éviter leur perte en cas d' | ||
+ | |||
+ | ====== Exemples ====== | ||
+ | |||
+ | ===== cluster --charge ===== | ||
+ | < | ||
+ | kiwi0g | ||
+ | kiwi0h | ||
+ | malaga01A, usagerxx : 5.00, 5.00, 5.00 | ||
+ | malaga01B, usagerxx : | ||
+ | malaga01C, usagerxx : | ||
+ | malaga01D, usagerxx : | ||
+ | </ | ||
+ | |||
+ | ===== cluster --liste ===== | ||
+ | < | ||
+ | Liste des réservations: | ||
+ | ID : USAGER | ||
+ | 263560 : usagerxx :EX Thu Sep 29 04:41:57 2011: 1 : 64000 : ilar01A | ||
+ | |||
+ | Liste des machines: | ||
+ | MACHINE | ||
+ | ... | ||
+ | giga0h | ||
+ | ilar01A | ||
+ | ... | ||
+ | |||
+ | Sur 90 machines, 13 sont réservées et 77 sont disponibles. | ||
+ | </ | ||
+ | |||
+ | ===== cluster --os=fc9 --mem=2000 --duree=24h --execute ' | ||
+ | |||
+ | < | ||
+ | Réserver une machine avec fc9 et 2 giga-octets de mémoire pour 24 heures | ||
+ | et y exécuter ' | ||
+ | </ | ||
+ | |||
+ | ===== cd /tmp ===== | ||
+ | ===== cluster --format "-FMT: n=%n m=%m-" --exec "uname -nrp; pwd; echo" -- " | ||
+ | |||
+ | < | ||
+ | acgt01.iro.umontreal.ca 2.6.23.17-88.fc7 x86_64 | ||
+ | /tmp | ||
+ | -FMT: n=1 m=acgt01- etc. | ||
+ | </ | ||
+ | |||
+ | ====== Problèmes connus ====== | ||
+ | |||
+ | Il n'y a pas de page de manuel | ||
+ | et la documentation donnée par **aide** laisse à désirer. | ||
+ | |||
+ | On ne peut libérer qu'une réservation à la fois. | ||
+ | |||
+ | La valeur par défaut de l' | ||
+ | est source de confusion. | ||
+ | |||
+ | Il peut rester des réservations orphelines. | ||
+ | |||
+ | Le message BAD libere/ | ||
+ | |||
+ | Il y a une certaine confusion entre CPU et PROC | ||
+ | (processeur et processus). | ||
+ | |||
+ | Certaines validations pourraient être effectuées | ||
+ | directement par la commande **cluster**. | ||
+ | |||
+ | ====== Auteurs ====== | ||
+ | |||
+ | 2001-2006 Jean-Louis Martineau. | ||
+ | 2006-2011 Claude Goutier. | ||
- | ===== Grappes du DIRO ===== | ||
- | Voici la liste des grappes (clusters) du Département d' | ||
- | ^ Laboratoire ^ Grappe ^ Caractéristiques des noeuds ^ Responsable ^ | ||
- | | DIRO | '' | ||
- | | LBIT | '' | ||
- | | LISA | '' | ||
- | | OPTIM | '' | ||
- | | RALI | '' | ||
labs/grappe.txt · Dernière modification : 2018-04-26 20:46 de 127.0.0.1