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 19:40] – [cluster --liste] 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** a été développée à l' |
+ | par Jean-Louis Martineau pour gérer l' | ||
+ | les clacs. | ||
+ | |||
+ | Actuellement, | ||
+ | les accès à plusieurs grappes associées à un laboratoire de recherche | ||
+ | ou à tout le département. | ||
+ | |||
+ | ====== Principe de fonctionnement ====== | ||
+ | |||
+ | L' | ||
+ | pour y exécuter un certain nombre de tâches | ||
+ | et de la libérer lorsque les tâches sont terminées. | ||
+ | C'est la raison d' | ||
+ | **libere** de la commande **cluster**. | ||
+ | |||
+ | A cela s' | ||
+ | |||
+ | qui montrent respectivement les réservations | ||
+ | et la charge des machines. | ||
+ | |||
+ | Finalement l' | ||
+ | la soumission d'une tâche et la libération | ||
+ | |||
+ | L' | ||
+ | pour libérer une réservation orpheline. | ||
+ | Il faut aussi noter que l' | ||
+ | n'agit que sur la réservation de la machine | ||
+ | et n' | ||
+ | |||
+ | ====== Syntaxe ====== | ||
+ | |||
+ | La syntaxe de la commande **cluster** | ||
+ | suit à peu près le schéma suivant: | ||
+ | un mot clé précédé de " | ||
+ | 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 " | ||
+ | |||
+ | Les mots clés peuvent être abrégés | ||
+ | tant qu'il n'y a pas d' | ||
+ | et l' | ||
+ | En cas d' | ||
+ | dans le message d' | ||
+ | |||
+ | Lorsqu' | ||
+ | seule la dernière instance est utilisée. | ||
+ | Un des mots clés présents et un seul doit préciser | ||
+ | l' | ||
+ | |||
+ | Un mot clé absent | ||
+ | permet de stopper l' | ||
+ | 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 "" | ||
+ | |||
+ | Voici quelques exemples de la syntaxe: | ||
+ | |||
+ | < | ||
+ | cluster | ||
+ | cluster --os=fc14 --liste | ||
+ | cluster --execute uname --os=fc9 -- -a | ||
+ | cluster --mem 20 --execute "uname -nrp" | ||
+ | cluster --libere --id=1234567 | ||
+ | </code> | ||
+ | |||
+ | ====== 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 **' ' | ||
+ | spécifiées par l' | ||
+ | Ainsi, ' | ||
+ | ' | ||
+ | Le détail des valeurs | ||
+ | |||
+ | La notation **[' | ||
+ | |||
+ | qui a été choisie pour alléger la présentation, | ||
+ | représente un certain nombre d' | ||
+ | (' | ||
+ | précisant surtout le type de machine voulue. | ||
+ | |||
+ | ===== aide ===== | ||
+ | |||
+ | Imprime un aide-mémoire des actions | ||
+ | |||
+ | ===== charge [--os=' | ||
+ | |||
+ | Donne la charge | ||
+ | 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' | ||
+ | (load average) données par la commande ' | ||
+ | |||
+ | ===== execute ' | ||
+ | |||
+ | L' | ||
+ | élaborée de la commande **cluster**. | ||
+ | |||
+ | Une réservation est d' | ||
+ | fournis (' | ||
+ | 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 ' | ||
+ | comme suit sur la machine réservée: | ||
+ | |||
+ | <code> | ||
+ | cd ' | ||
+ | ' | ||
+ | </code> | ||
+ | |||
+ | ' | ||
+ | |||
+ | [format] indique une chaine facultative qui sera ajoutée | ||
+ | avant les paramètres (args) de la commande | ||
+ | si l'option **format** a été mentionnée. | ||
+ | |||
+ | Par défaut, la commande | ||
+ | |||
+ | La commande n'est pas limitée à un seul programme. | ||
+ | En fait toute expression acceptée par le shell de l' | ||
+ | peut être utilisée. Il faut cependant faire attention aux | ||
+ | caractères | ||
+ | |||
+ | ===== help ===== | ||
+ | |||
+ | Synonyme de **aide**. | ||
+ | |||
+ | ===== libere --id=' | ||
+ | |||
+ | Libère les machines de la réservation ' | ||
+ | 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 | ||
+ | les paramètres de la commande | ||
+ | |||
+ | ====== 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 | ||
+ | |||
+ | ===== cpu='num' | ||
+ | |||
+ | 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'est le répertoire | ||
+ | où la commande **cluster** est exécutée | ||
+ | qui sera utilisé. | ||
+ | |||
+ | ===== duree='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 | ||
+ | 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 : | ||
+ | </code> | ||
+ | |||
+ | ===== 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 ' | ||
+ | |||
+ | <pre class=" | ||
+ | Réserver une machine avec fc9 et 2 giga-octets | ||
+ | et y exécuter | ||
+ | </ | ||
+ | |||
+ | ===== cd /tmp | ||
+ | < | ||
+ | cluster --format "-FMT: n=%n m=%m-" --exec "uname -nrp; pwd; echo" -- " | ||
+ | <pre class=" | ||
+ | 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'option **os** | ||
+ | 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. | ||
+ | </ | ||
===== Exemples ===== | ===== Exemples ===== | ||
Ligne 39: | Ligne 415: | ||
^ Laboratoire ^ Grappe ^ Caractéristiques des noeuds ^ Responsable ^ | ^ Laboratoire ^ Grappe ^ Caractéristiques des noeuds ^ Responsable ^ | ||
- | | DIRO | '' | + | | DIRO | '' |
| LBIT | '' | | LBIT | '' | ||
| LISA | '' | | LISA | '' |
labs/grappe.txt · Dernière modification : 2018-04-26 20:46 de 127.0.0.1