22
Master: Ingénierie des Systèmes et des Projets Spécialité: Systèmes Dynamiques et Signaux Année 2010/2011 Rapport intermédiaire de master SDS Présenté et soutenu par: Florent Reynier le 22/02/2011 Au sein de l’Institut des Sciences et Techniques de l’Ingénieur d’Angers Titre: Ordonnancement de tâches pour minimiser la consommation maximale d’énergie d’un ordinateur Jury: Président : L. Hardouin Professeur Université d’Angers Examinateurs : L. Autrique Professeur Université d’Angers F. Chapeau Blondeau Professeur Université d’Angers J.L. Boimond Professeur Université d’Angers M. Bourcerie Professeur Université d’Angers P. Declerck MCF Université d’Angers J.B. Fasquel MCF Université d’Angers C. Jean-Guillaume MCF Université d’Angers M. Lhommeau MCF Université d’Angers D.Rousseau MCF Université d’Angers Encadrants: J. Noe, L. Hardouin et M. Lhommeau LABORATOIRE D’INGÉNIERIE DES SYSTÈMES AUTOMATISÉS EA 4094 - Université d’Angers

Master: Ingénierie des Systèmes et des Projetslisabiblio.univ-angers.fr/ReynierFlorent/doc/RapportInter_M2SDS... · Ordonnancement de tâches pour ... 2Capacité de production de

Embed Size (px)

Citation preview

Master: Ingénierie des Systèmes et des ProjetsSpécialité: Systèmes Dynamiques et Signaux

Année 2010/2011

Rapport intermédiaire de master SDSPrésenté et soutenu par:

Florent Reynierle 22/02/2011

Au sein de l’Institut des Sciences et Techniques de l’Ingénieurd’Angers

Titre:Ordonnancement de tâches pour minimiser la consommation

maximale d’énergie d’un ordinateur

Jury:

Président : L. Hardouin Professeur Université d’AngersExaminateurs : L. Autrique Professeur Université d’Angers

F. Chapeau Blondeau Professeur Université d’AngersJ.L. Boimond Professeur Université d’AngersM. Bourcerie Professeur Université d’AngersP. Declerck MCF Université d’AngersJ.B. Fasquel MCF Université d’AngersC. Jean-Guillaume MCF Université d’AngersM. Lhommeau MCF Université d’AngersD.Rousseau MCF Université d’Angers

Encadrants: J. Noe, L. Hardouin et M. Lhommeau

LABORATOIRE D’INGÉNIERIE DES SYSTÈMES AUTOMATISÉSEA 4094 - Université d’Angers

Rapport intermédiaire de master SDS

Table des matièresRésumé 1

Asbtract 1

Introduction 2

1 Les grappes de calculs 31.1 Les tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Les ordonnanceurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.1 Ordonnanceurs en temps partagé . . . . . . . . . . . . . . . 41.2.2 Ordonnanceurs spatiaux . . . . . . . . . . . . . . . . . . . . 4

1.3 Les bibliothèques de communication . . . . . . . . . . . . . . . . . . 51.3.1 PVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.2 MPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.3 Techniques de parallélisation . . . . . . . . . . . . . . . . . . 6

2 Politiques d’ordonnancement 72.1 Algorithmes sans retard . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 FCFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Déclinaison . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.3 FCFS-FF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.4 Backfilling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Algorithmes avec contraintes de priorités . . . . . . . . . . . . . . . 92.2.1 IBM SP Scheduler . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Algorithmes basés sur l’heure de fin . . . . . . . . . . . . . . . . . . 102.3.1 EDF - Earliest Deadline First . . . . . . . . . . . . . . . . . 102.3.2 RED - Robust Earliest Deadline . . . . . . . . . . . . . . . . 11

2.4 Déclinaison optimisant la consommation énergétique . . . . . . . . . 112.4.1 LC - Concentration . . . . . . . . . . . . . . . . . . . . . . . 11

3 Méthodes pour réduire la consommation énergétique 123.1 Mesure de l’énergie consommée . . . . . . . . . . . . . . . . . . . . 123.2 Modèle de consommation énergétique du processeur . . . . . . . . . 13

3.2.1 Énergie consommée et temps de calcul . . . . . . . . . . . . 133.2.2 Équirépartition des temps de calcul . . . . . . . . . . . . . . 15

3.3 Dynamic Voltage Scaling . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Application au système du CEA . . . . . . . . . . . . . . . . . . . . 16

Conclusion 18

Références 19

Florent Reynier

Titre: Ordonnancement de tâches pour minimiser la consomma-tion maximale d’énergie d’un ordinateur

Mots clés: Grappe de calculateurs, Ordonnanceurs, Linux, Consom-mation électrique, Dynamic Voltage Scheduling, Algo-rithme

Résumé: La consommation électrique d’un ordinateur, plus particulièrementdes grappes de calculs croît avec l’augmentation de leur puissance. Cephénomène est aujourd’hui de plus en plus problématique car l’éner-gie a un coût financier et environnemental de plus en plus élevé, etparfois même n’est pas acheminable en quantité suffisante jusqu’auxcalculateurs. Minimiser la consommation d’énergie d’un ordinateurest donc impératif. Pour ce faire, il existe différentes techniques pou-vant être greffées aux algorithmes implémentés par les ordonnanceursdont le Dynamique Voltage Scheduling. Ce rapport propose un étatde l’art relatif à ces problématiques.

Title: Job scheduling to minimize the maximum power consum-ption of a computer

Keywords: Cluster, Scheduler, Linux, Power consumption, DynamicVoltage Scheduling, Algorithm

Abstract: The power consumption of a computer, especially clusters of compu-ters raises with the increase of their power. Today this phonemenonis problematic as the energy costs more and more, and sometimes isnot routable in sufficient quantity to the computers. Minimizing themaximum power consumption of a computer is imperative. To dothis, there are various techniques witch can be grafted to the algo-rithms implemented by schedulers like Dynamic Voltage Scheduling.This report is a state of art concerning these problems.

LABORATOIRE D’INGÉNIERIE DES SYSTÈMES AUTOMATISÉSEA 4094 - Université d’Angers

