3095-9570-1-SM

Telechargé par Yuri Orlove
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/290430460
Algorithmes d’ordonnancement des tâches dans un environnement Cloud
Article · June 2015
CITATION
1
READS
4,283
3 authors, including:
Some of the authors of this publication are also working on these related projects:
Bio-Inspired Algorithms View project
Mobilité des utilisateurs dans les réseaux IP View project
Badr Benmammar
Abou Bakr Belkaid University of Tlemcen
159 PUBLICATIONS519 CITATIONS
SEE PROFILE
Mourad Hakem
University of Franche-Comté
53 PUBLICATIONS500 CITATIONS
SEE PROFILE
All content following this page was uploaded by Badr Benmammar on 26 April 2016.
The user has requested enhancement of the downloaded file.
Z. BOUAFIA Algorithmes d’ordonnancement des tachches dans un environnement Cloud 71
Revue Méditerranéenne des Télécommunications Vol. 5, N° 2, June 2015 Mediterranean Telecommunication Journal
Algorithmes d’ordonnancement des tâches dans un
environnement Cloud
Zouheyr Bouafia1 , Badr Benmammar2
Laboratoire de Télécommunications de Tlemcen LTT
Université Abou Bekr Belkaid
Tlemcen, Algérie
1b.zoheir@yahoo.fr, 2Badr.Benmammar@gmail.com
Mourad Hakem
Laboratoire DISC, Institut FEMTO-ST - UMR CNRS
Université de Franche-Comté
France
Mourad.Hakem@univ-fcomte.fr
AbstractLes systèmes distribués à grande échelle comme les
Grilles ou les Nuages (Clouds) [8] sont fondamentalement
dynamiques et instables, et il est également réaliste de considérer
que certaines ressources vont subir des défaillances pendant leur
utilisation. La panne d’une ressource peut affecter l’entière
exécution des applications qui nécessitent la disponibilité de
plusieurs ressources en même temps. Afin de pouvoir gérer des
plates-formes dynamiques à grande échelle, il faut se tourner
vers des algorithmes d'ordonnancement et d'équilibrage de
charge décentralisés, de telle sorte que le système puisse passer à
l'échelle, sans que les performances de la plate-forme soient
limitées par celle du nœud en charge de l'ordonnancement. Dans
ce papier, nous présentons un état de l’art sur les algorithmes
d'ordonnancement et d'équilibrage de charge destinés pour les
Clouds. Nous proposons comme synthèse une classification de ces
algorithmes sur la base de critères et de dimensions que nous
avons définis à cet effet.
Index Termsinformatique en nuage, ordonnancement des
tâches, équilibrage de charge, tolérance aux pannes, fiabilité.
I. INTRODUCTION
Les systèmes distribués à grande échelle ont gagné de
l’attention depuis les années 90 en raison de la croissance
d’internet, et la popularité des grilles de calcul et des Clouds
composées de milliers d’ordinateurs. Cet ensemble de
machines interconnectées permet d’offrir à ses utilisateurs une
capacité de calcul importante.
Dans le contexte des plates-formes de calcul à grande
échelle, dans laquelle les nœuds rejoignent et quittent
dynamiquement la plate-forme à des instants arbitraires
(problème en-ligne). Cette dynamicité peut être volontaire
pour réaliser une opération de maintenance et/ou extension, ou
accidentel en cas de défaillance matérielle ou logicielle. La
prise en compte de cette volatilité est donc un enjeu majeur
pour l’utilisation efficace de ces plates-formes.
Un contrôle centralisé de ce type des plates-formes n’est
pas recommandable. En effet, la quantité des informations qui
doivent être surveillées et traitées en temps réel augmente
considérablement avec la croissance du système. Ceci peut
poser un problème de congestion au niveau du nœud chargé
par les tâches de gestion. De plus, une panne au niveau de ce
nœud provoquera l’effondrement du système. Par conséquent,
la centralisation limite la capacité à passer à l’échelle.
Pour prendre en charge la volatilides plates-formes de
calcul à grande échelle, il est nécessaire de décentraliser le
traitement de certaines tâches de gestion, notamment la
soumission de tâches, leur ordonnancement, leur déploiement,
la surveillance de leur bon fonctionnement, ainsi que leur
terminaison. Afin de répondre à ce besoin, l’un des défis
importants est de concevoir des algorithmes décentralisés.
Dans le cadre de ce travail, nous avons abordé l’un des
problèmes les plus critiques dans le domaine du calcul
distribué, à savoir, l’ordonnancement dans une plate-forme
Cloud. Cette plate-forme est caractérisée par être fortement
perturbée, il est essentiel de construire des ordonnancements
qui doivent d’une part optimiser les fonctions objectifs
classiques et d’autre part résister aux perturbations dues au
caractère volatil des ressources.
La grande majorité des ordonnanceurs des solutions
populaires suit une approche centralisée [15, 9, 28] ou
hiérarchique [13], l’ordonnanceur réside respectivement sur
un nœud, ou sur un nombre restreint de nœuds organisés de
manière hiérarchique.
Dans ce papier, nous présentons une synthèse des
algorithmes d’ordonnancement des tâches dans un
environnement Cloud les plus cités en littérature. Ensuite, nous
proposons une classification de ces algorithmes.
L’article est organisé comme suit. La deuxième section
passe en revue les algorithmes d’ordonnancement des tâches
dans un environnement Cloud. La troisième section introduit
une classification critique et une comparaison entre ces
algorithmes sur la base de critères que nous avons définis à cet
effet. La conclusion et les travaux futurs font l’objet de la
quatrième section.
II. TRAVAUX EXISTANTS
Le problème d’ordonnancement des tâches étant un
problème relativement ancien, c’est l’action d’assigner des
ressources au traitement des tâches. Beaucoup d’approches ont
été proposées pour le résoudre dans différentes plates-formes.
Casavant et Kuhl [5] ont défini une taxonomie largement
adoptée par la communauté scientifique (Fig. 1). Il existe de
nombreux algorithmes d'ordonnancement, allant de schémas
statiques [7] (ou encore "hors-ligne", lorsque le système
dispose de toutes les tâches à allouer des le début) très simples
Z. BOUAFIA Algorithmes d’ordonnancement des tachches dans un environnement Cloud 72
Revue Méditerranéenne des Télécommunications Vol. 5, N° 2, June 2015 Mediterranean Telecommunication Journal
Ordonnancement
Statique
Dynamique
Optimal
Sous-Optimal
Centralisé
Distribué
Heuristique
Coopératif
Non-coopératif
Optimal
Sous-Optimal
Approximatif
Heuristique
aux algorithmes dynamiques [29] (ou encore "en-ligne",
lorsque l’ordonnancement suit le changement du système ainsi
que l’arrivée des tâches) les plus complexes.
Dans [3], les auteurs présentent une étude comparative de
différentes heuristiques, trouvées dans la littérature, pour traiter
le problème d’ordonnancement statique des tâches
indépendantes sur des plates-formes hétérogènes et distribuées.
Un résu et une classification des heuristiques pour
l’ordonnancement dynamique ont été détaillés dans [24]. Dans
[21], les auteurs traitent le problème d’ordonnancement
dynamique des tâches indépendantes sur des plates-formes
hétérogènes et distribuées.
Les premières infrastructures distribuées à grande échelle
sont les grilles. Les grilles de calcul disposent des algorithmes
sophistiqués, visant à optimiser l’ordonnancement de tâches
impliquant des calculs massivement parallèles (tels que [2, 1,
26]).
Fig. 1. Taxonomie des algorithmes d’ordonnancement.
Avec l’apparition de l’informatique en nuage (ou Cloud
computing) [8], plusieurs algorithmes d’ordonnancement ont
été adaptés pour ce type de plate-forme. [15, 9, 28] étudient le
problème d’ordonnancement des tâches dans les Clouds et
proposent différentes techniques pratiques mises en œuvre pour
résoudre ce problème.
La plupart des algorithmes d’ordonnancement dans les
Clouds vise à remplir un ou plusieurs objectifs. Certains
objectifs touchent à la rapidité de traitement des tâches et dans
les délais [15, 16]. D’autres sont liés à la répartition équitable
des ressources entre les tâches [9]. D’autres encore sont relatifs
à l’utilisation optimale des ressources, par exemple
l’équilibrage de la charge de travail entre les ressources [16],
ou au contraire sa consolidation sur un nombre restreint de
ressources afin de maximiser l’utilisation de ces dernières [19,
11]. D’autres encore visent à respecter des contraintes de
placement, qui peuvent par exemple découler des affinités ou
des antagonismes entre les tâches. Enfin, certains objectifs
peuvent consister à respecter d’autres types de contraintes,
comme les contraintes d’antériorité entre les tâches. Dans cette
section, nous allons présenter quelques algorithmes
d’ordonnancement des tâches dans les Clouds. Ces algorithmes
se sont focalisés essentiellement sur la rapidité d’exécution des
tâches et l’optimisation de la consommation électrique.
[11] vise à optimiser la consommation électrique de
l’infrastructure en fonction de divers facteurs tels que le coût
de l’énergie, le taux d’émission de CO2, la charge de travail et
la puissance du processeur. L’algorithme d’ordonnancement
mis en œuvre par cette approche utilise au maximum les
ressources d’un nombre restreint de nœuds. La consolidation
permet d’utiliser moins de nœuds, et donc de recourir à une
climatisation moins puissante. Ceci entraîne une consommation
électrique plus faible (vu qu’il y a moins de nœuds à alimenter
et à refroidir), d’où un coût financier moindre. En somme, cela
permet de réaliser des économies d’échelle.
[17] a introduit une nouvelle approche nommée EnaCloud,
elle permet le placement dynamique des applications dans la
plate-forme (Cloud) par l’utilisation des machines virtuelles,
avec la prise en charge de la consommation électrique.
L’étude de [28] a mis en évidence le problème
d’ordonnancement des tâches dans les Clouds. Ils ont proposé
un mécanisme d’apprentissage par renforcement
(Reinforcement Learning RL) pour aider l’ordonnanceur dans
la prise de décision avec tolérance aux pannes.
[16] présente un algorithme d’ordonnancement dynamique
des machines virtuelles avec optimisation de la consommation
électrique dans les Clouds privés. L’algorithme se concentre
sur la réduction du temps de réponse, l’économie d’énergie et
l’équilibrage de charge.
De plus, le travail [14] vise aussi à optimiser la
consommation électrique des centres de données. Il propose un
algorithme d’ordonnancement dynamique des machines
virtuelles nommé Round-Robin (DRR) qui réduit efficacement
la consommation d’énergie.
L’approche présentée dans [25] a proposé deux algorithmes
d’ordonnancement des tâches dans les Clouds privés (les
ressources sont limitées), en tenant compte la complexité de
calcul et la capacité des nœuds de calcul. Le premier
algorithme est nommé Longest Cloudlet Fastest Processing
Element (LCFPE) les tâches sont d’abord triées par coût
décroissant. Le second algorithme est nommé Shortest
Cloudlet Fastest Processing Element (SCFPE) où les tâches
sont d’abord triées par coût croissant.
L’étude de [23] a proposé un algorithme d’ordonnancement
des tâches en fonction de crédit pour une utilisation optimale
des ressources en Cloud. Le problème d’ordonnancement est
considéré comme un problème d’affectation en mathématique
la matrice de coût donne le coût d’une tâche à attribuer à
une ressource.
Z. BOUAFIA Algorithmes d’ordonnancement des tachches dans un environnement Cloud 73
Revue Méditerranéenne des Télécommunications Vol. 5, N° 2, June 2015 Mediterranean Telecommunication Journal
La stratégie de [27] se fonde sur un mécanisme de
confiance cognitive pour assurer un ordonnancement fiable et
dynamique des tâches. Ce mécanisme permet de réduire la
probabilité d’affectation erronée des tâches aux ressources.
L’algorithme Cloud-DLS proposé assure l’exécution des tâches
de manière sécurisée.
Dans [12], les auteurs ont proposé une stratégie
d’ordonnancement sur les Clouds afin d’assurer le partage des
ressources entre les tâches de différentes priorités. Cette
stratégie fonctionne sur le principe de ne pas pénaliser les
tâches de basse priorité.
De plus, le travail [4] vise aussi l’ordonnancement des
tâches de basse priorité sur les Clouds. Deux algorithmes ont
été proposés dans le cadre de ce travail. Le premier algorithme
se base sur la date de fin des tâches (Earliest Deadline First
EDF) pour un système moins chargé. Le second algorithme est
nommé V-Dover destiné pour un système surchargé.
Une autre approche a été proposée par [6] basée sur les
réseaux de neurones artificiels. Le Modèle ANN apprend
automatiquement via des ensembles de données régulièrement
mises à jour, et il fournie des prévisions fiables afin de : (1)
mieux exploiter les ressources disponibles, (2) minimiser le
temps d’exécution global des tâches, (3) Réduire les coûts.
Zomaya et Lee [18] abordent le problème de performance
d’exécution des tâches dans les Grilles. Ils ont proposé
l’utilisation des ressources de Cloud pour assurer le -
ordonnancement des tâches retardataires dans les délais
prévus.
Les algorithmes génétiques ont déjà été utilisés en
ordonnancement des tâches dans un environnement Cloud. Par
exemple dans [30] les auteurs utilisent un algorithme génétique
pour ordonnancer les tâches indépendantes sur une plate-forme
Cloud (JLGA). Le but de cet algorithme est non seulement la
minimisation du temps d’exécution global des tâches
(makespan), mais aussi l’équilibrage de charge entre
l’ensemble des nœuds du système.
La majorité des algorithmes d’ordonnancement des tâches
dans les Clouds sont de nature centralisée [9, 28, 25, 23], qui
malgré leurs efficacités ils ne sont pas aptes à réagir
rapidement sur les plates-formes à grande échelle lorsque
certains nœuds se trouvent surutilisés, ce qui risque de conduire
à une violation des niveaux de qualité de service. De plus, la
durée des étapes d’ordonnancement est d’autant plus
significative que le nombre de nœuds à gérer est grand. Enfin,
le nœud hébergeant l’ordonnanceur représente un point unique
de défaillance : s’il tombe, ou s’il n’est plus connecte aux
autres nœuds au travers du réseau, il n’y a plus
d’ordonnancement possible.
Une façon de traiter les problèmes évoqués jusqu’à présent
consiste à décentraliser l’ordonnancement, afin que ce dernier
puisse continuer même en cas de défaillance d’un nœud. Deux
approches ont été proposées dans la littérature : approche
hiérarchique et approche multi-agents.
A. Approche hiérarchique
Une première manière de décentraliser l’ordonnancement
est de recourir à une approche hiérarchique [15, 13]. Dans cette
approche, l’ordonnanceur est formé de plusieurs composantes
organisées de manière hiérarchique (Fig. 2). Chaque
composante est chargée de gérer un sous ensemble de la plate-
forme. Une telle approche constitue un compromis entre
l’approche centralisée et l’approche multi-agents qui est plus
décentralisée.
Fig. 2. Approche hiérarchique.
Nœuds dédié à l’ordonnancement.
Nœud de calcul.
Dans [13], deux algorithmes d’ordonnancement dynamique
des tâches dépendantes suivent une approche hiérarchique. Ces
algorithmes ajustent l’allocation des ressources de manière
dynamique en fonction de l’information mise à jour sur l’état
actuel des ches en exécution. Ils se basent sur une approche
distribuée. Le gestionnaire de chaque Cloud communique avec
les gestionnaires des autres Clouds pour la collecte
d’informations sur l’état des ressources et pour l’affectation des
tâches au Cloud adéquat.
En outre, Dans [15], les auteurs ont abordé le problème
d’exécution des tâches dans les Clouds. Ils ont proposé un
mécanisme d’ordonnancement des tâches avec préemption
pour améliorer l’utilisation des ressources et minimiser le
temps d’exécution moyen des tâches. Deux algorithmes
d’ordonnancement dynamique avec rétroaction ont été
proposés pour ce mécanisme.
La structure hiérarchique du modèle facilite les flux
d’informations à travers les nœuds de l’arbre. Cependant,
l’architecture demeure partiellement centralisée, puisque le
chef de groupe a une vision globale (bien que simplifiée) de
toute l’infrastructure, ce qui peut limiter le passage à l’échelle.
Z. BOUAFIA Algorithmes d’ordonnancement des tachches dans un environnement Cloud 74
Revue Méditerranéenne des Télécommunications Vol. 5, N° 2, June 2015 Mediterranean Telecommunication Journal
B. Approche Multi-agents
D’autres propositions ont été élaborées afin de décentraliser
encore plus le travail d’ordonnancement ; ces approches sont
qualifiées d’approches multi-agents, car elles recourent à
l’installation d’un agent logiciel sur un ensemble des nœuds de
l’infrastructure à gérer, le travail d’ordonnancement étant
réparti entre les agents [20, 10, 22].
Cependant, certaines algorithmes nécessitent d’avoir des
informations sur toute l’infrastructure pour prendre une
décision, et/ou recourent à un nœud de service centralisé. Ce
nœud de service n’est pas tolérant aux pannes, et sa défaillance
met un point d’arrêt à l’ordonnancement.
III. CLASSIFICATION DES ALGORITHMES
D’ORDONNANCEMENT DES TACHES SUR LES
CLOUDS
On présente dans ce qui suit une liste des caractéristiques
permettant de montrer les différences majeures qui pourraient
exister entre les algorithmes d’ordonnancement passés en
revue.
A. Politique d’ordonnacement
Une fois qu’un ordonnancement est déclenché, celui-ci se
conforme à une certaine politique d’ordonnancement, qui
définit quelles ressources assigner en priorité à une tâche
donnée. Il existe plusieurs politiques d’ordonnancement, à
savoir « Premier ajustement », « Meilleur ajustement »,
« Aléatoire », « Equilibrage de charge », « Consolidation ».
Premier ajustement : La politique de premier
ajustement (ou first fit) est la plus simple, puisqu’elle a
pour objectif de sélectionner le premier nœud avec
suffisamment de ressources disponibles pour exécuter
une tâche donnée.
Meilleur ajustement : Une autre approche, dérivée de
la politique de premier ajustement, consiste à lister
tous les nœuds pouvant exécuter une tâche donnée et à
en choisir le meilleur en fonction de l’heuristique
utilisée.
Aléatoire : elle consiste à lister tous les nœuds pouvant
exécuter une tâche donnée et à en choisir un de
manière aléatoire.
Equilibrage de charge : Plutôt que de sélectionner un
nœud au hasard, il peut être judicieux de chercher à
équilibrer la charge de travail sur l’ensemble des
nœuds, Dans ce cas, les nœuds les moins chargés sont
utilisés en priorité pour exécuter les tâches.
Consolidation : À l’inverse de l’équilibrage de charge,
la consolidation vise à utiliser au maximum les
ressources d’un nombre restreint de nœuds.
B. Type d’ordonnacement
L’ordonnancement peut être statique ou dynamique.
L’ordonnancement est qualifié de statique lorsque chaque tâche
demeure sur le même nœud de calcul du début à la fin de son
traitement. Le placement initial des tâches tient compte de la
demande en ressources formulée par les utilisateurs, et non pas
des besoins réels en ressources de ces tâches.
L’ordonnancement est qualifié de dynamique lorsque les tâches
peuvent être migrées d’un nœud de calcul à un autre durant
leur traitement, ce qui se fait en tenant compte de leurs besoins
réels en ressources.
C. Architecture d’ordonnancement
Trois architectures ont été avancées : centralisée,
Hiérarchique et multi-agents.
D. Dépendance des tâches
Une application parallèle est souvent représentée par un
ensemble des tâches qui ont des relations de précédences entre
elle ou indépendantes. Plusieurs algorithmes
d’ordonnancement ont été proposés pour prendre en
considération les relations de précédences. Une représentation
des relations de précédences fréquemment utilisée en
ordonnancement est le « Directed Acyclic Graph » (DAG).
E. Heuristique utulisée
Il existe de nombreuses heuristiques différentes pour
réaliser l’ordonnancement des tâches dans un environnement
Cloud. L’objectif de ces heuristiques est de trouver des
solutions de qualité acceptable en un temps raisonnable.
L’efficacité d’une heuristique réside dans sa capacité de
s’adapter aux instances générales du problème.
Le (Tableau. 1) résume la catégorisation des algorithmes
par rapports aux dimensions données précédemment. Tout
d’abord, les ordonnanceurs des tâches sont très majoritairement
centralisés, ce qui limite leur passage à l’échelle. Autrement
dit, ils ne sont pas aptes à ordonnancer un grand nombre des
tâches dans un temps raisonnable, surtout s’ils doivent pour
cela prendre en considération les ressources d’un nombre
conséquent de nœuds.
Il existe de nombreuses heuristiques différentes proposées
pour réaliser l’ordonnancement des tâches dans une plate-
forme Clouds. Leur principe est de viser un ou plusieurs
objectifs, mais la plupart des heuristiques visent à obtenir le
meilleur temps d’exécution et une économie d’énergie, mais
chacune de ces heuristiques n’est pas sans défauts.
Quelques algorithmes comme [12, 4, 18] respectent les
deadlines, alors que la plupart des algorithmes ne les respectent
pas. Ce deadline associé à chaque tâche correspond à la date de
fin dans l'ordonnancement.
Plusieurs algorithmes ont été proposés afin de décentraliser
l’ordonnancement [15, 13, 10, 22]. Cependant, la quasi-totalité
des prototypes mis en œuvre continuent d’utiliser des
mécanismes partiellement centralisés et ne répondent que de
manière limitée aux besoins de réactivité et de passage à
l’échelle.
Enfin, il est important de noter qu’il reste beaucoup à faire
pour améliorer certaines performances, surtout en matière
d’équilibrage de charge et de qualité de service.
1 / 9 100%

3095-9570-1-SM

Telechargé par Yuri Orlove
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !