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édente | ||
labs:grappe [2011-10-25 18:39] – re-ecriture par Claude Goutier derval | labs:grappe [2018-04-26 20:46] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Utilisation de la grappe de processeurs ====== | ====== Utilisation de la grappe de processeurs ====== | ||
- | <p>La commande | + | La commande |
par Jean-Louis Martineau pour gérer l' | par Jean-Louis Martineau pour gérer l' | ||
les clacs. | les clacs. | ||
- | </ | + | Actuellement, |
- | <p>Actuellement, | + | |
les accès à plusieurs grappes associées à un laboratoire de recherche | les accès à plusieurs grappes associées à un laboratoire de recherche | ||
ou à tout le département. | ou à tout le département. | ||
- | </p> | ||
- | <h1>Principe de fonctionnement</ | + | ====== |
- | < | + | |
- | 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' | + | |
- | < | + | |
- | </ | + | |
- | <p>A cela s' | + | |
- | qui montrent respectivement les réservations | + | L' |
- | et la charge des machines. | + | C'est la raison |
- | </ | + | |
- | < | + | |
- | la soumission | + | |
- | </ | + | |
- | < | + | |
- | pour libérer une réservation orpheline. | + | |
- | Il faut aussi noter que l' | + | |
- | n'agit que sur la réservation | + | |
- | et n' | + | |
- | </p> | + | |
- | < | + | A cela s' |
- | <p>La syntaxe de la commande < | + | Finalement l' |
- | suit à peu près le schéma suivant: | + | |
- | un mot clé précédé de " | + | |
- | et possiblement suivi d' | + | |
- | séparées par des "," | + | |
- | Les mots clés peuvent être séparés des valeurs, | + | |
- | soit par un espace, soit par un " | + | |
- | </ | + | |
- | < | + | |
- | tant qu'il n'y a pas d' | + | |
- | et l' | + | |
- | En cas d' | + | |
- | dans le message d' | + | |
- | < | + | |
- | seule la dernière instance est utilisée. | + | |
- | Un des mots clés présents et un seul doit préciser | + | |
- | l' | + | |
- | </ | + | |
- | <p>Un mot clé absent (< | + | |
- | permet de stopper l' | + | |
- | et de spécifier à sa suite | + | |
- | les paramètres | + | |
- | On peut aussi spécifier la commande et ses paramètres | + | |
- | entre "" | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | <pre class=" | + | |
+ | L' | ||
+ | Il faut aussi noter que l' | ||
+ | |||
+ | ====== 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' | ||
+ | En cas d' | ||
+ | |||
+ | Lorsqu' | ||
+ | Un des mots clés présents et un seul doit préciser l' | ||
+ | |||
+ | Un mot clé absent (**--** tout seul) 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 --aide | cluster --aide | ||
cluster --os=fc14 --liste | cluster --os=fc14 --liste | ||
Ligne 70: | Ligne 45: | ||
cluster --mem 20 --execute "uname -nrp" | cluster --mem 20 --execute "uname -nrp" | ||
cluster --libere --id=1234567 | cluster --libere --id=1234567 | ||
- | </pre> | + | </code> |
- | <h1>Réservations</h1> | + | ====== |
- | <p>Les réservations faites par l' | + | |
+ | Les réservations faites par l' | ||
de vie (8 heures par défaut). | de vie (8 heures par défaut). | ||
- | L' | + | L' |
une nouvelle durée pour la réservation. | une nouvelle durée pour la réservation. | ||
La valeur maximum est de 31 jours, | La valeur maximum est de 31 jours, | ||
ce qui correspond à la durée de vie d'un ticket Kerberos. | ce qui correspond à la durée de vie d'un ticket Kerberos. | ||
- | </p> | + | |
- | <p>En plus de la durée, on peut spécifier un certain | + | En plus de la durée, on peut spécifier un certain |
nombre de critères caractérisant les machines à réserver. | nombre de critères caractérisant les machines à réserver. | ||
En particulier, | En particulier, | ||
- | </p> | + | |
- | <p>A l' | + | A l' |
et réserver toute une machine pour un usager était acceptable. | et réserver toute une machine pour un usager était acceptable. | ||
Avec les machines récentes qui peuvent avoir des dizaines de processeurs, | Avec les machines récentes qui peuvent avoir des dizaines de processeurs, | ||
Ligne 91: | Ligne 67: | ||
afin d' | afin d' | ||
Ce partitionnement est flexible et peut être ajusté au besoin. | Ce partitionnement est flexible et peut être ajusté au besoin. | ||
- | </p> | ||
- | <h1>Actions</h1> | + | ====== |
- | <p>Les actions de la commande | + | Les actions de la commande |
sont présentées en ordre alphabétique. | sont présentées en ordre alphabétique. | ||
- | Les options facultatives sont mentionnées entre < | + | Les options facultatives sont mentionnées entre **[]**. |
- | Dans la liste qui suit, le préfixe | + | Dans la liste qui suit, le préfixe |
- | Les chaines présentées entre < | + | Les chaines présentées entre **' '** représentent des valeurs |
spécifiées par l' | spécifiées par l' | ||
Ainsi, ' | Ainsi, ' | ||
' | ' | ||
- | Le détail des valeurs est expliqué dans la section | + | Le détail des valeurs est expliqué dans la section |
- | </ | + | |
- | <p>La notation < | + | |
- | qui a été choisie pour alléger la présentation, | + | La notation **[' |
- | représente un certain nombre d' | + | représente un certain nombre d' |
- | (' | + | |
précisant surtout le type de machine voulue. | précisant surtout le type de machine voulue. | ||
- | </p> | ||
- | <h2>aide</ | + | ===== aide ===== |
- | < | + | |
- | </p> | + | |
- | < | + | Imprime un aide-mémoire des actions |
- | < | + | |
- | Les options | + | |
- | l' | + | |
- | Il faut aussi noter que seules les machines auxquelles | + | |
- | l' | + | |
- | </ | + | |
- | <p>La sortie comprend: le nom de la machine, | + | |
- | l' | + | |
- | (load average) données par la commande ' | + | |
- | </p> | + | |
- | < | + | ===== charge |
- | <p>L' | + | Donne la charge et la réservation de chaque machine. |
- | élaborée de la commande | + | Les options facultatives permettent de restreindre l' |
- | </p> | + | Il faut aussi noter que seules les machines auxquelles l' |
- | <p>Une réservation est d' | + | |
- | fournis (' | + | La sortie comprend : le nom de la machine, |
+ | l' | ||
+ | |||
+ | ===== execute ' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Une réservation est d' | ||
Si la réservation échoue, un message d' | Si la réservation échoue, un message d' | ||
- | Cette action réserve automatiquement les processeurs | + | Cette action réserve automatiquement les processeurs et les libère lorsque la commande se termine. |
- | et les libère lorsque la commande se termine. | + | |
- | </p> | + | En cas de succès, la commande ' |
- | <p>En cas de succès, la commande ' | + | |
- | comme suit sur la machine réservée: | + | < |
- | </p> | + | |
- | <pre class=" | + | |
cd ' | cd ' | ||
' | ' | ||
- | </pre> | + | </code> |
- | <p>' | + | |
+ | ' | ||
+ | |||
+ | [format] indique une chaine facultative qui sera ajoutée avant les paramètres (args) de la commande | ||
+ | si l' | ||
- | ou celui mentionné via l' | ||
- | <br> | ||
- | [format] indique une chaine facultative qui sera ajoutée | ||
- | avant les paramètres (args) de la commande | ||
- | si l' | ||
- | <br> | ||
Par défaut, la commande est lancée sur un seul processeur. | Par défaut, la commande est lancée sur un seul processeur. | ||
- | </p> | ||
- | <p>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 d' | ||
- | </p> | ||
- | < | + | La commande n'est pas limitée à un seul programme. |
- | < | + | En fait toute expression acceptée par le // |
+ | Il faut cependant faire attention aux caractères d' | ||
- | </p> | + | ===== help ===== |
- | <h2>libere --id=' | + | Synonyme de **aide**. |
- | <p>Libère les machines de la réservation ' | + | |
- | Attention, | + | ===== libere --id=' |
+ | |||
+ | Libère les machines de la réservation ' | ||
+ | Attention, | ||
en cours d' | en cours d' | ||
- | </p> | ||
- | <h2>liste [--os=' | + | ===== liste [--os=' |
- | <p>Imprime la liste des réservations et des machines. | + | |
+ | Imprime la liste des réservations et des machines. | ||
Les options facultatives permettent de restreindre | Les options facultatives permettent de restreindre | ||
l' | l' | ||
Il faut aussi noter que seules les machines auxquelles | Il faut aussi noter que seules les machines auxquelles | ||
l' | l' | ||
- | </p> | ||
- | <h2>prolonge --id=' | + | ===== prolonge --id=' |
- | <p>Prolonge la réservation ' | + | Prolonge la réservation ' |
Si la durée est absente, | Si la durée est absente, | ||
la valeur par défaut est utilisée. | la valeur par défaut est utilisée. | ||
- | </p> | ||
- | <h2>reserve [' | + | ===== reserve [' |
- | <p>Réserve ' | + | |
+ | Réserve ' | ||
Par défaut, un seul processeur est réservé. | Par défaut, un seul processeur est réservé. | ||
- | Si la réservation est réussie, la sortie contiendra les valeurs: | + | Si la réservation est réussie, la sortie contiendra les valeurs : ' |
- | ' | + | |
- | le nombre de processeurs et les machines réservées. | + | |
- | </ | + | |
- | <p> | + | |
Cette action n'est plus directement accessible. | Cette action n'est plus directement accessible. | ||
- | </p> | ||
- | <h2>--</h2> | + | ===== -- ===== |
- | <p>Termine l' | + | |
+ | Termine l' | ||
permettant ainsi de spécifier à sa suite | permettant ainsi de spécifier à sa suite | ||
les paramètres de la commande à exécuter. | les paramètres de la commande à exécuter. | ||
- | </p> | ||
- | <h1>Options</h1> | + | ====== |
- | <p>Les options sont présentées en ordre alphabétique. | + | Les options sont présentées en ordre alphabétique. |
Certaines options ne sont utiles qu' | Certaines options ne sont utiles qu' | ||
elles sont simplement ignorées autrement. | elles sont simplement ignorées autrement. | ||
- | Dans la liste qui suit, le préfixe | + | Dans la liste qui suit, le préfixe |
- | </p> | + | |
- | <h2>cpu=' | + | ===== cpu=' |
- | <p>Cette option permet de spécifier le nombre de processeurs (cpu) requis. | + | |
+ | Cette option permet de spécifier le nombre de processeurs (cpu) requis. | ||
Par défaut, un seul processeur sera requis. | Par défaut, un seul processeur sera requis. | ||
- | </p> | ||
- | <h2>cwd=' | + | ===== cwd=' |
- | <p>Cette option permet de spécifier le répertoire ' | + | |
+ | Cette option permet de spécifier le répertoire ' | ||
où sera exécutée la commande sinon c'est le répertoire | où sera exécutée la commande sinon c'est le répertoire | ||
- | où la commande | + | où la commande |
qui sera utilisé. | qui sera utilisé. | ||
- | </p> | + | ===== duree=' |
- | < | + | ' |
- | <p>' | + | |
Les suffixes ' | Les suffixes ' | ||
respectivement des minutes, des heures ou des jours. | respectivement des minutes, des heures ou des jours. | ||
Ligne 234: | Ligne 188: | ||
La durée maximum est de 31 jours, | La durée maximum est de 31 jours, | ||
ce qui correspond à la durée de vie d'un ticket Kerberos. | ce qui correspond à la durée de vie d'un ticket Kerberos. | ||
- | </p> | ||
- | <h2>format=' | + | ===== 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 | + | |
- | <br> | + | |
- | <div class=" | + | 'chaine' |
- | < | + | Dans cette chaine, les séquences suivantes seront remplacées par les valeurs correspondantes : |
- | <p> | + | |
- | Option prévue mais pas encore implantée. | + | |
- | </ | + | |
- | </ | + | |
- | < | + | %n par le nombre de processus |
- | < | + | %m par le nom de la machine |
- | Ce numéro apparait dans la première section de l' | + | %M par les noms des machines |
- | </p> | + | |
- | < | ||
- | <p>' | + | ===== id=' |
+ | |||
+ | ' | ||
+ | Ce numéro apparait dans la première section de l' | ||
+ | |||
+ | ===== machine=' | ||
+ | |||
+ | ' | ||
d'une machine. | d'une machine. | ||
- | Ce nom permet de restreindre les actions | + | Ce nom permet de restreindre les actions |
- | < | + | **execute**, |
- | < | + | **liste** à la seule machine mentionnée. |
- | </p> | + | |
+ | ===== memoire=' | ||
- | < | ||
- | <p> | ||
Cette option permet de spécifier la quantité de mémoire requise. | 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. | La mémoire est exprimée en méga-octets et la valeur par défaut est de 512. | ||
- | </p> | ||
- | <h2>minproc=' | + | ===== minproc=' |
- | <p>Normalement, | + | Normalement, |
- | au nombre requis par l' | + | au nombre requis par l' |
la réservation échoue. | la réservation échoue. | ||
Par contre, s'il y a au moins ' | Par contre, s'il y a au moins ' | ||
la réservation s' | la réservation s' | ||
avec le nombre maximum de processeurs disponibles | avec le nombre maximum de processeurs disponibles | ||
- | jusqu' | + | jusqu' |
- | </p> | + | |
+ | ===== os=' | ||
+ | |||
+ | Cette option permet de spécifier la version du système d' | ||
+ | des machines à réserver en précisant la distribution voulue : | ||
- | <h2>os=' | + | <code> |
- | < | + | |
- | 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 | fc9 pour des noeuds avec Fedora core 9 | ||
fc14 pour des noeuds avec Fedora 14 | fc14 pour des noeuds avec Fedora 14 | ||
- | all pour des noeuds avec fc7 ou fc9 | + | all pour des noeuds avec fc9 ou fc14 |
- | </pre> | + | </code> |
- | <p>La valeur par défaut est présentement 'fc7' pour l' | + | La valeur par défaut est présentement 'fc14' pour l' |
- | et 'fc7, | + | ===== proc='num' |
- | </p> | + | |
- | < | + | Cette option permet de spécifier le nombre de processeurs requis. |
- | <p>Cette option permet de spécifier le nombre de processeurs requis. | + | |
La valeur par défaut est de un. | La valeur par défaut est de un. | ||
- | </p> | ||
- | <h2>stdin</h2> | + | ===== stdin ===== |
- | <p>L' | + | |
+ | L' | ||
l' | l' | ||
Cette option permet de connecter l' | Cette option permet de connecter l' | ||
- | s'il n'y a qu'un seul processeur requis (< | + | s'il n'y a qu'un seul processeur requis (**proc=1**). |
- | </p> | + | ===== wait ===== |
- | < | + | Cette option permet d' |
- | <p>Cette option permet d' | + | |
s' | s' | ||
- | </p> | ||
- | <h1>Les fichiers d' | + | ====== |
- | <p>Par défaut, | + | |
+ | Par défaut, | ||
l' | l' | ||
- | que l' | + | que l' |
- | </p> | + | |
- | < | + | La sortie standard (stdout) et la sortie d' |
En cas de longue exécution, il est recommandé de rediriger ces sorties | En cas de longue exécution, il est recommandé de rediriger ces sorties | ||
vers des fichiers pour éviter leur perte en cas d' | vers des fichiers pour éviter leur perte en cas d' | ||
- | </p> | ||
- | <h1>Exemples</h1> | + | ====== |
- | <h2>cluster --charge</h2> | + | ===== cluster --charge |
- | <pre class=" | + | <code> |
kiwi0g | kiwi0g | ||
kiwi0h | kiwi0h | ||
Ligne 341: | Ligne 277: | ||
malaga01C, usagerxx : | malaga01C, usagerxx : | ||
malaga01D, usagerxx : | malaga01D, usagerxx : | ||
- | </pre> | + | </code> |
- | <h2>cluster --liste</h2> | + | ===== cluster --liste |
- | <pre class=" | + | <code> |
Liste des réservations: | Liste des réservations: | ||
ID : USAGER | ID : USAGER | ||
Ligne 357: | Ligne 293: | ||
Sur 90 machines, 13 sont réservées et 77 sont disponibles. | Sur 90 machines, 13 sont réservées et 77 sont disponibles. | ||
- | </pre> | + | </code> |
- | <h2>cluster --os=fc9 --mem=2000 --duree=24h --execute ' | + | ===== cluster --os=fc9 --mem=2000 --duree=24h --execute ' |
- | <pre class=" | + | < |
Réserver une machine avec fc9 et 2 giga-octets de mémoire pour 24 heures | Réserver une machine avec fc9 et 2 giga-octets de mémoire pour 24 heures | ||
et y exécuter ' | et y exécuter ' | ||
- | </pre> | + | </code> |
- | <h2>cd /tmp | + | |
- | < | + | ===== cd /tmp ; cluster --format "-FMT: n=%n m=%m-" --exec "uname -nrp; pwd; echo" -- " |
- | cluster --format "-FMT: n=%n m=%m-" --exec "uname -nrp; pwd; echo" -- " | + | |
- | <pre class=" | + | <code> |
acgt01.iro.umontreal.ca 2.6.23.17-88.fc7 x86_64 | acgt01.iro.umontreal.ca 2.6.23.17-88.fc7 x86_64 | ||
/tmp | /tmp | ||
-FMT: n=1 m=acgt01- etc. | -FMT: n=1 m=acgt01- etc. | ||
- | </pre> | + | </code> |
- | <h1>Problèmes connus</ | + | ====== |
- | <p>Il n'y a pas de page de manuel | + | |
- | et la documentation donnée par < | + | |
- | </ | + | Il n'y a pas de page de manuel |
- | <p>On ne peut libérer qu'une réservation à la fois. | + | et la documentation donnée |
- | </ | + | |
- | <p>La valeur par défaut de l' | + | |
- | est source de confusion. | + | |
- | </ | + | |
- | <p>Il peut rester des réservations orphelines. | + | |
- | </ | + | |
- | <p>Le message BAD libere/ | + | |
- | </ | + | |
- | < | + | |
- | (processeur | + | |
- | </ | + | |
- | < | + | |
- | directement | + | |
- | </p> | + | On ne peut libérer qu'une réservation à la fois. |
- | < | + | La valeur par défaut de l' |
- | < | + | est source de confusion. |
- | 2001-2006 Jean-Louis Martineau. | + | |
- | 2006-2011 Claude Goutier. | + | |
- | </ | + | |
- | ===== Exemples ===== | + | Il peut rester des réservations orphelines. |
- | Voici quelques exemples pour illustrer les principales options du programme **'' | + | Le message BAD libere/ |
- | * Pour consulter le tableau des réservations : < | + | Il y a une certaine confusion entre CPU et PROC |
- | * Pour réserver 3 processeurs et y exécuter la commande **'' | + | (processeur et processus). |
- | + | ||
- | ===== Réservation ===== | + | |
- | + | ||
- | L' | + | |
- | + | ||
- | Une réservation peut être prolongée par la commande < | + | |
- | + | ||
- | ===== Myrinet ===== | + | |
- | + | ||
- | Voici une petite explication de l' | + | |
- | + | ||
- | Comment utiliser MPI sur le cluster? Pour utiliser '' | + | |
- | + | ||
- | inclure mpich-myrinet | + | |
- | mpicc ..... # compilation du programme | + | |
- | cluster --proc=? --myrinet --mpich --lancer local --execute mpirun -- -machinefile machinefile -np ? PROGRAM | + | |
- | Pour utiliser '' | + | Certaines validations pourraient être effectuées |
+ | directement par la commande **cluster**. | ||
- | inclure mpich | + | ====== Auteurs ====== |
- | mpicc ..... # compilation du programme | + | |
- | cluster --proc=? --mpich --lancer local --execute mpirun -- -machinefile machinefile -np ? PROGRAM | + | |
- | Pour compiler un programme '' | + | 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