1

Introduction

IntroductionDepuis plus de 40 ans, la puissance des ordinateurs ne cesse d’augmenter de

pair avec leur consommation électrique. Cette consommation massive en énergieélectrique est une problématique grandissante, qui devient aujourd’hui un critèreà prendre en compte lorsque l’on dimensionne la taille d’un calculateur. En ef-fet, le coût en énergie dépensée pour le fonctionnement et le refroidissement deséquipements informatiques d’un centre de calcul devient plus élevé que son coûtd’acquisition. De plus, la facture due aux coûts engendrés par le fonctionnementd’un centre de calcul n’est pas le seul problème, les limitations liées à la produc-tion et à l’acheminement de l’énergie sont elles aussi présentes. Trouver des moyenspour minimiser la consommation maximale d’énergie de ces systèmes sans dégra-der leur performance est la clef pour que leur puissance de calcul puisse continuerà croître.

En outre, les limitations physiques du silicium le composant principal des pro-cesseurs sembles être atteintes, ce qui impose une augmentation de la puissanceglobale des calculateurs par l’expansion du nombre de cœurs et de processeurspour former des grappes de calcul (Cluster). Les unités de calculs sont, au seind’un ordinateur, les éléments qui consomment le plus d’énergie. On parle de 38%à 48%, ce qui en fait des acteurs importants dans les postes à prendre en consi-dération pour réduire la consommation énergétique dans le domaine du calcul àhaute performance (HPC [1]). L’ordonnanceur répartit toutes les tâches de calculà exécuter au sein du calculateur sur l’ensemble des cœurs, cet élément a donc unevision d’ensemble sur ce qui se passe au sein de la grappe et c’est aussi de lui quedépend le rendement du calculateur. Par conséquent, agir sur le composant logicielqui pilote l’ensemble des cœurs d’un centre de calcul est nécessairement un moyende minimiser l’énergie consommée. Dans ce rapport nous présenterons un état del’art sur l’ordonnancement de tâches pour minimiser la consommation maximaled’énergie d’un ordinateur.

C’est dans ce contexte que s’inscrit ce travail en partenariat avec le CEA(Commissariat à l’Énergie Atomique). Le CEA-DAM (Direction des applicationsmilitaires du CEA [2]) possède un centre de calcul récemment inauguré nomméTERA-100 [3] à ce jour le plus puissant d’Europe et le 6éme [4] au rang mondial.Ce supercalculateur est composé de 4 370 serveurs intégrant pas moins de 17 480processeurs (environ 140 000 cœurs), 300 Téraoctets (To) de mémoire et 20 Péta-octets (Po) de capacité de stockage pour une puissance de 1,05 pétaflops 1 et uneconsommation électrique globale estimée à 7MW2.

Pour commencer, nous aborderons le fonctionnement global d’une grappe decalcul. Puis nous nous intéresserons aux différents algorithmes permettant de ré-partir les travaux à effectuer au sein du calculateur. Pour finir, nous évoqueronsles méthodes utilisées pour évaluer la consommation d’un calculateur, le modèleénergétique d’un processeur et les différents moyens utilisables pour réduire laconsommation en énergie d’une grappe de calculateurs.

1Un million de milliards d’opérations par seconde sur des flottants (plus d’opérations en uneseconde que la population mondiale ne pourrait faire en 48 heures, à raison d’une opération parseconde et par personne).

2Capacité de production de deux éoliennes terrestres grand format.

Florent Reynier 2

Les grappes de calculs

1 Les grappes de calculsUne grappe de calculateurs correspond à l’interconnexion par un réseau à

hautes performances de calculateurs (nœud). Vu de l’extérieur cet ensemble nereprésente qu’une seule unité, où chaque nœud possède son propre système d’ex-ploitation. Tout est organisé au sein de la grappe pour que les nœuds soient leplus possible indépendants les uns des autres de manière à ne pas empêcher lefonctionnement de la grappe de calcul lorsqu’un ou plusieurs de ses nœuds devientdéfaillant.

Pour administrer le fonctionnement d’une grappe de calcul, il existe deuxgrands types de systèmes :

– Les systèmes à exécution par lot (figure 1) dont le fonctionnement est régi parun nœud maître qui a en charge de répartir l’ensemble des tâches à exécutersur les différents nœuds de la grappe et selon une politique d’ordonnancementdéfinie.

Fig. 1 – Schéma de principe d’un système à exécution par lots

– Les systèmes à image unique fonctionnant de manière identique aux systèmesà exécution par lot. Mais, en plus, ils virtualisent l’ensemble des ressourcesmatérielles et logicielles de la grappe sous un seul bloc. Chaque processuslancé étant virtuel on peut le manipuler comme s’il était local au nœudmaître.

Le CEA utilise au sein de son calculateur, le TERA-100, une architecture baséesur un système à exécution par lot, c’est pourquoi la suite de ce qui va être exposéne fera aucunement référence aux systèmes à image unique.

1.1 Les tâchesLe mot tâche possède différentes définitions en fonction du point de vue que

l’on utilise. Si l’on se place à l’extérieur du calculateur, alors une tâche est toutsimplement une instance du programme à exécuter, on parle plus justement deprocessus. Mais dans le contexte des grappes de calculateur et surtout des systèmesparallèles on part du principe qu’un programme a la capacité de s’exécuter sur untel système lorsqu’il peut lancer simultanément plusieurs calculs, c’est pourquoiquand on parle de tâche on se place le plus souvent à l’intérieur de la grappe.Lorsqu’il y a parallélisation d’un programme, le nœud maître via son ordonnanceur

Florent Reynier 3

1.2 Les ordonnanceurs

attribue aux différents nœuds de la grappe une tâche (un calcul, un traitement...)à effectuer. Dans la suite du rapport, on admettra pour une tâche la définitionsuivante :

Définition 1 (Tâches) Une tâche est une sous instance d’un programme exé-cuté qui réalise un traitement en parallèle d’autres tâches appartenant au mêmeprogramme.

