Accueil🇫🇷Chercher

Gestionnaire de tâches

Les gestionnaires de tâches ou de batchs occupent une place particulière dans le domaine de l'informatique appelé le calcul haute performance. Ils servent en général à gérer de façon logicielle des grosses installations informatiques parallèles utilisées de façon concurrente par plusieurs utilisateurs physiques ou virtuels. Sur un système multitâche de type UNIX, une partie logicielle du noyau, appelée ordonnanceur (scheduler), permet aux différents processus lancés d'accéder les uns après les autres aux ressources de la machine, selon la capacité de l'ordinateur à les traiter, selon son taux d'occupation, selon des priorités qui peuvent être des attributs de ces processus, etc.

KSysGuard, un gestionnaire de tâches sur KDKDE Plasma 5

De la même façon, un gestionnaire de batchs implémente un ordonnanceur de processus ou scheduler à une échelle plus large ; il servira à transmettre les processus à traiter non plus sur la machine sur laquelle tourne cet ordonnanceur, mais sur une ou plusieurs des différentes machines constituant l'installation informatique du cluster.

Terminologie

  • Un cluster (ou encore grappe de serveurs, ferme de calcul) est un ensemble d'ordinateurs agencĂ©s en rĂ©seau -en gĂ©nĂ©ral rapide ; il se compose de plusieurs unitĂ©s (certains clusters atteignent la taille de plusieurs dizaines de milliers d'unitĂ©s). Il est gĂ©nĂ©ralement utilisĂ© pour rĂ©aliser des traitements lourds en ressource de calcul et/ou de mĂ©moire.
  • Un nĹ“ud est l'un de ces ordinateurs qui composent le cluster. Il peut ĂŞtre mono- ou multiprocesseur, et il est gĂ©rĂ© par son propre système d'exploitation qui exploite ses ressources localement.
  • Le maĂ®tre est un ordinateur qui fait tourner certains Ă©lĂ©ments du gestionnaire de tâches ainsi que les outils de supervision; il peut servir de nĹ“ud, mĂŞme si dans la pratique ce cas est en gĂ©nĂ©ral Ă©vitĂ©.
  • Le gestionnaire de tâches est composĂ© de 3 Ă©lĂ©ments principaux :
    • Le serveur, Ă©lĂ©ment central, chargĂ© de rĂ©aliser l'interface entre les utilisateurs et les autres Ă©lĂ©ments,
    • L'ordonnanceur, chargĂ© de gĂ©rer l'accès aux ressources du cluster,
    • Le lanceur de processus, appelĂ© mom car Ă©tant le père (ou la mère) de tous les processus qu'il lance pour le compte des jobs.
  • Une queue est une file d'attente dans laquelle s'accumulent les jobs en attente de traitement par le serveur.
  • Une tâche ou job est un petit programme, Ă©crit en gĂ©nĂ©ral dans un langage de script (shell), contenant la dĂ©finition de l'environnement dans lequel il souhaite lancer son calcul (nombre de nĹ“uds, nombre de processeurs, etc.). Il contient aussi les rĂ©fĂ©rences des fichiers utilisĂ©s et du programme de calcul qu'il souhaite lancer. Il est placĂ© dans une queue par le serveur dans l'attente de son traitement.
  • Une règle d'ordonnancement (policy) dĂ©finit quelle mĂ©thode doit appliquer l'ordonnanceur au traitement des tâches en attente dans les queues. Celle-ci peut ĂŞtre de type FIFO (premier rentrĂ©, premier sorti), ou bien utiliser des algorithmes spĂ©cialisĂ©s comme le backfilling, le fairshare, etc.

Composants

Le serveur

Le serveur occupe une place centrale dans le gestionnaire de tâches. Toutes les commandes des utilisateurs, de l'opérateur et de l'administrateur du système sont envoyées à ce serveur en TCP/IP. Le rôle principal de ce serveur est de fournir les services élémentaires dont on besoin les tâches :

  • crĂ©er les batch pour recevoir les tâches,
  • modifier les tâches,
  • protĂ©ger les tâches contre les crashs des nĹ“uds,
  • placer les tâches en exĂ©cution,
  • suspendre les tâches en exĂ©cution,
  • tuer les tâches en exĂ©cution,
  • refuser les tâches selon certains critères
  • gĂ©rer les queues.

L'ordonnanceur

Les queues, quant à elles, sont constituées potentiellement de collections ordonnées de tâches en attente de traitement. On distingue 2 catégories de queues :

  • les queues de routage,
  • les queues d'exĂ©cution.

Elles possèdent des attributs qui conditionnent leur capacité à recevoir les jobs.

Une queue de routage possède pour attribut une liste ordonnée de queues d'exécution et sert à aiguiller les tâches dirigées vers elles par un utilisateur vers la première de ces queues d'exécution pour laquelle les ressources disponibles atteignent les ressources demandées.

Les implémentations

Maui

Maui Cluster Scheduler, précurseur de Moab, est un ordonnanceur de tâches (scheduler) open source destiné aux clusters et aux super-ordinateurs. C'est un outil configurable et optimisé destiné à supporter plusieurs politiques d'ordonnancement, les priorités dynamiques, la réservation étendues de plages temporelles, le partage équitable des ressources (fairshare). Il est actuellement utilisé par des centaines de gouvernements, dans l'éducation, et sur des serveurs à visée commerciale à travers le monde. Toutes les capacités présentes sur Maui le sont aussi sur Moab, puisque Moab a ajouté à Maui des fonctionnalités telles que la notion de réseau virtuel de clusters (VPC, voir VPN), utile lorsque les nœuds sont dispersés géographiquement sur plusieurs réseaux, le support des déclencheurs basiques, des outils d'administration graphique, et un portail web à destination des utilisateurs.

OAR

OAR est un gestionnaire de ressources pour grappe de PC (cluster de calcul) développé originellement au laboratoire ID-IMAG à Grenoble, comme un clone d'OpenPBS (80 % des fonctionnalités/20 % du nombre de lignes de code), sous licence libre (OpenSource).

Aujourd'hui OAR est le gestionnaire de ressource utilisé par la plate-forme expérimentale nationale de grille de calcul Grid'5000, ainsi que par plusieurs autres sites universitaires, voire industriels.

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.