
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.