Bien évidemment lorsqu’un programme se subdivise en plusieurs tâches, desdépendances entre tâches apparaissent, c’est à dire qu’une tâche peut être dépen-dante du résultat du traitement d’une ou plusieurs autres tâches. On parle alorsd’interdépendance.

1.2 Les ordonnanceursOn distingue deux grands types d’ordonnanceurs :

1.2.1 Ordonnanceurs en temps partagé

Leur travail consiste à gérer l’exécution d’un ensemble de tâches sur un nombrede processeurs très limité. Ce qui rend par conséquent impossible l’exécution d’unetâche sur toute la durée de son calcul, en partant du principe qu’un système d’ex-ploitation en fonctionnement est constitué d’un ensemble de n tâches devant toutesêtre exécutées en même temps. Ordonnanceur en temps partagé permet de ré-soudre un problème de ressources limitées et d’exécution simultanée, en allouant àchaque tâche un temps intermédiaire d’exécution, lorsque ce temps intermédiaireest écoulé l’ordonnanceur sauvegarde le contexte d’exécution de la tâche (préemp-tion) ou bien l’arrête si sont traitement est terminé, puis passe à la tâche suivante(en restaurant son contexte si elle est déjà en cours d’exécution) et ce indéfinimentjusqu’à l’arrêt du système.

Bien évidemment, les principes énoncés sont simplistes, en réalité les politiquesd’ordonnancement prennent en compte beaucoup plus de paramètres (ex : priori-tés). On peut citer en exemple l’algorithme de Round-Robin [5].

1.2.2 Ordonnanceurs spatiaux

Les ordonnanceurs spatiaux, très couramment utilisés dans les grappes de cal-culs, ont pour rôle de répartir les différentes tâches d’un programme à exécuter surles différents nœuds de la grappe. Chaque nœud de la grappe se matérialise parun serveur possédant son propre système d’exploitation doté d’un ordonnanceuren temps partagé.

Un ordonnanceur spatial est implanté sur un seul nœud appelé maître, il ré-partit et gère les tâches à exécuter au sein de chaque nœud et par conséquent seplace un niveau au dessus des ordonnanceurs en temps partagé. L’ordonnanceurspatial est un composant logiciel qui connait l’architecture de la grappe, il sait entemps réel quel est l’état de chaque nœud, c’est à partir de ces données entre autresqu’il est capable de réaliser l’allocation des tâches à exécuter. Pour exécuter son or-donnancement, ce type de composant logiciel a impérativement besoin de connaître

Florent Reynier 4

1.3 Les bibliothèques de communication

le nombre de processeurs nécessaires au fonctionnement de chaque programme de-vant être lancé sur le système. Un grand nombre d’algorithmes d’ordonnacementnecéssitent en plus un temps approximatif d’exécution afin d’optimiser le remplis-sage (minimiser le nombre de processeurs en attente de tâches à exécuter) de lamatrice d’allocation des tâches.

Un ordonnanceur de bonne qualité est un ordonnanceur qui rentabilise au maxi-mum la grappe en minimisant le nombre de nœuds sans tâche à exécuter à toutinstant, la bête noire d’un tel système est la fragmentation 3. L’algorithme d’or-donnancement spatial adopte des politiques d’optimisation qui visent à rentabiliserles temps de calcul dans un souci de rapidité d’exécution. Indirectement, le rende-ment énergétique du calculateur (nombre de tâches exécuté par rapport à l’énergieglobale consommée) s’en voit valorisé, mais ce n’est pas pour autant que la consom-mation d’énergie est diminuée. En effet la consommation électrique d’un composantse caractérise par le produit de sa consommation énergétique instantanée et d’untemps. Actuellement, les fonctionnalités implémentées par les algorithmes d’ordon-nancement spatiaux visant à diminuer la consommation énergétique globale d’unegrappe sont peu évoluées et surtout peu utilisées.

Comme nous l’avons laissé entendre précédemment, une grappe de calcul in-tègre différents niveaux d’ordonnancement. Un premier niveau à la hauteur desnœuds (ordonnanceurs en temps partagé) et un second niveau au dessus des nœudsmatérialisé par l’ordonnanceur spatial. Ce qui va nous intéresser par la suite estla couche supérieure de l’architecture qui, finalement, pilote la couche inférieureen répartissant des tâches d’exécution. Si l’on fait référence à l’architecture enplace au sein du calculateur du CEA, l’ordonnanceur spatial est un composantlogiciel, indépendant du système d’exploitation qui fait partie de la catégorie des"Batch scheduler", nommé SLURM (Simple Utility for Ressource Management).Lorsqu’un utilisateur souhaite lancer l’exécution d’un programme, c’est directe-ment à SLURM qu’il doit s’adresser afin de paralléliser l’exécution du programme.

1.3 Les bibliothèques de communicationUn programme séquentiel standard n’est pas optimisé pour s’exécuter sur une

grappe de calculateur, car, sa conception fait qu’il ne peut utiliser qu’un seulprocesseur à la fois. C’est pourquoi, pour que l’exécution d’un programme fonc-tionnant sur une grappe de calculateur soit efficace, le programme en question doitavoir les moyens de répartir ses calculs sur plusieurs processeurs afin de parallélisersont travail. Ce n’est qu’à cette condition que les temps de calcul sont divisés.

Pour réaliser cette "parallélisation", les programmes doivent utiliser une librairietelle que PVM, ou encore MPI à ce jour la librairie la plus utilisée.

1.3.1 PVM

Parallel Virtual Machine [6] a pour but de faciliter l’écriture d’applicationsparallèles sur un réseau de stations de travail hétérogènes. L’utilisateur définit unensemble de machines qui sera vu comme une seule grande machine multiproces-seur à mémoire distribuée. Cette approche permet le regroupement d’hôtes ayant

3On parle de fragmentation d’espace lorsque l’ordonnanceur n’est pas capable de combler lesvides dans la grille d’allocation des tâches de calcul

Florent Reynier 5

1.3 Les bibliothèques de communication

des caractéristiques différentes (machine vectorielle, station graphique, station detravail, cluster, robot de stockage, etc ...). Les communications dans PVM sontbasées sur les protocoles TCP et UDP car ils sont les plus répandus et favorisentla portabilité. L’envoi de messages est synchrone, ce qui signifie que le processeurémetteur reste bloqué tant que les données à envoyer ne sont pas toutes émises. Laréception de messages quant à elle est soit bloquante (le processeur récepteur serabloqué tant que les données reçues ne seront pas accessibles), soit non bloquantes.PVM est constitué de trois entités principales :

– Le démon PVM. Il est exécuté sur chaque hôte de la machine virtuelle etpermet d’acheminer et contrôler les messages ;

– La bibliothèque des routines PVM permettant le passage de messages, lacréation et la coordination des tâches, etc. ;

– La console, qui sert à gérer la vie de l’ensemble des tâches de la machinevirtuelle.

PVM est un modèle de programmation simple et portable. Cependant, il nefournit pas de mécanisme de tolérance aux pannes, ce qui pourrait être nécessairepour certains modèles de grille de calculs.

1.3.2 MPI

Message Passing Interface [7] est la norme la plus utilisée en ce qui concernele calcul parallèle et distribué. MPI est une spécification pour développer des pro-grammes parallèles basée sur la notion de passage de message. Il existe des librai-ries répondant à cette norme, par exemple Open MPI [8] ou, MPC (MultiProcessorComputing)[9] la librairie développée et utilisée par le CEA.

Une application MPI est un ensemble de processus autonomes exécutant chacunson propre code et communiquant via des appels à des fonctions et des procéduresde la bibliothèque MPI.

La communication peut se dérouler soit de manière point à point entre deuxprocesseurs, soit de manière collective en réalisant plusieurs communications àpartir d’une seule requête afin de transmettre des données à tous les processus dugroupe. Ces communications peuvent être soit bloquantes soit non bloquantes.

Enfin, contrairement à PVM, MPI est capable de détecter et traiter les erreurs[7] pouvant survenir au cours de son fonctionnement via un mécanisme nomméError Handling.

1.3.3 Techniques de parallélisation

Les programmes réalisés au travers des librairies énoncées précédemment, sontdivisés en deux catégories selon la manière dont leur exécution est effectuée :

SMPD (Simple Program, Multiple Data) : L’application est lancée n fois, cha-que processus est complètement autonome dans la parallélisation de ses cal-culs et a en charge de se positionner par rapport aux n− 1 autres processus.

MPMD (Multiple Program, Multiple Data) : Un ensemble de n applicationsdifférentes et interactives sont lancées simultanément. En général un fichierde configuration passé à l’ordonnanceur décrit le rôle de chaque processusles uns par rapport aux autres.

Florent Reynier 6

Politiques d’ordonnancement

Avant d’aborder les moyens potentiels destinés à réduire l’énergie électriqueconsommée par une grappe, il est nécessaire de comprendre les différentes poli-tiques que peuvent employer les ordonnanceurs spatiaux pour répartir les tâchessur chaque nœud.

2 Politiques d’ordonnancementBon nombre de personnes qui exécutent régulièrement des programmes sur des

systèmes tel que celui du CEA se plaignent souvent de la manière dont l’ordonnan-cement est accompli. Le travail réalisé par un algorithme d’ordonnancement spatialest complexe, car il doit rentabiliser au maximum l’utilisation de la grappe tout enminimisant les temps de calcul. Beaucoup de questions peuvent apparaitre quant àla priorité que l’on peut donner aux programmes ayant un temps d’exécution courtet nécessitant peu de processeurs par rapport à ceux gourmands en processeurs,en temps de calcul et plus difficiles à agencer dans la pile d’exécution. Doit-onfavoriser les temps de calcul courts et différer l’exécution des programmes deman-dant un long temps d’exécution ? Ceci est à définir en fonction de l’environnementdans lequel s’intègre le calculateur. C’est pourquoi cette partie se consacrera à ladescription des différents algorithmes d’ordonnancement spatiaux existant [10][11].

2.1 Algorithmes sans retardUn des moyens pour gérer l’équité entre les différents programmes à exécuter

est de les lancer par ordre de soumission (premier arrivé premier servi), c’est ceque l’expression "sans retard" veut dire.

2.1.1 FCFS

Il existe différentes politiques pour décider de l’allocation des processeurs auxtâches en attente. La politique la plus simple est celle appelée FCFS (First Come,First Served). Elle est fondée sur une politique sans retard avec une seule filed’attente. Lorsqu’une tâche arrive (figure 2), elle est automatiquement mise danscette file et n’est servie que lorsque celles qui sont arrivées avant elle dans la fileont été démarées et que les ressoruces dont elle a besoin sont disponibles (figure3). Cette méthode ne permet pas une utilisation efficace des ressources [12] (enmoyenne, seulement 25% des ressources sont utilisées sur la machine IBM/SP2avec le système à exécution par lots LoadLeveler). En effet, cette politique ne prendpas en compte la fragmentation de l’espace (seule une tâche peut être exécutée àla fois ce qui peut entraîner une sous-exploitation de certaines ressources).

2.1.2 Déclinaison

Il existe une déclinaison de FCFS en politique gloutonne (figure 4). Elle consisteà vider la file d’attente des tâches en attribuant à chaque fois le nombre minimalde ressources requises et de recommencer immédiatement avec la prochaine tâcheen file d’attente (si la prochaine tâche en file d’attente exige plus de ressources qu’ily en a de disponible, alors l’algorithme se bloque en attendant une libération desressources). Cependant, cette politique n’est pas très efficace non plus. En effet,

Florent Reynier 7

2.1 Algorithmes sans retard

Fig. 2 – Représentation des dates d’arrivée et des dates d’échéances de tâches nonordonnancées.

Tâche A

Tâche B

Tâche C

Tâche D

Nombre de processeurs

t

Nombre maximum de processeurs

si plusieurs grosses tâches se suivent dans la file d’attente, elles ne peuvent pass’exécuter en même temps parce qu’elles demandent trop de ressources.

2.1.3 FCFS-FF

Une autre politique pour remédier à ce problème est le FCFS-FF (First Come,First Served, First Fit). Cette politique permet de mettre les tâches dans diffé-rentes files (dépendant par exemple du temps d’exécution de la tâche). Et ensuite,par exemple, selon les horaires (travaux de nuit : travaux ayant un long tempsd’exécution, travaux de jour : travaux ayant un court temps d’exécution), l’ordon-nanceur vide les différentes files (selon une politique FCFS). La première tâchetrouvée dans les files qui correspond à la politique en cours est exécutée. Bienqu’elle soit plus performante, cette technique n’est pas non plus la plus efficace[12] (40% à 60% des ressources sont utilisées).

Florent Reynier 8

2.2 Algorithmes avec contraintes de priorités

Fig. 3 – Illustration de l’algorithme FCFS (les tâches arrivent selon le schéma dela figure 2).

Tâche A

Tâche B

Tâche C Tâche D

Nombre de processeurs

t

Nombre maximum de processeurs

2.1.4 Backfilling

La technique du backfilling permet d’exécuter des tâches de courte durée quisont à la fin de la file d’attente avant des tâches de longue durée qui sont placéesdevant dans la file. Pour réaliser cela, il faut soit que l’utilisateur spécifie unedurée approximative de temps d’exécution de sa tâche, soit que l’ordonnanceursoit capable de trouver ces informations à partir des analyses de compilation. Enpratique (figure 5), dans la plupart des cas, il est demandé à l’utilisateur de fournirune durée approximative du temps d’exécution de sa tâche.

Exemple : Soit une tâche A de longue durée en cours d’exécution sur différentsnœuds. Supposons qu’il reste des nœuds non utilisés par A. Le backfilling permetd’exécuter des tâches (C,D...) sur les nœuds restants disponibles à condition queceux-ci ne se terminent pas après la tâche A (cela dans le but de ne pas décalerle démarrage de la tâche B qui est encore en file d’attente, mais qui n’a pu êtredémarrée, faute de ressources disponibles en quantité suffisante). Cette techniquepermet une utilisation des ressources d’environ 80%.

2.2 Algorithmes avec contraintes de prioritésUne priorité est attribuée à chaque tâche. Cette priorité dépend de l’impor-

tance de la tâche ou bien de son temps d’exécution. L’avantage de cette méthodeest qu’elle permet de traiter des travaux de courte durée rapidement. Ainsi cetteméthode est efficace (maximisation de l’utilisation des ressources), et est d’unecertaine manière interactive (les tâches plus courtes peuvent être exécutées avantles plus longues). L’inconvénient est qu’il peut y avoir un risque de famine4.

4Les processus de longue durée peuvent n’avoir jamais accès aux processeurs si des processusde courte durée arrivent en permanence

Florent Reynier 9

2.3 Algorithmes basés sur l’heure de fin

Fig. 4 – Illustration de l’algorithme FCFS selon la politique gloutonne (les tâchesarrivent selon le schéma de la figure 2).

Tâche A

Tâche B

Tâche C

Tâche D

Nombre de processeurs

t

Nombre maximum de processeurs

2.2.1 IBM SP Scheduler

L’IBM SP Scheduler allie la méthode de priorité et celle de retard limite. Àchaque tâche sont associé une priorité et un retard limite. Chaque fois qu’unenouvelle tâche est insérée dans la file, toutes les priorités et retards limites sontrecalculés. Par exemple, si une tâche A est soumise avec un temps d’exécutionestimé à 15 minutes et que dans la file d’attente, il y a une tache B (de mêmepriorité que A) dont le délai maximum de lancement est fixé à 60 minutes, alorsl’ordonnanceur va pouvoir lancer la tâche A, en sachant que lorsqu’elle se finira,la tâche B, n’aura pas dépassé son heure limite de lancement. Les techniquesemployées dans l’ordonnanceur IBM SP Scheduler apportent un gain d’environ10% par rapport au backfilling.

2.3 Algorithmes basés sur l’heure de finCette méthode impose à une tâche une heure de fin d’exécution. Elle est très

utilisée dans les systèmes qui sont à temps réel. Le problème majeur de cette mé-thode est que dans certains cas il n’est pas possible de trouver une adéquationentre les travaux à exécuter et les différentes heures de fin à respecter. Ces algo-rithmes sont très contraignants, car ils doivent gérer les applications interactivestout en étant efficaces et en assurant qu’il ne puisse y avoir un risque de famine.

2.3.1 EDF - Earliest Deadline First

EDF est un algorithme d’ordonnancement préemptif utilisé dans les systèmestemps réel. Il attribue une priorité à chaque tâche en fonction de la date d’échéancede cette dernière. Au plus vite une tâche doit être réalisée, au plus tôt elle aurade chances d’être exécutée. Un défaut de cet algorithme est qu’il ne sait pas gérer

Florent Reynier 10

2.4 Déclinaison optimisant la consommation énergétique

Fig. 5 – Illustration de l’algorithme backfilling en comparaison au FCFS de lafigure 3 (les tâches arrivent selon le schéma de la figure 2).

Tâche A

Tâche B

Tâche C

Tâche D

Nombre de processeurs

t

Nombre maximum de processeurs

Exécution de A Exécution de B

les tâches lorsque le système est surchargé. Dans ces conditions l’utilisation d’untel algorithme peut poser problème.

2.3.2 RED - Robust Earliest Deadline

RED est un ordonnanceur plus "robuste" qu’EDF car il donne des garantiesque EDF n’a pas dans le cas où le système devient surchargé. RED est fondé surun service minimum garanti. Deux types de tâches sont définis, les tâches critiqueset les autres. Les tâches critiques sont assurées de se terminer dans tous les casdans le temps imparti. Les tâches non critiques peuvent subir un léger retard encas de surcharge du système.

2.4 Déclinaison optimisant la consommation énergétiqueLe principe présenté peut être vu comme une surcouche des algorithmes pré-

sentés auparavant, ayant pour but de réduire la consommation en énergie d’unegrappe de calculateurs.

2.4.1 LC - Concentration

L’ordonnanceur de concentration de charge (LC) tente de charger certainsnœuds de la grappe au maximum afin de pouvoir mettre en mode veille à des

Florent Reynier 11

Méthodes pour réduire la consommation énergétique

fins d’économie d’énergie les nœuds non utilisés. Dans le cas où la charge aug-mente, les nœuds éteints se réactivent afin de ne pas créer de dégradation desperformances.

On distingue essentiellement deux type d’arrêts :– Arrêt seul du processeur, le reste du système (mémoires et disques durs)

reste sous tension ;– Arrêt complet du système avec la possibilité de sauvegarder l’ensemble du

contexte d’exécution pour un redémarrage plus rapide.Cette méthode permet de gagner en énergie consommée par les nœuds, cepen-

dant il est nécéssaire de prendre en compte le temps de redémarrage et d’arrêtainsi que les pics d’intensité liés au redémarrage de chaque nœud.

3 Méthodes pour réduire la consommation éner-gétique

Après avoir présenté succinctement le fonctionnement d’une grappe de calcul,nous allons adopter un point de vue axé sur la consommation énergétique deces systèmes. Les processeurs étant les dispositifs consommant le plus d’énergieau sein d’un ordinateur, aborder leur modèle de consommation énergétique estimpératif avant d’évoquer les différents moyens pour réduire la quantité d’énergiequ’ils absorbent. Par conséquent, il est nécessaire de comprendre comment l’énergieconsommée par une grappe de calculateurs peut être évaluée.

3.1 Mesure de l’énergie consomméeA l’image du TOP500 [4], il existe un classement nommé Green500 [13] qui

vise à classifier les 500 calculateurs les plus efficaces en matière de consommationénergétique. Avant d’exposer la méthode d’évaluation proposée par le Green500définissons clairement ce que sont l’énergie instantanée et l’énergie consommée :

Définition 2 (Puissance instantanée) Quantité d’énergie électrique consom-mée par unité de temps, exprimée en Watts (W ). Ce qui correspond à un Joulefourni par Seconde. Dans le cas où la tension U et l’intensité I sont continues, lapuissance instantanée Pi s’écrit :

Pi = U × I

Définition 3 (Énergie consommée) Quantité d’énergie électrique consomméependant une période de temps donnée, exprimée en Joules (J). Dans le cas où lapuissance instantanée et le temps de fonctionnement s’écrivent respectivement Pi

et t alors l’énergie consommée Ec s’écrit :

Ec = Pi × t

Le classement du Green500 est effectué grâce à un rendement, le PPW (Per-formance Per Watt) dont l’unité est le GFlops/Watt5, qui n’est ni plus ni moins

5106 d’opérations sur des flottants par seconde et par Watt

Florent Reynier 12

3.2 Modèle de consommation énergétique du processeur

que le rapport du résultat d’un test de performance sur l’énergie moyenne consom-mée pour effectuer ce test. L’établissement du PPW doit répondre à un protocoledéfini par le Green500 [14], la puissance de calcul Rmax doit être évaluée grâce à unBenchmark nommé Linpack [15] utilisé pour établir le classement du TOP500. Lapuissance consommée pendant l’exécution du Benchmark E(Rmax) quant à elle nedoit prendre en compte que les composants mis en jeu par l’exécution de Linpack,c’est pourquoi la puissance moyenne consommée par la grappe de calcul est éva-luée sur un échantillon de serveurs Eunit(Rmax) (la plus petite unité de composantspour laquelle on peut mesurer l’énergie) puis ramenée à l’échelle du calculateur :

PPW =Rmax

E(Rmax)

E(Rmax) = Eunit(Rmax)× n avec n, le nombre d’unités au sein du serveur

L’énergie moyenne consommée Eunit d’un équipement ne s’obtient pas direc-tement, car les appareils de mesure de puissance donnent des valeurs dont l’unitéest en Watt ce qui correspond à une consommation instantanée. Pour obtenir laconsommation électrique en Joules, il est donc nécessaire d’intégrer sur le tempsla consommation P (Rmax) instantanée.

3.2 Modèle de consommation énergétique du processeur3.2.1 Énergie consommée et temps de calcul

Un processeur est un circuit intégré de la famille des CMOS, un tel circuitrépond aux équations génériques suivantes [16]

Puissance instantanée consommée en (Watts) :

Ptotal = Pstat + Pdyn

{Pstat Puissance consommée par une porte CMOS au reposPdyn Puissance consommée lors de la commutation (1)

Énergie globale consommée en (Joules) :

Etotal = (Pstat + Pdyn)× t = Estat + Edyn avec t le temps de fonctionnement (2)

Relation fréquence - tension d’alimentation :

V = λf

V Tension d’alimentationλ Constante liée au type du processeurf fréquence de cadencement du processeur

(3)

Il est important de noter que la tension d’alimentation est liée à la fréquence decadencement du processeur (3) par un facteur λ positif. Ce qui veut dire que plus latension d’alimentation V croît, plus la fréquence de fonctionnement du processeurf peut être augmentée, et inversement lorsque la tension décroît. Dans le cas oùla relation entre la tension d’alimentation et la fréquence n’est pas respectée, leprocesseur ne fonctionne plus correctement.

En outre la période τ étant inversement proportionnelle à la fréquence, le tempsde traitement d’une tâche (n×τ , avec n le nombre de coups d’horloge pour réaliserla tâche) sera d’autant plus faible que la tension sera élevée.

Florent Reynier 13

3.2 Modèle de consommation énergétique du processeur

Relation énergie - fréquence - tension d’alimentation :

Pdyn = C × f × V 2

C Constante liée au type de processeurf = 1

τFréquence de cadencement du processeur

V Tension d’alimentation(4)

Une tâche nécessite n coups d’horloge, ce qui donnera un temps d’exécution denf

secondes. On obtient donc ainsi l’énergie :

Edyn =n

f× C × λ2 × f 3

Edyn = n× C2 × f 2 = n× C2 ×1

τ 2avec C2 = λ2 × C (5)

Edyn = n× C × V 2 (6)

Il ressort que l’énergie pour réaliser une tâche évolue avec le carré de la fré-quence (??).

Fig. 6 – Relation entre l’énergie et le temps de calcul d’une tâche.

τ : période de l’horloge

Etotal

Edyn = n× C2 × 1τ2

τmin = 1fmax

τmax = 1fmin

Edyn

Estat

A

B

Le schéma 6 illustre le principe énoncé. Nous nous intéressons à une fonctiong liant Edyn à τ la période d’horloge sur l’intervalle I [τmin, τmax] qui représente laplage de variation de la fréquence g du processeur. L’arc [A,B] permet de mettreen valeur la convexité de g sur I. De plus la fonction g est strictement monotonedécroissante sur l’intervalle I, ce qui confirme le principe énoncé sur la relationentre Edyn et τ (??), que nous pouvons élagir à ETotal puisque EStat est constante.

En conclusion, allonger la durée d’exécution d’une tâche diminue considérable-ment l’énergie consommée par l’exécution de son traitement.

Florent Reynier 14

3.2 Modèle de consommation énergétique du processeur

3.2.2 Équirépartition des temps de calcul

De manière générale, un processeur n’exécute pas qu’une tâche mais un en-semble de tâches. Dans ce contexte, l’intervalle de temps total d’exécution doitêtre équiréparti sur chacune des tâches pour tirer parti de la convexité de la fonc-tion g. L’exemple suivant est une application numérique basée sur deux tâches T1et T2 nécessitant un coup d’horloge et un processeur dont la fréquence est dansl’intervalle [1, 1

10] Hz. La tâche 1 doit s’exécuter avant la tâche 2, la tâche 2 doit

être terminée au plus tard à l’instant 10 (Tmax). Plusieurs modes de fonctionne-ment permettent de respecter cet ordonnancement comme le montrent les figuresci-dessous :

Pour rappel :

Edyn = C2 × f 2 = C2 ×1

τ 2(n supposés égal à 1)

Fig. 7 – Exécution des deux tâches au plus vite.

1 2

Edyn

t

Edyn = C2 × (1 + 1) = C2 × 2J1

Tmax

10

Fig. 8 – Exécution de la première tâche en 1s et de la deuxième en 9s.

12

Edyn

t

Edyn = C2 ×(1 + 1

81

)= C2 × 1.0123J

1

0.0123

Tmax

10

En bilan, nous pouvons tout d’abord dire qu’allonger le temps d’exécutiondes tâches à la date d’échéance permet de gagner une quantité d’énergie consi-dérable(figure 7 par rapport aux figures 8 et 9). Pour aller plus loin, lorsque l’onse réfère aux la figure 8 et 9, l’exécution de deux tâches à des vitesses identiquesjusqu’à la date d’échéance (figure 9) permet d’économiser plus d’énergie, que sielles avaient été exécutées à des vitesses différentes sur la même période de temps(figure (8)).

Florent Reynier 15

3.3 Dynamic Voltage Scaling

Fig. 9 – Exécution des deux tâches en 5s chacune.

1 2

Edyn

t

Edyn = C2 ×(

125

+ 125

)= C2 × 0.08J

0.08

Tmax

10

3.3 Dynamic Voltage ScalingDans le domaine des systèmes embarqués, les principes énoncés sur l’énergie

consommée, le temps de calcul et l’équirépartition ont fait l’objet de rechercheset sont aujourd’hui connus sous le nom de DVS (Dynamic Voltage Scaling). UnDVS est une méthode qui vise à diminuer la part d’énergie consommée par leprocesseur en faisant varier sa tension de commande, et par conséquent sa fréquencede fonctionnement.

Les algorithmes qui utilisent cette technique de variation de tension, ont be-soin des données qui suivent pour déterminer l’intervalle de temps d’exécution dechaque tâche :

– Une date de lancement au plus tôt donnant l’instant où l’exécution de latâche peut commencer ;

– Une date d’échéance indiquant à quel moment l’exécution de la tâche doitêtre terminée.

Un système dont on connait l’intervalle de temps sur lequel chaque tâche doits’exécuter appartient à la catégorie des systèmes temps réel. La règle, pour de telssystèmes est de terminer l’exécution des tâches au plus tard à la date d’échéance.Tous les algorithmes partent du principe que la date d’échéance d’exécution d’unetâche est la date à laquelle l’utilisateur a besoin du résultat du calcul implémentépar la tâche. C’est pourquoi la nécessité d’exécuter la tâche le plus rapidement pos-sible (à une fréquence élevée) n’est pas pertinente. Il est plus logique d’adopter unepolitique de juste à temps et de livrer le résultat du calcul à la date d’échéance enjouant sur la tension d’alimentation du processeur (les principes 3.2.1 et 3.2.2 sontdonc repris). On peut citer un algorithme proposé par G.Cassandras qui a pourbut d’optimiser la commande dynamique de la tension d’alimentation d’un proces-seur avec des contraintes de temps réel [17]. Il existe d’autres types d’algorithmesimplémentant les DVS, moins optimaux car basés sur l’utilisation antérieure duprocesseur et non sur l’utilisation future [16]. On parle d’algorithmes de prédiction.

3.4 Application au système du CEALa grappe de calcul du CEA utilise un algorithme Backfilling qui a besoin des

dates de lancements et d’échéances de chaque tâche pour réaliser son ordonnan-cement. C’est le point commun avec les algorithmes DVS qui permet d’avancer

Florent Reynier 16

3.4 Application au système du CEA

qu’implémenter une surcouche de l’algorithme Backward basée sur le DVS peutdiminuer la consommation énergétique instantanée du calculateur.

Cependant il est nécessaire de comprendre la manière dont fonctionne le sys-tème. Comme nous l’avons exposé dans la partie 1, l’ordonnanceur est un logicielnommé SLURM qui régit l’exécution de programmes implémentés en utilisant deslibrairies répondant à la norme MPI. Nous n’avons pas eu le temps d’étudier endétail le fonctionnement de ces deux composants, une part d’inconnue est doncprésente quant aux données disponibles pour réaliser un algorithme basé sur leDVS.

Toutefois nous avons commencé à rechercher des moyens pour répondre à cesquestions. Il est impératif de réaliser en premier lieu un environnement capablede reproduire l’architecture en place au sein du Tera-100. Plusieurs solutions ontété évaluées pour faire fonctionner SLURM ou bien des algorithmes d’ordonnan-cement :

UML (User Mode Linux ) : Un émulateur de système d’exploitation Unix ul-tra léger [18][19], ce qui en fait par conséquent un moyen très intéressantpour simuler des grappes de calcul via son mode cluster sans consommertrop d’énergie et sur un seul ordinateur.

SimGrid : Un simulateur de grappe de calculateur [20] capable d’exécuter desalgorithmes d’ordonnancement personnalisés.

SLURM : De la même manière qu’UML, SLURM (Simple Linux for RessourceManagement)[21] possède un mode permettant de simuler tout un ensemblede nœuds à partir d’un seul ordinateur.

Simuler des algorithmes d’ordonnancement dans un environnement le plus fi-dèle possible à celui du Tera-100 sera la première chose à mettre en place. Néan-moins, les solutions présentées n’intègrent pas réellement le modèle de consomma-tion électrique des processeurs permettant d’évaluer la performance énergétiqued’un algorithme d’ordonnancement. La deuxième étape sera donc de créer un outilpermettant d’évaluer la consommation énergétique de la grappe de calcul simulée.

Florent Reynier 17

Conclusion

ConclusionLa première partie de ce Master Recherche a été dédiée à l’introduction des

différents termes et techniques liés aux grappes de calculateurs. Notamment, lestâches, les ordonnanceurs et l’ensemble des politiques d’ordonnancement appli-quées à ce jour au sein des grappes de calculateurs en particulier au CEA.

Les principes de fonctionnement globaux d’une ferme de calculateurs introduits,les différents moyens pour évaluer et réduire la consommation énergétique d’uncalculateur ont été étudiés. Le Dynamic Voltage Scaling est une des méthodesqui, implantée en tant que surcouche d’un algorithme d’ordonnancement spatialoffre des réductions de consommation d’énergie conséquentes, à condition que lesystème fonctionne dans un contexte temps réel (connaissance des dates d’arrivéeset d’échéance de chaque tâche).

Pendant la période de stage, la première chose à faire sera de créer une maquettede simulation reproduisant fidèlement le fonctionnement de la grappe de calculdu CEA. Par la suite il sera nécessaire d’ajouter à la maquette mise en placeun modèle de consommation énergétique. Ce n’est qu’à ces deux conditions queles performances énergétiques des algorithmes d’ordonnancement pourront êtreévaluées afin de répondre à la problématique de minimisation de la consommationénergétique maximale d’un ordinateur.

Florent Reynier 18

RÉFÉRENCES

Références[1] Calcul à haute performance (HPC ) au sein du CEA.

http://www-hpc.cea.fr/.[2] Site internet du CEA-DAM (direction des applications militaires).

http://www-dam.cea.fr/dynamique/accueil/accueil.asp.[3] Calculateur Tera-100 du CEA.

http://www-hpc.cea.fr/fr/complexe/tera10.htm.[4] Classement des 500 calculateur les plus puissants au monde.

http://www.top500.org/.[5] Détails sur l’odonnancement par algorithme de round-robin.

http://choices.cs.uiuc.edu/~f-kon/RoundRobin/node1.html.[6] Parallel virtual machine : librairie libre pour la réalisation de programmes

parallèles.http://www.csm.ornl.gov/pvm/.

[7] Description de la norme mpi 2.2.http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf.

[8] Open mpi : librairie libre pour la réalisation de programmes parallèles.http://www.open-mpi.org/.

[9] Librairie mpi utilisée par le cea.http://mpc.sourceforge.net/.

[10] Jérôme GAILLARD. Ordonnancement de tâches dans des grappes de cal-culateurs, 2007. http://www.irisa.fr/myriads/bibadmin/uploads/pdf/Gal07Master.pdf.

[11] Jérôme GAILLARD. Rapport bibliographique 0rdonnancement de tâchesdans des grappes de calculateurs, 2007. ftp://ftp.irisa.fr/local/caps/DEPOTS/BIBLIO2007/biblio_gallard_jerome.pdf.

[12] James Patton Jones and Bill Nitzberg. Scheduling for parallel supercompu-ting : A historical perspective of achievable utilization. In Dror G. Feitelsonand Larry Rudolph, editors, Job Scheduling Strategies for Parallel Processing,pages 1–16. Springer-Verlag, 1999. Lect. Notes Comput. Sci. vol. 1659",http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.23.3413&rep=rep1&type=pdf.

[13] Les 500 calculateur en terme de rendement puissance de calcul / puissanceconsommée.http://www.green500.org.

[14] Méthode de calcul pour réaliser le classement du green500.http://www.green500.org/docs/pubs/tutorial.pdf.

[15] Details sur le benchmark Linpack.http://www.top500.org/project/linpack.

[16] Daniel LEPRINCE Eugen FELLER, Christine MORIN. State of the art ofpower saving in clusters and results from the edf case study, 2010. http://hal.archives-ouvertes.fr/docs/00/54/38/10/PDF/RR-7473.pdf.

Florent Reynier 19

RÉFÉRENCES

[17] Qianchuan ZHAO Jianfeng MAO, Christos G. CASSANDRAS. Optimal dy-namic voltage scaling in energy-limited nonpreemptive systems with real-timeconstraints. IEEE TRANSACTIONS ON MOBILE COMPUTING, 2007.http://vita.bu.edu/cgc/Published/TMCprint_06_07.pdf.

[18] Site officiel de user mode linux UML.http://user-mode-linux.sourceforge.net/.

[19] Jeff DIKE. User Mode Linux. Prentice Hall, 2006.[20] Site officiel de simgrid.

http://simgrid.gforge.inria.fr/.[21] Site officiel de simple linux utility for ressource management SLURM for

ressource management.https://computing.llnl.gov/linux/slurm/.

Florent Reynier 20