departement d'informatique these · 2017. 2. 9. · a mes amies et mes coll egues a tous ceux...
TRANSCRIPT
DEPARTEMENT D'INFORMATIQUE
THESE
Présentée par
DJEBBAR Esma Insa f
Pour obtenir
LE DIPLOME DE DOCTORAT EN SCIENCES
Filière: Informatique
Spécialité: Systèmes Informatiques Répartis
Soutenue le : 05 / 12 / 2016
Devant les membres du jury :
Directeur de thèse : BELALEM Ghalem Professeur, Université d’Oran 1, Ahmed Ben Bella
Président : HAFFAF Hafid Professeur, Université d’Oran 1, Ahmed Ben Bella
Examinateurs : AMINE Abdelmalek Professeur, Université Tahar Moulay de Saida
EL BERRICHI Zakaria Professeur, Université Djillali Liabes, Sidi Bel-Abbes
FARAOUN Mohamed Kamel Professeur, Université Djillali Liabes, Sidi Bel-Abbes
GUEZOURI Mustapha Professeur, Université d'Oran1, Ahmed Ben Bella
OOPPTTIIMMIISSAATTIIOONN DD’’OORRDDOONNNNAANNCCEEMMEENNTT EETT DD’’AALLLLOOCCAATTIIOONN
DDEE RREESSSSOOUURRCCEESS DDAANNSS LLEESS CCLLOOUUDD CCOOMMPPUUTTIINNGG
i
Les savants des temps passes et des nations revolues n’ont cesse de composer des
livres. Ils l’ont fait pour leguer leur savoir a ceux qui les suivent.
Ainsi demeurera vive la quete de la verite.
Al-Khwarizmi
ii
Dedicaces
A ma famille et mes parents
A mon frere, mes sœurs et ma niece Anfel
A mes amies et mes collegues
A tous ceux qui m’ont encourage et aide
iii
Remerciements
Je remercie Allah de m’avoir donner le courage et la volonte ainsi que la conscience
et la patience d’avoir pu terminer ma these de Doctorat.
Je tiens a exprimer mes vifs remerciements a mon encadreur Mr Pr. Belalem
Ghalem pour m’avoir donner l’opportunite de realiser ce sujet sous sa direction, la
confiance faite ainsi que ses conseils fructueux, et son temps consacre tout au long
du travail.
Je tiens a remercier Mr Pr. Haffaf Hafid d’avoir accepte d’etre notre president de
jury ainsi qu’aux membres Mr Pr. El Berrichi Zakaria, Mr Pr. Amine AbdelMalek,
Mr Pr. Faraoun Mohamed Kamel et Mr Pr. Guezouri Mustapha qui nous honorent
de leurs presences en tant qu’examinateurs.
Ces remerciements seraient incomplets, si je n’en adressais pas a l’ensemble des
membres du laboratoire d’informatique de l’universite d’Oran1 LIO.
Enfin, un merci particulier a tous ce qui m’ont soutenu de pres ou de loin par
leurs soutiens et encouragements.
Resume
Le Cloud computing est une technologie de calcul et de stockage naissante qui se
consolide rapidement comme une grande etape dans le developpement et le deploie-
ment d’un nombre croissant des applications reparties. L’ordonnancement de taches
et d’allocation de ressources dans les systemes de type Cloud computing suscite une
attention croissante avec l’augmentation de la popularite de Cloud. Dans les travaux
de cette these, nous proposons trois strategies d’ordonnancement et d’allocation de
ressources, la premiere strategie d’ordonnancement est basee sur la replication des
donnees pour les workflows scientifiques, la seconde strategie d’ordonnancement se
focalise sur le groupement de taches et la derniere strategie d’ordonnancement de
taches et d’allocation de ressources est destinee aux Big data. Nos propositions
permettent de reduire le temps de reponse moyen des taches, de diminuer le depla-
cement des donnees pour les applications scientifiques, et de reduire le cout global
d’utilisation de ressources.
Mots cles : Cloud computing, ordonnancement des taches, allocation des res-
sources, workflows, groupement de taches, Big data.
Abstract
Cloud computing is an emerging computing and storage technology that is ra-
pidly consolidating as a great step in the development and deployment of an increa-
sing number of distributed applications. The task scheduling and resource allocation
in Cloud computing systems are receiving increasing attention with the rise in the
popularity of Cloud. In this work, we propose three strategies of scheduling and
resource allocation, the first scheduling strategy based on the replication of data
for scientific workflows, the second scheduling strategy is based on the grouping of
tasks and the latest strategy of task scheduling and resource allocation is intended
for the big data. Our strategies reduce the average response time of tasks, minimize
data movement for scientific applications, and reduce the overall cost of resource
usage.
Keywords : Cloud computing, tasks scheduling, ressource allocation, work-
flows, tasks grouping, Big data.
TABLE DES MATIERES
1 Introduction 4
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Problematique et motivation . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Organisation de la these . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Cloud computing 9
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Les concepts du Cloud computing . . . . . . . . . . . . . . . . . . . . 10
2.2.1 La virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 La grille informatique . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 L’informatique utilitaire (Utility computing) . . . . . . . . . 14
2.3 Les technologies connexes liees au Cloud computing . . . . . . . . . 14
2.4 Les principales caracteristiques des Clouds . . . . . . . . . . . . . . . 14
2.5 Modeles de deploiement . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Modeles de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6.1 SaaS (Software as a Service) . . . . . . . . . . . . . . . . . . 18
2.6.2 IaaS (Infrasture as a Service) . . . . . . . . . . . . . . . . . . 19
2.6.3 PaaS (Platform as a Service) . . . . . . . . . . . . . . . . . . 19
2.7 Aborder un projet de migration vers le Cloud . . . . . . . . . . . . . 20
2.8 Avantages du Cloud computing . . . . . . . . . . . . . . . . . . . . . 21
2.8.1 Avantages au niveau de la strategie . . . . . . . . . . . . . . . 21
2.8.2 Avantages au niveau des fonctions et des processus metier . . 22
2.8.3 Avantages operationnels . . . . . . . . . . . . . . . . . . . . . 23
2.9 Securite dans les Cloud computing . . . . . . . . . . . . . . . . . . . 24
2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3 Probleme d’ordonnancement et d’allocation de ressources 27
TABLE DES MATIERES vi
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Ordonnancement : Concepts et definitions . . . . . . . . . . . . . . . 28
3.3 Les problemes d’ordonnancement en ligne et hors ligne . . . . . . . . 30
3.4 Les criteres d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 L’ordonnancement et la virtualisation dans le Cloud computing . . . 33
3.6 Les principaux algorithmes d’ordonnancement . . . . . . . . . . . . . 35
3.7 Les algorithmes d’ordonnancement pour les applications scientifiques 38
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4 Strategies d’ordonnancement et d’allocation de ressources pour les
Clouds scientifiques 44
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Strategie d’ordonnancement basee sur la replication de donnees . . . 45
4.2.1 Etape de construction . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Etape d’execution . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.3 Service de gestion de replication dynamique . . . . . . . . . . 60
4.3 Strategie d’ordonnancement basee sur le groupement de taches . . . 63
4.3.1 Etape de construction . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2 Etape d’ordonnancement . . . . . . . . . . . . . . . . . . . . 66
4.4 Strategies d’ordonnancement et d’allocation de ressources pour les
Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4.1 La premiere variante OADTV . . . . . . . . . . . . . . . . . . 67
4.4.2 La deuxieme variante OAAMV . . . . . . . . . . . . . . . . . 69
4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5 Experimentation et evaluation 75
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2 Langage et environnements de travail . . . . . . . . . . . . . . . . . . 76
5.2.1 Langage de programmation Java . . . . . . . . . . . . . . . . 76
5.2.2 Environnements de developpement . . . . . . . . . . . . . . . 76
5.3 Resultats experimentaux . . . . . . . . . . . . . . . . . . . . . . . . . 79
TABLE DES MATIERES vii
5.3.1 Resultats experimentaux 1 : Strategie d’ordonnancement ba-
see sur la replication de donnees . . . . . . . . . . . . . . . . 79
5.3.2 Resultats experimentaux 2 : Strategie d’ordonnancement ba-
see sur le groupement de taches . . . . . . . . . . . . . . . . . 88
5.3.3 Resultats experimentaux 3 : Strategies d’ordonnancement et
d’allocation de ressources pour les Big Data . . . . . . . . . . 92
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6 Conclusion generale 99
Bibliographie 102
A Simulateurs de Cloud computing 111
A.1 Simulateur CloudSim [12] . . . . . . . . . . . . . . . . . . . . . . . . 111
A.2 EMUSIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
A.3 Simulateur GreenCloud . . . . . . . . . . . . . . . . . . . . . . . . . 113
A.4 Simulateur GroudSim . . . . . . . . . . . . . . . . . . . . . . . . . . 114
A.5 iCanCloud [60] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
B Simulateur CloudSim : Developpement et experimentation 116
B.1 Architecture detaillee de CloudSim . . . . . . . . . . . . . . . . . . . 116
B.2 Modelisation du Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . 117
B.3 Politiques d’ordonnancement . . . . . . . . . . . . . . . . . . . . . . 119
B.3.1 Etape pour definir la politique SPACE SHARED . . . . . . . 119
B.3.2 Etape pour definir la politique TIME SHARED . . . . . . . . 120
Table des figures
2.1 L’environnement de Cloud computing [66] . . . . . . . . . . . . . . . 11
2.2 La virtualisation dans les environnements de Cloud [31] . . . . . . . 13
2.3 L’evolution vers le Cloud computing dans l’hebergement d’applica-
tions logicielles [75] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Les modeles de deploiement dans le Cloud computing . . . . . . . . 17
2.5 Les modeles de services dans le Cloud computing [32] . . . . . . . . 17
3.1 Le resultat d’execution des taches selon Min-min . . . . . . . . . . . 36
3.2 Le resultat d’execution des taches selon Max-min . . . . . . . . . . . 37
3.3 L’execution de plusieurs workflows sur plusieurs Clouds [22] . . . . . 39
4.1 Vue globale de la strategie utilisee . . . . . . . . . . . . . . . . . . . 46
4.2 Diagramme d’activite de la phase de mise en place et clusterisation
de la matrice de dependance . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Diagramme d’activite pour le partitionnement de la matrice de de-
pendance clusterisee . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4 Diagramme d’activite de la phase de partitionnement et distribution
des datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5 Diagramme d’activite de la phase d’ordonnancement et execution des
taches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6 Diagramme d’activite pour la gestion des datasets generes avec l’al-
gorithme des K-means . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7 Diagramme d’activite pour la phase de la replication dynamique . . 63
4.8 Exemple de construction de la matrice de dependance TM . . . . . 64
4.9 Exemple d’application de l’algorithme BEA sur la matrice de depen-
dance TM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.10 Exemple de decoupage de la matrice de dependance clusterisee . . . 65
4.11 Exemple d’affectation et d’ordonnancement des taches dans l’en-
semble des Datacenters . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Table des figures ix
4.12 Affectation et ordonnancement des taches . . . . . . . . . . . . . . . 66
4.13 La premiere variante OADTV d’ordonnancement et d’allocation de
ressources dans les Cloud computing . . . . . . . . . . . . . . . . . . 68
4.14 La deuxieme variante OAAMV d’ordonnancement et d’allocation de
ressources dans les Cloud computing . . . . . . . . . . . . . . . . . . 70
4.15 Le resultat d’execution des taches . . . . . . . . . . . . . . . . . . . . 73
5.1 Les principales classes de CloudSim [56] . . . . . . . . . . . . . . . . 79
5.2 Creation d’un nouveau workflow . . . . . . . . . . . . . . . . . . . . 80
5.3 Deploiement de la matrice de dependance . . . . . . . . . . . . . . . 81
5.4 Clusterisation de la matrice de dependance . . . . . . . . . . . . . . 81
5.5 Partitionnement et distribution des donnees . . . . . . . . . . . . . . 82
5.6 Gestion des donnees generees . . . . . . . . . . . . . . . . . . . . . . 82
5.7 Le temps de reponse moyen . . . . . . . . . . . . . . . . . . . . . . . 84
5.8 Le gain obtenu pour le temps de reponse . . . . . . . . . . . . . . . . 84
5.9 Le nombre de deplacement des donnees . . . . . . . . . . . . . . . . 85
5.10 Le gain obtenu pour le deplacement des donnees . . . . . . . . . . . 86
5.11 Le cout de la replication . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.12 Le gain obtenu pour le cout de la replication . . . . . . . . . . . . . 87
5.13 Le cout global engendre . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.14 Le temps de reponse moyen . . . . . . . . . . . . . . . . . . . . . . . 90
5.15 Le temps de reponse moyen pour des taches>=100 . . . . . . . . . . 90
5.16 Le cout de traitement moyen des Cloudlets . . . . . . . . . . . . . . 91
5.17 Le cout de traitement moyen pour des taches>=100 . . . . . . . . . 92
5.18 Le resultat de temps de reponse dans l’execution des taches . . . . . 94
5.19 Le gain obtenu pour le temps de reponse . . . . . . . . . . . . . . . . 94
5.20 Le resultat de temps de reponse pour l’execution des taches . . . . . 95
5.21 Le gain obtenu pour le temps de reponse . . . . . . . . . . . . . . . . 96
5.22 Le temps de reponse moyen des Cloudlets . . . . . . . . . . . . . . . 97
5.23 Le cout moyen d’utilisation de ressources . . . . . . . . . . . . . . . 97
A.1 Organisation interne EMUSIM . . . . . . . . . . . . . . . . . . . . . 113
Table des figures x
A.2 Architecture GreenCloud . . . . . . . . . . . . . . . . . . . . . . . . 114
A.3 Architecture iCanCloud [60] . . . . . . . . . . . . . . . . . . . . . . . 115
B.1 Architecture de Cloudsim [12] . . . . . . . . . . . . . . . . . . . . . . 117
B.2 Effets des politiques d’ordonnancements sur l’execution des taches :
(a) Space-shared for VMs and Tasks, (b) Space-share for VMs and
Time-shared for tasks, (c) Time-shared for VMs, Space-shared for
tasks, and (d) Time-shared for both VMs and Tasks . . . . . . . . . 121
Liste des tableaux
3.1 Le temps d’execution des taches (Algorithme Min-min) . . . . . . . 36
3.2 Comparaison entre les algorithmes d’ordonnancement des workflows 41
4.1 Valeurs de λini par rapport aux types d’applications . . . . . . . . . 52
5.1 Les parametres de simulation pour le temps de reponse . . . . . . . . 83
5.2 Les parametres de simulation pour le nombre de deplacements . . . 85
5.3 Resultat de simulation de la premiere strategie (OADTV) . . . . . . 93
5.4 Resultat de simulation de la deuxieme strategie (OAAMV) . . . . . 95
Glossaire
QoS : Quality of Service
NIST : National Institute of Standards and Technology
API : Application Programming Interface
IT : Information Technology, Internet Technology
CPU : Central Processor Unit
VPN : Virtual Private Network
SaaS : Software as a Service
PaaS : Platform as a Service
IaaS : Infrastructure as a Service
ROI : Return On Investment
DSI : Direction du systeme d’information
CSC : Conseil Service Collectivites
WAN : Wide Area Network
ISACA : Information Systems Audit and Control Association
CSA : Cloud Security Alliance
FAI : Fournisseur d’Acces a Internet
OTP : One Time Password (mot de passe a usage unique)
FCFS : First Come First Served
SJF : Short Job First
SLA : Service Level Agreement
HPC : High Performance Computer
UML : Unified Modeling Langage
FCFS : First Come First Served
FIFO : First In First Out
RR : Round Robin
DAG : Directed Acyclic Graph (graphe oriente acyclique)
Liste des travaux
1. Publications
Esma Insaf Djebbar, Ghalem Belalem and Merien Benadda. Task scheduling
strategy based on data replication in scientific Cloud workflows. Multiagent
and Grid Systems : An International Journal, vol. 12, no. 1, pages 55-67, 2016.
2. Conferences
Esma Insaf Djebbar and Ghalem Belalem. Optimization of Tasks Schedu-
ling by an Efficacy Data Placement and Replication in Cloud Computing.
In Algorithms and Architectures for Parallel Processing - 13th International Confe-
rence, ICA3PP 2013, Vietri sul Mare, Italy, December 18-20, 2013, Proceedings,
Part II, LNCS 8286, pages 22-29, 2013.
Esma Insaf Djebbar and Ghalem Belalem. Tasks Scheduling and Resource
Allocation for high Data Management in Scientific Cloud computing en-
vironment. The International Conference on Mobile, Secure and Programmable
Networking (MSPN’2016), Paris, France, LNCS 10026, June 1-3, 2016.
Esma Insaf Djebbar and Ghalem Belalem. An effective Task Scheduling
Strategy in multiple Data centers in Cloud Scientific Workflow. The 39th
International ICT Convention on Information and Communication Technology,
Electronics and Microelectronics (MIPRO 2016), Rijeka, Croatia, IEEE, pages 214-
217, May 30-June 3, 2016.
Liste des tableaux 3
3. Encadrements
Mokhtari Houari, Mederrek Ali et Aissa Berroudja Youssouf. Un algorithme
d’ordonnancement des taches dans les Cloud computing, Ecole Normale Su-
perieure d’Enseignement Technologique d’Oran, Licence d’enseignement secondaire
en Informatique, 2015.
Boudjenah Khadidja, Chermak Saadia et Drief Meriem Programmation pa-
rallele des taches dans les Cloud computing, Ecole Normale Superieure d’En-
seignement Technologique d’Oran, Licence d’enseignement secondaire en Informa-
tique, 2016.
Chapitre 1
Introduction
Sommaire
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Problematique et motivation . . . . . . . . . . . . . . . . . . 5
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Organisation de la these . . . . . . . . . . . . . . . . . . . . . 8
1.1 Contexte
Le Cloud computing ou informatique en nuage est une infrastructure dans la-
quelle la puissance de calcul et le stockage sont geres par des serveurs distants
auxquels les usagers se connectent via une liaison Internet securisee. L’ordinateur de
bureau ou portable, le telephone mobile, la tablette tactile et autres objets connec-
tes deviennent des points d’acces pour executer des applications ou consulter des
donnees qui sont hebergees sur les serveurs. Le Cloud se caracterise egalement par
sa souplesse qui permet aux fournisseurs d’adapter automatiquement la capacite de
stockage et la puissance de calcul aux besoins des utilisateurs.
Le Cloud computing devient rapidement le standard de facto pour l’hebergement
et le fonctionnement des applications et des services logiciels a grande echelle sur
Internet. Beaucoup d’entreprises, d’individus et meme des secteurs gouvernemen-
taux se tournent vers l’environnement de Cloud en raison de plusieurs avantages que
ce nouveau paradigme offre, y compris la reduction des couts, l’evolutivite rapide,
la facilite de developpement, le stockage illimite, et l’accessibilite omnipresente. En
utilisant le paradigme du Cloud, les consommateurs de Cloud peuvent etre en me-
1.2. Problematique et motivation 5
sure de se concentrer davantage sur la fonctionnalite de l’application de base. Cloud
computing n’est pas une nouvelle technologie, mais une combinaison de technologies
existantes telles que le Web et la virtualisation. Par consequent, toute vulnerabilite
dans l’une de ces technologies sous-jacentes peut etre exploitee comme une attaque
de securite dans le Cloud.
La technologie de Cloud computing represente un nouveau paradigme pour la
fourniture de ressources informatiques. Ce paradigme facilite l’acces aux ressources
via le reseau pour reduire les couts associes a la gestion des ressources materielles
et logicielles. Il represente le reve de longue date d’envisager l’informatique comme
un service ou l’economie de principe a l’echelle aider a reduire efficacement le cout
des ressources informatiques. Le Cloud computing simplifie le temps d’approvi-
sionnement des processus de materiel, l’achat de materiel et le deploiement de la
consommation des logiciels. Par consequent, il promet un certain nombre d’avan-
tages pour le deploiement d’applications de donnees intensives, telles que l’elasticite
des ressources, le modele de cout de « pay-per-use », le faible temps sur le marche,
et la perception des ressources illimitees et l’evolutivite infinie. Par consequent, il
devient possible, au moins theoriquement, d’obtenir un debit continu illimite en
ajoutant des moyens de calcul si la charge de travail augmente.
1.2 Problematique et motivation
Les systemes de Cloud computing sont entrain de devenir une plate forme incon-
tournable pour les applications scientifiques. Ils permettent de faire l’allocation des
ressources informatiques. Lorsque ces ressources sont insuffisantes pour satisfaire
les demandes, des mecanismes d’ordonnancement sont necessaires. Les problemes
d’optimisation de taches et d’allocation de ressources dans un contexte heterogene
comme le Cloud sont des problemes difficiles. Ce probleme devient encore plus diffi-
cile lorsque les criteres a prendre en consideration pour l’optimisation sont multiples.
Les approches d’ordonnancement et d’allocation existantes sont souvent tres corre-
lees, qui ne prennent en compte que quelques criteres en meme temps, et quelles
sont, le plus souvent, adaptees a des applications de donnees de taille moyenne et
1.2. Problematique et motivation 6
par consequence ne passent pas a l’echelle.
La theorie d’ordonnancement de taches et d’allocation de ressources dans les
systemes de Cloud computing suscite une attention croissante avec l’augmentation
de la popularite de Cloud. En general, l’ordonnancement de taches est le processus
d’affectation des taches aux ressources disponibles sur la base des caracteristiques et
des conditions des taches. C’est un aspect important dans le fonctionnement efficace
du Cloud, car de divers parametres de taches doivent etre pris en consideration pour
un ordonnancement approprie. Les ressources disponibles devraient etre utilisees
efficacement sans affecter les parametres de service du Cloud.
Les ressources cibles dans un environnement de Cloud peuvent etre choisies selon
diverses algorithmes. La selection des ressources peut etre aleatoire, Round Robin,
ou gourmande (en capacite de traitement de la ressource et en temps d’attente) ou
par tous les autres moyens. La selection des taches peut etre basee sur FCFS (First
Come First served), SJF (Short Job First), priorite, ou en groupement brute de
taches. L’algorithme d’ordonnancement choisit la tache a executer et la ressource
correspondante ou on executera la tache. Car chaque strategie de selection a un
certain bienfait et pourrait etre effectuee dans cette direction pour extraire les points
avantageux de ces algorithmes et pour aboutir a une meilleure solution qui essaye
de reduire au minimum les inconvenients de l’algorithme resultant.
Les algorithmes existants sont benefiques aux utilisateurs ou aux fournisseurs
de service de Cloud, mais pas a tous les deux en meme temps. Chacun a leurs
propres avantages et inconvenients. Comme l’ordonnancement gourmant ou base sur
la priorite sont salutaires a l’utilisateur et l’ordonnancement base sur un groupement
de taches brutes est concerne par une meilleure utilisation des ressources disponibles
[10]. Mais l’ordonnancement base sur la priorite peut mener au long temps d’attente
pour des taches avec des basses priorites. L’ordonnancement gourmand du point de
vue d’utilisateurs mene au gaspillage des ressources, tandis que l’ordonnancement
gourmant de point de vue des fournisseurs de services peut mener a la deception
pour l’utilisateur sur les parametres de qualite de service (QoS). De meme, le groupe
de taches peut avoir l’inconvenient du temps considerable d’accomplissement des
taches dus a la formation des groupes. Ainsi nous pouvons remarquer que quelques
1.3. Contributions 7
strategies d’ordonnancement sont polarisees aux utilisateurs, tandis que d’autres
aux fournisseurs de services. Il y a une condition naissante a equilibrer ceci et qui
polarise pour former une solution d’ordonnancement.
Les nouvelles strategies proposees doivent surmonter les problemes poses par des
proprietes de reseau et des exigences d’utilisateur. Les nouvelles strategies peuvent
employer certains concepts d’ordonnancement conventionnels pour les fusionner
avec quelques strategies de reseau pour fournir la solution pour un meilleur et plus
efficace ordonnancement de taches.
1.3 Contributions
Dans les travaux de cette these, nous proposons trois strategies d’ordonnan-
cements, la premiere strategie d’ordonnancement est basee sur la replication des
donnees pour les workflows scientifiques, la seconde strategie d’ordonnancement est
basee sur le groupement de taches et la derniere strategie d’ordonnancement de
taches et d’allocation de ressources est destinee aux Big data. La premiere strategie
comporte trois phases, nommees respectivement, l’etape de construction, l’etape
d’execution et l’etape de replication. La deuxieme strategie est basee sur le groupe-
ment de taches, contient a son tour deux phases, nommees respectivement l’etape
de construction et l’etape d’ordonnancement. La troisieme strategie contient deux
sous strategies, la premiere basee sur des parametres d’optimisation de Cloud, tels
que la vitesse d’execution des machines virtuelles et la longueur des taches. La se-
conde est basee sur un arbre de construction des machines virtuelles. Ces travaux
visent, dans un premier temps, a reduire le temps de reponse et le temps d’attente
dans l’execution des taches. Ils visent, egalement, a minimiser le nombre de depla-
cements de donnees entre les datacenters, ainsi que le cout engendre de l’utilisation
de ressources dans la technologie Cloud.
1.4. Organisation de la these 8
1.4 Organisation de la these
Le reste de la these est organise comme suit : Dans le chapitre 2, nous presentons
les notions de base des concepts que nous jugeons necessaires a la comprehension
du contenu de cette these. Nous presentons d’abord les concepts du Cloud com-
puting, ensuite, nous presentons les notions fondamentales, leurs interpretations,
ainsi que les services offerts par ce nouveau concept. Enfin, nous terminons ce cha-
pitre par une discussion sur les menaces majeures a la securite des donnees et a
celles des applications en Cloud. Dans le troisieme chapitre, les concepts lies a l’or-
donnancement et l’allocation de ressources dans le Cloud computing sont abordes,
ainsi que quelques travaux realises dans ces domaines. Le quatrieme chapitre est
destine a la conception de nos contributions en prenant en compte la gestion de
l’ordonnancement des taches et l’allocation de ressources. Le cinquieme chapitre
s’appesantit, en premier lieu a la concretisation de la conception presentee en cha-
pitre 4, et en second lieu a l’affichage de quelques resultats d’experimentation et
leurs interpretations. Le chapitre 6 synthetise cette these par une conclusion qui
discute les contributions realisees dans le cadre de nos travaux de these, ainsi que
des perspectives des travaux futurs envisagees.
Chapitre 2
Cloud computing
Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Les concepts du Cloud computing . . . . . . . . . . . . . . . 10
2.2.1 La virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 La grille informatique . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 L’informatique utilitaire (Utility computing) . . . . . . . . . . 14
2.3 Les technologies connexes liees au Cloud computing . . . . 14
2.4 Les principales caracteristiques des Clouds . . . . . . . . . . 14
2.5 Modeles de deploiement . . . . . . . . . . . . . . . . . . . . . 16
2.6 Modeles de service . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6.1 SaaS (Software as a Service) . . . . . . . . . . . . . . . . . . . 18
2.6.2 IaaS (Infrasture as a Service) . . . . . . . . . . . . . . . . . . . 19
2.6.3 PaaS (Platform as a Service) . . . . . . . . . . . . . . . . . . . 19
2.7 Aborder un projet de migration vers le Cloud . . . . . . . . 20
2.8 Avantages du Cloud computing . . . . . . . . . . . . . . . . . 21
2.8.1 Avantages au niveau de la strategie . . . . . . . . . . . . . . . . 21
2.8.2 Avantages au niveau des fonctions et des processus metier . . . 22
2.8.3 Avantages operationnels . . . . . . . . . . . . . . . . . . . . . . 23
2.9 Securite dans les Cloud computing . . . . . . . . . . . . . . . 24
2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1 Introduction
L’informatique dans le nuage est plus connue sous sa forme anglo-saxonne :
« Cloud Computing », mais il existe de nombreux synonymes francophones
2.2. Les concepts du Cloud computing 10
tels que : « informatique dans les nuages », « infonuagique » (Quebec) ou encore
« informatique dematerialisee ». C’est un domaine qui regroupe les technologies
de distribution, a la demande et via Internet, de services informatiques logiciels
et materiels. L’idee principale de ces technologies est de distribuer des ressources
informatiques comme un service d’utilite publique, conformement a ce qui avait ete
imagine par les pionniers de l’informatique moderne, il y a plus de 40 ans [25]. Ce
principe de distribution publique de ressources informatiques anime egalement la
communaute de la grille informatique, si bien qu’il est parfois difficile de distinguer
la frontiere entre « Grille » et « Informatique dans le nuage ». Cette difficulte est
d’autant plus reelle que l’informatique dans les nuages, est un concept jeune, dont
les premieres implantations datent de 2006, et dont le developpement s’est accelere
durant ces dernieres annees.
Dans ce chapitre, nous allons presenter globalement l’historique du « Cloud
computing » et l’origine de ce terme, suivi d’une definition explicite de ce dernier qui
sera basee sur une analyse des definitions proposees par le monde academique. Nous
decrivons aussi la virtualisation qui est une partie essentielle dans « l’informatique
en nuages », sans oublier les services de Cloud, les types de Cloud et ses acteurs
ainsi que les avantages, les inconvenients, les objectifs principaux et les domaines
d’utilisation du Cloud computing.
2.2 Les concepts du Cloud computing
Il y a une certaine confusion dans meme l’esprit d’analyse des praticiens expe-
rimentes sur ce que constitue le Cloud computing et ce qui est le partage en temps
ou tout simplement une grande collection de serveurs distants. Cette confusion est
aggravee par un grand nombre de fournisseurs de services qui pretendent donner le
meilleur et le moins cher pour le calcul dans le nuage sans elucider comment cela
est different de la generation de l’informatique [11, 64]. Puisque nous croyons que le
Cloud computing est plus qu’un mot a la mode, nous reproduisons ici la definition
du Cloud computing par le NIST repute [46]. Selon l’Institut national des normes
et de la technologie, Cloud computing est un modele pour permettre un acces pra-
2.2. Les concepts du Cloud computing 11
tique a la demande du reseau a un ensemble partage de ressources informatiques
configurables (par exemple, les reseaux, les serveurs, le stockage, les applications
et les services) qui peuvent etre provisionnes rapidement et liberes avec un effort
de gestion minimale ou par l’interaction de fournisseur de services (Figure 2.1). Ce
modele favorise l’accessibilite et est compose de cinq caracteristiques essentielles
[46] :
Figure 2.1 – L’environnement de Cloud computing [66]
1. La demande libre des services
2. Un acces en diffusion via le reseau
3. La mise en commun des ressources
4. L’elasticite rapide
5. Un service mesure
Trois modeles de services (SaaS, PaaS et IaaS) et, quatre modeles de deploiement
(prive, public, communautaire et hybride). Les technologies cles comprennent :
1. Des reseaux rapides,
2. Des ordinateurs bon marche,
2.2. Les concepts du Cloud computing 12
3. La virtualisation pour du materiel de base.
Les principaux obstacles a la plus large adoption du Cloud sont :
– La securite, l’interoperabilite et la portabilite.
Nous resumons en termes simples et courts, le Cloud computing est une grande
puissance evolutive et personnalisee de calcul disponible par loyer/ par heure et
accessible a distance. Il peut aider a faire plus de calcul a une fraction de cout.
2.2.1 La virtualisation
La virtualisation est une technologie qui isole et fait abstraction des ressources
de bas niveau et fournit des ressources virtualisees pour des applications de haut
niveau. Dans le contexte de virtualisation materielle, le detail de materiel physique
peut etre resume dans la distance basee sur le noyau de la machine virtuelle avec
le support des hyperviseurs tels que Linux [49, 50]. Un serveur virtualise gere par
l’hyperviseur est communement appele une machine virtuelle. En general, plusieurs
machines virtuelles peuvent etre extraites dans une seule machine physique. Avec
des grappes de machines physiques, les hyperviseurs sont capables d’extraire et de
la mise en commun des ressources, ainsi que l’affectation dynamique ou l’affectation
des ressources aux machines virtuelles a la demande. Par consequent, la virtualisa-
tion constitue la base du Cloud computing. Les fournisseurs peuvent personnaliser
la plate-forme pour repondre aux besoins des clients, soit par des applications expo-
sant en cours d’execution au sein de machines virtuelles des services, ou de fournir
un acces direct aux machines virtuelles permettant ainsi aux clients de creer des
services avec leurs propres applications. En outre, le Cloud computing est non seule-
ment base sur la virtualisation de ressources, mais aussi sur la repartition intelligente
des ressources pour la gestion des demandes concurrentes de ressources des clients.
La Figure 2.2 illustre une exploitation de la technologie de virtualisation dans les
environnements de Cloud computing.
L’informatique autonome ou encore le Computing autonome vise a construire
des systemes informatiques capables a l’autogestion, ce qui signifie etre capable de
fonctionner dans des conditions generales definies et reglementaires sans interven-
2.2. Les concepts du Cloud computing 13
Figure 2.2 – La virtualisation dans les environnements de Cloud [31]
tion humaine. Le but de l’informatique autonome est de surmonter la complexite
croissante et rapide de la gestion du systeme informatique, tout en etant en mesure
de continuer a augmenter l’interconnectivite et l’integration sans relache. Bien que
le Cloud computing presente certaines similitudes avec l’automatique de calcul de
la facon dont il inter-connexe et integre la distribution des centres de donnees a
travers les continents. Son objectif est de reduire le cout des ressources plutot que
de reduire la complexite du systeme.
2.2.2 La grille informatique
Grid computing est un paradigme de calcul distribue qui coordonne en reseau
les ressources pour atteindre un objectif commun de calcul. Le developpement de
la grille informatique a ete tiree par les applications scientifiques qui necessite ha-
bituellement un calcul intensif, mais les applications necessitant le transfert et la
manipulation d’une quantite massive de donnees a egalement ete en mesure de tirer
parti des grilles. Le Cloud computing semble etre similaire a la grille informatique
dans la facon dont il a egalement employe les ressources distribuees pour atteindre
les objectifs au niveau de l’application. Cependant, le Cloud computing prend un
2.3. Les technologies connexes liees au Cloud computing 14
peu plus loin en mettant a profit les technologies de virtualisation pour atteindre
le partage a la demande des ressources et le provisionnement dynamique des res-
sources.
2.2.3 L’informatique utilitaire (Utility computing)
L’informatique utilitaire represente le modele d’affaires des ressources d’em-
ballage en tant que services comptes similaires a ceux fournis par les entreprises
traditionnelles d’utilite publique. En particulier, il permet aux ressources d’appro-
visionnement sur les clients a la demande et a la charge base sur l’utilisation plutot
que sur un taux forfaitaire. Le principal avantage de l’informatique utilitaire est
l’economie. Le Cloud computing peut etre percu comme une realisation de l’infor-
matique utilitaire. Avec un approvisionnement a la demande des ressources et de la
tarification fondee sur l’utilite, les clients sont en mesure de recevoir davantage de
ressources pour gerer les pics inattendus et ne payer que pour les ressources dont ils
avaient besoin ; Pendant ce temps, les fournisseurs de services peuvent maximiser
l’utilisation des ressources et minimiser leurs couts d’exploitation.
2.3 Les technologies connexes liees au Cloud computing
Le Cloud computing a evolue sur des decennies de recherche dans differentes
technologies, dont il a herite des caracteristiques et des fonctionnalites telles que
les environnements virtualises, le computing autonome, la grille informatique, et le
calcul distribue. La Figure 2.3 illustre l’evolution vers le Cloud computing dans l’he-
bergement des applications logicielles [75]. En fait, le Cloud computing est souvent
compare aux technologies connexes, dont chacun partage certains aspects avec le
Cloud computing.
2.4 Les principales caracteristiques des Clouds
Le modele Cloud Computing se differencie par les cinq caracteristiques essen-
tielles suivantes :
2.4. Les principales caracteristiques des Clouds 15
Figure 2.3 – L’evolution vers le Cloud computing dans l’hebergement d’applica-
tions logicielles [75]
1. Acces reseau universel : Un environnement de type Cloud Computing
est accessible via le reseau, quel que soit le peripherique (PC, Mac, tablette,
SmartPhone, ...).
2. Mise en commun (Pooling) de ressources : Dans un environnement de
type Cloud Computing, on ne pense pas en nombre de serveurs, taille de
disques, nombre de processeurs..., mais en puissance de calcul, capacite totale
de stockage, bande passante disponible.
3. Elasticite : Grace au Cloud, il est possible de disposer de plus de ressources
tres rapidement pour soutenir une forte demande (par exemple pour garantir
une bonne experience d’achat sur une plateforme web d’e-commerce durant
les fetes de fin d’annees). Inversement, au-dela de la provision de ressources,
il est possible avec le Cloud de diminuer les ressources utilisees (par exemple
en cas de baisse d’activite sur cette meme plateforme web d’e-commerce) si
celles-ci sont superieures a ce qui est necessaire.
4. Libre-service (Self-Service) : Dans un environnement de type Cloud Com-
puting, il est possible a un utilisateur de consommer les services ou les res-
2.5. Modeles de deploiement 16
sources sans pour autant necessiter une demande d’interventions aupres du
fournisseur : equipe IT ou fournisseur externe (par exemple, un developpeur
qui souhaite tester son application sur une machine virtuelle representative
d’un poste standardise de son entreprise peut, au travers d’un portail web,
provisionner ou utiliser une machine).
5. Service mesurable ou facturable : Dans un environnement de type Cloud
Computing, le fournisseur de la solution est capable de mesurer de facon pre-
cise la consommation des differentes ressources (CPU, stockage, bande pas-
sante, ...) ; cette mesure lui permet de facturer a l’usage le client [7].
2.5 Modeles de deploiement
Il existe 4 modeles de deploiement du Cloud computing (voir Figure 2.4) :
1. Le Cloud prive qui peut se deployer sous deux formes distinctes :
Cloud prive interne : heberge par l’entreprise elle-meme, parfois partage
ou mutualise en mode privatif avec les filiales.
Cloud prive externe : heberge chez un tiers, il est entierement dedie a l’en-
treprise et accessible via des reseaux securises de type VPN (Reseau
virtuel prive).
2. Le Cloud public est accessible par Internet et gere par un prestataire externe.
Il est ouvert au public ou a de grands groupes industriels. Cette infrastructure
est possedee par une organisation qui vend des services Cloud.
3. Le Cloud hybride ou mixte associe l’utilisation, pour une meme entreprise,
d’un Cloud prive et d’un Cloud public. Ces infrastructures sont liees entre
elles par la meme technologie qui autorise la portabilite des applications et
des donnees.
4. Le Cloud communautaire est dedie a une communaute professionnelle speci-
fique incluant partenaires, sous-traitants, etc, pour travailler de maniere colla-
borative sur un meme projet ou Cloud gouvernemental dedie aux institutions
etatiques.
2.6. Modeles de service 17
Figure 2.4 – Les modeles de deploiement dans le Cloud computing
2.6 Modeles de service
Il existe trois types de services dans les Cloud computing : IaaS (Infrastructure
as a Service), PaaS (Plateform as a Service) et SaaS (Software as a Service), comme
il est montre dans la Figure 2.5.
Figure 2.5 – Les modeles de services dans le Cloud computing [32]
Fondamentalement, l’infrastructure en tant que service permet d’embaucher un ser-
veur virtuel, puis l’utiliser par le biais d’un navigateur. Il est comme une machine
2.6. Modeles de service 18
distante qui vous permet de faire l’installation de logiciel et l’elargissement du ma-
teriel. La plate-forme en tant que service fournit une plate-forme a l’utilisateur sans
se soucier de la gestion du materiel, mais tout simplement le controle de logiciel.
Le logiciel en tant que service signifie essentiellement que le logiciel est loue par le
consommateur, mais est heberge et entierement gere par le prestataire.
– Exemples de machines virtuelles IaaS : Windows Azure (https ://azure.microsoft.com/en-
us/), Amazon Web Services EC2 (http ://aws.amazon.com/ec2/), et Google
Compute Engine(https ://cloud.google.com/products/compute-engine/).
– Des exemples de PaaS sont Google App Engine (https ://developers.google.com/appengine),
la plate-forme Salesforce (http ://www.salesforce.com/platform/), et Amazon
AWS Elastic Beanstalk (http ://aws.amazon.com/elasticbeanstalk/)
– Des exemples de SaaS sont Gmail (messagerie) et Salesforce (CRM).
2.6.1 SaaS (Software as a Service)
Les clients de ce modele sont aussi bien des utilisateurs personnels que des entre-
prises. Ce modele de service correspond a celui que nous rencontrons communement
dans le Cloud public. Il derive du monde des ASP (Application Service Provider)
qui se sont developpes initialement dans le monde du Web. Pour beaucoup de per-
sonnes et d’utilisateurs [8], le Cloud se resume uniquement a cet aspect ! Ce modele
represente l’acces a un service applicatif et a ses fonctionnalites associees. Tenons
comme exemples : Les reseaux sociaux, la messagerie personnelle, les applications
bureautiques et l’impression photo. Pour un public de masse, le fournisseur propose
des niveaux de service generique peu ou pas personnalisables. Ceci lui permet de
proposer des prix attractifs d’entree de gamme. Une politique de prix d’entree de
gamme, des niveaux de service quelques fois flous ou des clients en manque de ma-
turite peuvent poser des soucis de contractualisation et d’engagement. Ce point est
crucial pour les enjeux du Cloud.
2.6. Modeles de service 19
2.6.2 IaaS (Infrasture as a Service)
Generalement, l’utilisateur final ne se voit pas offrir ce genre de service. Ce
modele sert de base pour construire ou renover des solutions informatiques. Ce type
de service se democratie toutefois dans le Cloud public. Pour deployer un service
applicatif, les architectures de systemes d’information considerent un certain nombre
de couches :
– Le reseau ;
– Le stockage ;
– L’infrastructure physique (ou virtuelle) communement appele un serveur ;
– L’hyperviseur pour l’infrastructure dite virtuelle ;
– Le systeme d’exploitation du serveur physique ou de la machine/ serveur
virtuelle ;
– Le middleware ;
– L’applicatif lui meme.
L’entreprise proposant ce type de service peut devenir, de fait, un fournisseur de
serveurs. Ces serveurs autrefois physiques sont devenus de nos jours virtuels par
le fait des technologies de virtualisation employees. La Direction du Systeme d’In-
formation (DSI) d’une organisation peut devenir un fournisseur de serveurs pour
ses clients en lieu et place des anciens fournisseurs de serveurs physiques que sont
les constructeurs. Le fournisseur/hebergeur peut devenir un fournisseur de serveur
pour les DSI [8].
2.6.3 PaaS (Platform as a Service)
La population cliente de ce type de service est compose de developpement qui
vont pouvoir concevoir un service de type SaaS par exemple. Ce type de service se
rencontre aussi bien en Cloud public qu’en Cloud prive. Le modele PaaS de Cloud
Computing ajoute, a la couche IaaS, la couche Middleware constituee de serveurs
d’application, de serveur de presentation (serveurs web), de systemes de bases de
donnees et d’environnements de programmation. Prenons comme exemples : le de-
ploiement d’un blog sur Internet, le developpement Interne d’une solution n-tiers,
2.7. Aborder un projet de migration vers le Cloud 20
....
2.7 Aborder un projet de migration vers le Cloud
Les quatres points ci-dessous sont a prendre en consideration avec les avantages
et les inconvenients de la situation actuelle sans Cloud jusqu’a la situation vers le
Cloud [7].
L’elasticie : L’agilite est definit comme la capacite d’une entreprise a ressentir les
changements dans son environnement et a s’y adapter de maniere efficiente. Si
on s’en refere a cette definition, l’avantage le plus frequemment cite des archi-
tectures Cloud est, sans surprise, l’elasticite. Puisque cette notion fait partie
de la definition meme du Cloud Computing. Par exemple, l’un des avantages
les plus evidents d’une solution SaaS comme Salesforce est l’elasticite qu’elle
permet. Il est possible tres simplement d’augmenter le nombre d’utilisateurs
ou de fonctionnalites. Mais l’elasticite se ressent aussi tres clairement sur la
couche IaaS.
La reactivite : L’elasticite, c’est bien, a condition que les modifications d’ampli-
tude a la hausse ou a la baisse soient rapides. Le gain en reactivite peut etre
considerable par rapport aux solutions precedentes. Prenons comme exemple
le cas d’Intel : le simple passage en Cloud de son infrastructure a permis de
reduire de trois semaines a trois heures le temps necessaire pour allouer des
ressources a un utilisateur en faisant la demande. Dans l’exemple d’Intel, le
gain en reactivite peut etre considerable, par rapport aux solutions prece-
dentes sans Cloud.
La flexibilite : Quand on associe elasticite et reactivite, on obtient une souplesse
d’utilisation sans egale. Le Cloud remet les choses dans le bon sens : l’entre-
prise n’a plus besoin de se contorsionner pour faire evoluer son organisation
sans mettre en peril son service informatique ; c’est ce dernier qui se plie a
ses imperatifs. La flexibilite dans l’organisation du travail est permise par le
fait aussi que l’entreprise peut etre moins liee aux contraintes traditionnelles
de calcul de retour sur investissement (ROI) et de validation prealable. C’est
2.8. Avantages du Cloud computing 21
particulierement vrai pour le SaaS. L’entreprise peut se permettre d’experi-
menter, de passer au Cloud petit a petit car l’investissement et l’engagement
restent modere. Contrairement a un projet informatique traditionnel, le ROI,
est calcule avant le demarrage. Le succes du projet se mesure au fil du temps,
dans la progression des usages [7].
L’ubiquite : Il y’a quelques annees, un constructeur informatique vantait ses so-
lutions de mobilite avec le slogan : « travailler partout pour ne pas travailler
tout le temps ». Aujourd’hui, cette promesse est devenue une realite grace a
la dissociation totale entre la couche des usages et celle de la technique [7].
2.8 Avantages du Cloud computing
2.8.1 Avantages au niveau de la strategie
Au niveau de la strategie, de nombreuses entreprises s’appuient sur le Cloud
pour alimenter de nouvelles strategies commerciales et chercher des sources concur-
rentielles. L’optimisation des ressources et les economies d’echelle augmentent en
theorie les marges. L’impact du Cloud sur la strategie se manifeste notamment par
la creation de nouveaux « business models », qui affectent tout l’ecosysteme de
l’entreprise. L’enjeu consiste a disposer des bonnes informations au bon moment
pour prendre les bonnes decisions. Cela passe par la mise en relation, le partage et
la combinaison de l’ensemble des actifs strategiques de l’organisation. Pour l’heure,
les DSI sont limitees par les capacites techniques des solutions de Cloud, notamment
en termes de securite des informations et de portabilite des donnees. Neanmoins, la
direction generale s’interroge sur l’ensemble des opportunites strategiques que les
solutions de Cloud pourraient apporter a l’entreprise. Comme souvent, ce sont les
solutions a usage personnel qui permettent au marche de se faconner et de s’orienter.
Par exemple, les solutions de webmail, comme Gmail de Google ou la messagerie
d’Apple, ont ouvert des perspectives tres interessantes pour les entreprises. Autre
exemple autour de la musique en ligne, l’offre iCloud d’Apple propose une fonction
appelee « iTunes Match », qui permet de stocker l’ensemble de sa musique et de ses
videos dans les nuages, et d’y acceder a partir de n’importe quelle plate-forme. Pour
2.8. Avantages du Cloud computing 22
que ces services voient le jour et soient apprecies du marche professionnel, il faut
donc qu’ils s’inscrivent dans une demarche de standardisation, d’elasticite et d’ubi-
quite (autrement dit qu’ils soient accessibles a partir de tout type de plate-forme :
PC, tablettes, smartphones, ...). L’analyse des donnees (notamment a tres grande
echelle, voir le Big data) constitue egalement un domaine dans lequel les solutions
de Cloud sont tres innovantes. Ainsi, Tetrapak [30], un fournisseur d’emballages et
de briques alimentaires, analyse des banques de donnees en provenance d’eBay pour
detecter les tendances de consommation. C’est egalement l’esprit de la solution Web
Content Management d’Adobe, classee comme leader par le Gartner [30] dans ce
domaine eponyme, qui propose tout un ensemble d’outils d’analyse marketing sur la
frequentation d’un site web, pour mieux identifier et modeliser les comportements
des visiteurs et des acheteurs.
2.8.2 Avantages au niveau des fonctions et des processus metier
Au niveau des processus et des fonctions metier, les entreprises cherchent avant
tout la performance, le partage des ressources (afin d’acceder a des services aux-
quels elles ne pouvaient pas pretendre auparavant), une collaboration plus etroite,
davantage d’integration, ainsi qu’une meilleure coordination interprocessus. Or les
solutions de Cloud computing favorisent la coordination des processus et des fonc-
tions du metier. D’ailleurs, certains des plus grands succes du Cloud computing
concernent a ce jour des solutions de collaboration, qui permettent aux groupes
et aux communautes de travailler ensemble de maniere innovante. On peut citer
l’exemple des entreprises qui ouvrent leurs systemes a leur clientele en proposant
des services de calendriers en ligne : le client d’une banque peut ainsi fixer un rendez-
vous avec son conseiller clientele en fonction des plages disponibles. Les solutions
de Social Business Software, ou de collaboration pour l’ensemble des acteurs de
l’entreprise, offrent egalement des perspectives interessantes. Le cabinet de conseil
des services collectives (CSC) a deploye, par exemple, ce genre de solution pour
ses 90 000 collaborateurs. Lors de la premiere experience qui a dure 20 semaines,
plus de 25 000 personnes se sont inscrites a cette solution de collaboration Cloud,
appelee C3 et editee par Jive [30]. Ils ont cree plus de 2 100 groupes et gere jusqu’a
2.8. Avantages du Cloud computing 23
150 000 activites par mois. Ces resultats encourageants ont convaincu l’entreprise
d’adopter la solution C3 de facon permanente. Autre exemple, Expensify [30] est
une solution de Cloud SaaS qui permet de gerer les depenses et les tickets de caisse
de toute une entreprise. Ce service est accessible depuis tous les types de plates-
formes (tablettes, smartphones, client leger, etc.) [30]. Grace au Cloud computing,
les entreprises pourront desormais s’inscrire dans une demarche de standardisation
des applications, des formats de donnees, des plates-formes de developpement et
d’exploitation, ce qui contribuera a la mise en œuvre de processus metier efficaces.
Ceux-ci favoriseront le partage d’information, l’acces universel depuis tout type de
plate-forme (notamment les tablettes et les smartphones) et la collaboration.
2.8.3 Avantages operationnels
Les principaux avantages operationnels qu’offre une solution de Cloud compu-
ting concernent la baisse des couts de production des services informatiques, grace
a la disponibilite et l’elasticite des ressources informatiques, ainsi qu’a des systemes
de facturation portant sur la consommation reelle de services, par opposition aux
systemes de forfaits (pour lequel le client paie, meme s’il ne consomme rien). Les
DSI estiment qu’ils pourraient realiser des economies de 10 a 50 % sur ces couts
de production. Il s’agit en outre de commercialiser plus rapidement de nouvelles
applications et d’accelerer leur mise a jour. Les petites et moyennes entreprises, de
meme que les startups, ont tres vite adopte les solutions de Cloud computing. Elles
ont rapidement compris les avantages qu’elles pouvaient en tirer en termes d’eco-
nomies d’echelle et d’agilite : le Cloud leur offre l’acces a des prestations en libre
service et le partage d’equipements et de ressources, ce qui leur permet d’utiliser des
services reserves jusqu’a present aux grandes entreprises. Les grandes entreprises,
elles, sont toujours plus reticentes des qu’il s’agit d’adopter des nouvelles techno-
logies. Mais elles commencent a entrevoir l’avantage concurrentiel qu’elles peuvent
tirer des solutions de Cloud, notamment en termes de performance, d’efficacite et
d’efficience. Les entreprises industrielles traditionnelles s’appuient sur des modeles
scientifiques de l’organisation du travail. Ces modeles sont optimaux lorsqu’il s’agit
de faire fonctionner des machines ensemble. Or, les societes de services reposent sur
2.9. Securite dans les Cloud computing 24
la production de prestations par les hommes et pour les hommes [30]. Nous rappe-
lons que Taylor considerait l’etre humain comme le prolongement de la machine. Il
s’agit donc de remettre l’homme au centre de la production de services et de prendre
en compte les dimensions sociales, psychologiques et culturelles des entreprises [30].
2.9 Securite dans les Cloud computing
Les avantages du Cloud computing sont aujourd’hui une evidence. Les plus no-
tables sont : la reduction des couts de maintenance de l’infrastructure informatique,
la reduction de la consommation energetique, la disposition rapide d’une plateforme
prete a l’emploi pour le deploiement des applications, la disposition d’une solution
de sauvegarde simple et accessible a tous, meme aux non-informaticiens. Cependant,
devant toutes les possibilites offertes par ce nouveau concept de l’informatique, il
demeure des reticences dans son adoption. Ces reticences sont liees, pour la plupart,
au facteur de securite, qui reste encore un veritable challenge [56].
Le Cloud computing est une approche informatique qui consiste a exploiter
via Internet (ou tout autre reseau WAN) des ressources systeme et applicatives
(serveurs, stockage, outils de collaboration et d’administration, etc.). Ces ressources
distantes sont dites en Cloud. Plusieurs etudes menees par des specialistes tels
que ISACA (Information Systems Audit and Control Association) et CSA (Cloud
Security Alliance) ont permis d’identifier douze points qui constituent les menaces
majeures a la securite des donnees et a celles des applications en Cloud [56]. Ce
sont notamment :
1. L’existence de breches de securite tant sur l’une des couches logiques du Da-
tacenter que celles issues d’erreurs humaines ;
2. La fragilite dans la gestion des acces et des identites, bien que certains four-
nisseurs renforcent les interfaces d’authentification avec d’autres moyens tels
que les certificats, les smartcards, la technologie OTP et bien d’autres ;
3. L’utilisation d’API non securisees pour l’integration des applications avec les
services Cloud ;
2.9. Securite dans les Cloud computing 25
4. L’exploit de vulnerabilites des systemes d’exploitation sur les serveurs du
Cloud et meme sur les applications hebergees ;
5. Le piratage de compte, qui est un vieux type d’attaque informatique, vient
avec une forte recrudescence depuis l’avenement d’Internet et encore celui du
Cloud computing ;
6. Une action malveillante initiee en interne dans les effectifs du fournisseur. Une
personne malveillante dans l’equipe de gestion du Datacenter peut facilement
nuire a la confidentialite et l’integrite des environnements heberges ;
7. Les menaces persistantes avancees (APT : Advanced Persistent Threats) qui
consistent en une forme d’attaque ou le Hacker reussit a installer d’une facon
ou d’une autre un dispositif dans le reseau interne de l’organisation, a partir
duquel il peut extirper des donnees importantes ou confidentielles. C’est une
forme d’attaque difficile a detecter pour un fournisseur de services Cloud ;
8. La perte de donnees qui peut etre causee par une attaque informatique (lo-
gique) du Datacenter, une attaque physique (incendie ou bombardement),
une catastrophe naturelle, ou meme simplement a un facteur humain chez le
fournisseur de services, par exemple en cas de faillite de la societe ;
9. Les insuffisances dans les strategies internes d’adoption ou de passage au
Cloud. Les entreprises ou les organisations ne prennent pas souvent en compte
tous les facteurs de securite lies a leur fonctionnement avant de souscrire a
un service Cloud. Certaines negligences, tant au niveau du developpement
d’application qu’au niveau de l’utilisation basique, leur sont parfois fatales ;
10. Utilisation frauduleuse des technologies Cloud en vue de cacher l’identite et
de perpetrer des attaques a grande echelle. Generalement, il s’agit de comptes
crees pendant les periodes d’evaluation (la plupart des fournisseurs d’acces
a Internet (FAI) proposent 30 jours d’essai gratuits) ou des acces achetes
frauduleusement ;
11. Le deni de service qui est une attaque qui consiste a rendre indisponible un
service par une consommation abusive des ressources telles que les processeurs,
la memoire ou le reseau. L’idee, pour le pirate, c’est de reussir a surcharger les
2.10. Conclusion 26
ressources du Datacenter en vue d’empecher d’autres utilisateurs de profiter
des services ;
12. Les failles liees a l’heterogeneite des technologies imbriquees dans l’architec-
ture interne du Cloud, et l’architecture externe d’interfacage avec les utilisa-
teurs.
2.10 Conclusion
Le developpement du Cloud Computing passera certainement par son adoption
au sein des entreprises, pour qui les offres commencent a etre nombreuses. La renta-
bilite etant l’objectif numero 1, ces entreprises sont susceptibles de payer beaucoup
plus que les particuliers, et sont les cibles principales du Cloud, les offres gravitant
autour d’applications et d’environnements metier. Reste la question de la securite
et de la confidentialite des donnees stockees, qui sont potentiellement exposees a
des negligences.
Arriver a repondre de maniere rapide et efficace aux demandes croissantes des
utilisateurs, les entreprises ou les fournisseurs de Clouds doivent ameliorer constam-
ment les algorithmes d’execution des taches et ameliorer la qualite de services. La
theorie d’ordonnancement de taches et d’allocation de ressources dans les systemes
de Cloud computing suscite une attention croissante avec l’augmentation de la po-
pularite de Cloud. Pour cela, le chapitre suivant entamera le probleme d’ordonnan-
cement et d’allocation de ressources dans le Cloud computing.
Chapitre 3
Probleme d’ordonnancement et
d’allocation de ressources
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Ordonnancement : Concepts et definitions . . . . . . . . . . 28
3.3 Les problemes d’ordonnancement en ligne et hors ligne . . 30
3.4 Les criteres d’optimisation . . . . . . . . . . . . . . . . . . . . 31
3.5 L’ordonnancement et la virtualisation dans le Cloud com-
puting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6 Les principaux algorithmes d’ordonnancement . . . . . . . . 35
3.7 Les algorithmes d’ordonnancement pour les applications
scientifiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1 Introduction
L’informatique dans le nuage ou le Cloud computing est un nouveau modele de
prestation de service informatique utilisant de nombreuses technologies exis-
tantes. Comme toute nouvelle technologie, elle a besoin cependant de nombreuses
ameliorations, et de la mise en place de normes precises pour eviter les risques.
L’ordonnancement des taches et l’allocation de ressources sont souvent consideres
comme des vrais challenges pour les gestionnaires dans ce type de technologies. C’est
ainsi que de nombreux travaux ont ete consacres a la recherche des solutions pour
remedier a ces problemes. Nous essayerons dans cette partie de presenter quelques
3.2. Ordonnancement : Concepts et definitions 28
notions et travaux de recherches qui ont propose des solutions ou des ameliorations
dans ce contexte.
3.2 Ordonnancement : Concepts et definitions
Le probleme d’ordonnancement consiste a organiser dans le temps la realisation
de taches, compte tenu de contraintes temporelles (contraintes de delai, contraintes
d’enchaınement, ...) et de contraintes portant sur l’utilisation et la disponibilite des
ressources requises [54, 63].
Ordonnancement : Un probleme d’ordonnancement consiste a ordonner dans le
temps un ensemble de taches contribuant a la realisation d’un meme projet.
L’objectif est de minimiser la duree de realisation du projet compte tenu des
contraintes d’anteriorite reliant les differentes taches. De plus, on determine
les calendriers de realisation de chacune de ces taches ainsi que les marges de
manœuvre associees.
Allocation de ressources : L’allocation de ressources est le processus de division
et de repartition d’une quantite limitee des ressources disponibles a des usages
alternatifs concurrents, satisfaisant des besoins illimites. Etant donne que la
penurie est endemique dans le monde (desirs et besoins illimites, mais des res-
sources limitees), tous les besoins ne peuvent etre satisfaits par les ressources
disponibles. Des choix doivent etre faits. Ces choix et ces decisions sont le
processus d’allocation des ressources.
Dans le Cloud Computing, l’allocation de ressources est le processus d’attri-
bution des ressources disponibles pour les applications de Cloud Computing
sur Internet. L’allocation des ressources qui n’est pas geree avec precision em-
peche le bon fonctionnement des services. L’approvisionnement de ressources
resout ce probleme en permettant aux fournisseurs de services de gerer les
ressources pour chaque application.
Les taches : Une tache ou un job est une entite elementaire localisee dans le temps,
par une date de debut et une date de fin, et dont la realisation necessite une
3.2. Ordonnancement : Concepts et definitions 29
duree prealablement definie. Elle est constituee d’un ensemble d’operations
qui requiert, pour son execution, certaines ressources et qu’il est necessaire de
programmer de facon a optimiser un certain objectif.
Les ressources : La ressource est un moyen technique ou humain destine a etre
utilise pour la realisation d’une tache et disponible en quantite limitee, sa
capacite. Plusieurs types de ressources sont a distinguer. Une ressource est
renouvelable si apres avoir ete allouee a une ou plusieurs taches, elle est a nou-
veau disponible en meme quantite (les hommes, les machines, l’equipement
en general) ; la quantite de ressource utilisable a chaque instant est limitee.
Dans le cas contraire, elle est consommable (matieres premieres, budget) ; la
consommation globale (ou cumul) au cours du temps est limitee. Une ressource
est doublement contrainte lorsque son utilisation instantanee et sa consom-
mation globale sont toutes deux limitees (l’argent en est un bon exemple).
Qu’elle soit renouvelable ou consommable, la disponibilite d’une ressource
peut varier au cours du temps. Sa courbe de disponibilite est en general connue
a priori, sauf dans les cas ou elle depend du placement de certaines taches ge-
neratrices. On distingue par ailleurs principalement dans le cas de ressources
renouvelables, les ressources disjonctives qui ne peuvent executer qu’une tache
a la fois (machine-outil, robot manipulateur) et les ressources cumulatives qui
peuvent etre utilisees par plusieurs taches simultanement mais en nombre li-
mite (equipe d’ouvriers, poste de travail).
Les contraintes : Les contraintes expriment des restrictions sur les valeurs que
peuvent prendre simultanement les variables de decision. On distingue :
– Des contraintes temporelles concernent les contraintes de temps alloue, is-
sues generalement d’imperatifs de gestion et relatives aux dates limites des
taches (delais de livraisons, disponibilite des approvisionnements) ou a la
duree totale d’un projet et les contraintes de coherence technologique, ou
contraintes de gammes, qui decrivent des relations d’ordre relatif entre les
differentes taches.
– Des contraintes de ressources decrivent les contraintes d’utilisation de res-
3.3. Les problemes d’ordonnancement en ligne et hors ligne 30
sources qui expriment la nature et la quantite des moyens utilises par
les taches, ainsi que les caracteristiques d’utilisation de ces moyens et les
contraintes de disponibilite des ressources qui precisent la nature et la
quantite des moyens disponibles au cours du temps. Toutes ces contraintes
peuvent etre formalisees sur la base des distances entre debuts de taches ou
potentiels.
L’equilibrage de charge (Load Balancing) : L’equilibrage de charge est une
technique relativement nouvelle qui facilite l’execution des taches entre des
ressources en fournissant un debit maximal avec un temps de reponse minimal
[55]. Divisant le trafic entre les serveurs, les donnees peuvent etre envoyees et
recues sans retard majeur. Differents types d’algorithmes sont disponibles qui
aide le partage de charges entre les serveurs disponibles. Un exemple d’equi-
librage de charge peut etre lie a l’acces aux sites Web. Sans equilibrage de
charge, les utilisateurs pourraient subir des retards, delais d’attente et des
eventuelles reponses du systeme longues. Des solutions d’equilibrage de charge
s’appliquent habituellement sur des serveurs redondants qui permettent une
meilleure repartition du trafic de communication de sorte que la disponibilite
des sites web est definitivement tranchee [9].
3.3 Les problemes d’ordonnancement en ligne et hors
ligne
Le but de l’ordonnancement des taches est de trouver un plan d’execution op-
timal des taches qui prend en consideration leurs contraintes : les ressources, le
budget, la date de fin, la performance, etc. En general, un probleme contraint se
compose de : taches, ressources, conditions contraintes et une ou plusieurs fonc-
tions objectifs. Il existe beaucoup d’algorithmes d’ordonnancement dans le Cloud
computing. Les problemes d’ordonnancement peuvent etre classes en deux grandes
categories :
3.4. Les criteres d’optimisation 31
1. Les problemes d’ordonnancement en ligne (online) [69, 24] pour lesquels la
date d’arrivee (release date) des jobs n’est pas connue a l’avance ;
2. Les problemes d’ordonnancement hors ligne (offline) pour lesquels les dates
d’arrivees des jobs (generalement ils sont tous prets a t = 0 et toutes leurs
caracteristiques sont connues avant l’ordonnancement. Ces problemes ont ete
tres largement etudies pour les jobs sequentiels [53] et pour les jobs paralleles
[20, 23].
Les problemes d’ordonnancement online sont generalement plus difficiles que
les problemes offline, puisque nous ne connaissons qu’une partie des donnees du
probleme. En effet, les decisions prises pour le placement ou l’execution de taches
ne tiennent pas compte des donnees manquantes car on ne peut pas prevoir l’avenir
[62].
Le processus d’ordonnancement se composent de tout ou partie des etapes sui-
vantes : task prioritizing, resource provisioning/ allocation et enfin scheduling/mapping
[61].
– La phase task prioritizing : etablit l’ordre des taches de depart leurs pro-
prietes et leurs contraintes. Apres cette phase, on a une liste ordonnee.
– La phase resource provisioning/allocation : reserve ou alloue un en-
semble de ressources, c’est-a-dire qu’elle calcule le nombre de machines vir-
tuelles pour l’ordonnancement des taches.
– La phase scheduling/mapping : selectionne les ressources parmi celles
precedemment allouer qui permettent d’executer les taches selon l’ordre pre-
defini. Ou elle fait l’ordonnancement de chaque tache a des ressources qui lui
sont optimales.
3.4 Les criteres d’optimisation
Les ressources dans un environnement de Cloud peuvent etre choisies par di-
verses manieres. La selection des ressources peut etre aleatoires, Round Robin, ou
gourmande en fonction de la capacite de traitement de ressource et de temps d’at-
tente ou par tous les autres moyens. La selection des taches peut etre basee sur
3.4. Les criteres d’optimisation 32
FCFS (First Come First Served), SJF (Short Job First), priorite, ou en groupant
un ensemble de taches. L’algorithme d’ordonnancement choisit la tache a execu-
ter et la ressource correspondante ou sera executee la tache. Car chaque strategie
de selection a certain bienfaits et pourrait etre effectuee dans cette direction pour
extraire les points avantageux de ces algorithmes et pour aboutir a une meilleure
solution qui essaye de reduire au minimum les inconvenients de l’algorithme utilise.
Quand nous concevons un algorithme d’ordonnancement pour un probleme par-
ticulier, nous cherchons a optimiser certains criteres. Comme nous allons le voir,
ce critere depend du probleme a traiter et il n’existe pas pour tous les problemes
d’ordonnancement un critere d’optimisation universel. Neanmoins, nous pouvons
donner quelques criteres d’optimisation frequemment utilises. Pour les problemes
hors ligne d’ordonnancement d’une collection de jobs ou d’un graphe de taches
dont les proprietes sont connues a l’avance, un critere d’optimisation souvent utilise
est la date de terminaison du dernier job ou de la derniere tache du graphe. Il s’agit
du temps de completion maximal ou makespan note Cmax. Il correspond au temps
passe par le systeme a realiser tout son travail.
Dans un cluster, les ressources de calcul ne sont pas illimitees, si bien que, quand
les processeurs sont tous occupes, les jobs de certains utilisateurs sont mis dans une
file d’attente. A cause de cette file d’attente, un critere d’optimisation est alors
le temps d’attente moyen (flow time note Fi) qu’il faut minimiser. Il s’agit de la
moyenne des temps Fi ecoules entre l’arrivee du job i dans le cluster (a la date
ai) et la fin de son execution (a la date Ci) : Fi = Ci - ai. Dans [5], Bender et al.
preconise plutot de minimiser la fonction max Fi. En effet, minimiser une moyenne
des temps d’attente a tendance a allonger les temps d’attente des petits jobs.
Dans le contexte des problemes d’ordonnancement de jobs pour les clusters, les
travaux de Bender et al. [5] aborde un critere d’optimisation frequemment utilise :
le stretch. Le stretch Si reflete le ralentissement engendre par l’execution en concur-
rence avec d’autres jobs dans le cluster : Si =Fi
Ciavec Fi le temps d’execution totale
du job i et Ci le temps de calcul du job i s’il s’executait tout seul sur le cluster. Le
calcul du stretch moyen correspond a la moyenne arithmetique de l’ensemble des
stretchs Si :1
N
∑i Si. Pour des raisons de risque de famine, les auteurs proposent
3.5. L’ordonnancement et la virtualisation dans le Cloud computing 33
de minimiser le max stretch qui est le maximum des Si : maxiSi.
Pour l’ordonnancement d’un graphe de taches execute un grand nombre de fois,
il est judicieux d’utiliser le debit comme critere d’optimisation, notamment pour
l’ordonnancement de flux d’une meme application. Avec le debit, nous considerons
une fraction de tache realisee par unite de temps. Nous definissons la periode comme
etant le temps moyen separant deux executions terminees de deux instances d’une
application consecutives. Ainsi, il n’y a pas de critere d’optimisation universel. Ce-
pendant le choix du critere d’optimisation a une grande importance. Comme nous
venons de le voir a travers la minimisation du temps d’attente moyen des Fi, cette
optimisation conduit a des effets indesirables. Il est alors judicieux de remplacer ce
critere par le maximum des temps d’attente.
3.5 L’ordonnancement et la virtualisation dans le Cloud
computing
L’ordonnancement dans le Cloud computing est classe au niveau de l’utilisateur
et au niveau du systeme [59]. Au niveau de l’utilisateur, la planification traite les
problemes souleves par la prestation de services entre les fournisseurs et les clients.
La programmation au niveau systeme gere la gestion des ressources dans les centres
de donnees. Le Datacenter se compose de plusieurs machines physiques. Des millions
de taches des utilisateurs sont recues ; l’attribution de ces taches aux machines phy-
siques se fait au niveau des centres de donnees. Cette affectation d’ordonnancement
joue un role significatif sur les performances du Datacenter. En plus de l’utilisa-
tion du systeme, d’autres exigences comme la qualite de service, le SLA (Service
Level Agreement), le partage des ressources, la tolerance aux pannes, la fiabilite, la
satisfaction en temps reel, etc. devraient etre pris en consideration.
Les ordonnanceurs bases sur le modele du marche et sur les encheres sont ap-
propries pour reguler l’offre et la demande des ressources sur le nuage. L’alloca-
tion des ressources en fonction du modele economique de marche est efficace dans
un environnement de Cloud computing ou les ressources sont virtualisees et livres
a l’utilisateur en tant que service. Une suite d’algorithmes d’ordonnancement de
3.5. L’ordonnancement et la virtualisation dans le Cloud computing 34
taches axees sur la base du modele de marche pour les environnements distribues
heterogenes est proposee dans le travail [74].
Le developpement d’un modele de tarification en utilisant le partage du proces-
seur dans les Clouds, l’application de ce modele de tarification aux services compo-
sites avec dependance et le developpement de deux ensembles de planification et de
profit conduit aux algorithmes proposes dans [37].
Le service d’approvisionnement en Cloud est base sur les accords au niveau de
service. SLA represente un contrat signe entre le client et le fournisseur de services
en precisant les termes de l’accord, y compris les exigences non fonctionnelles du
service specifie comme la qualite de service (QoS), des obligations et des sanctions
en cas de violation de l’accord. Il existe donc un besoin de strategies de planification
tenant compte de multiples parametres SLA et d’allocation efficace des ressources.
Une nouvelle heuristique d’ordonnancement tenant en compte de multiples para-
metres SLA pour le deploiement d’applications dans le Cloud est presente dans
[36]. L’algorithme d’ordonnancement qui permet le reapprovisionnement des res-
sources dans le Cloud en cas de defaillance est introduit dans [1]. L’objectif du
modele est de fournir une entente equitable pour les utilisateurs et les consomma-
teurs, une meilleure qualite de service, ainsi que la generation de cout optimal. Un
schema d’ordonnancement du nuage presente en [13] utilise SLA avec moniteur de
confiance pour fournir une planification plus rapide a la demande de l’utilisateur
avec un traitement securise. Une nouvelle approche pour l’heuristique d’ordonnan-
cement des requetes sur chaque serveur, dans chacun des centres de donnees repartis
geographiquement, a l’echelle mondiale pour un meilleur equilibrage de charge du
systeme de Cloud computing est propose dans [6].
Sur la base de la fonction de files d’attente et de modele de couts, et compte tenu
des objectifs des utilisateurs et des fournisseurs de services de Cloud computing, le
travail [39] propose un algorithme pour obtenir la valeur optimiste approximative
de service pour chaque emploi dans le modele de file d’attente prioritaire de preemp-
tion correspondant. Cette approche garantit les exigences de QoS des utilisateurs,
ainsi que le maximum de profits pour les fournisseurs de services de Cloud com-
puting. Pour faire face a la fluctuation dynamique des demandes de ressources,
3.6. Les principaux algorithmes d’ordonnancement 35
l’allocation des ressources axee sur le marche a ete proposee et mise en œuvre par
l’infrastructure publique en tant que service (IaaS) des fournisseurs comme Amazon
EC2. Dans cet environnement, les ressources en nuage sont offertes dans differents
types de machines virtuelles (VM) et le fournisseur de Cloud execute un modele de
marche a base d’encheres pour chaque type de VM avec l’objectif d’atteindre un
maximum de revenus au fil du temps. Une etude de cas du fournisseur de Cloud
unique et la meilleure facon de la demande de la clientele en termes de l’offre et de
prix, afin de maximiser les revenus des fournisseurs et les satisfactions des clients
tout en reduisant le cout de l’energie est proposee dans [73]. Un autre mecanisme
a base d’encheres pour le provisionnement et l’allocation dynamique de VM qui
tient compte de la demande des utilisateurs pour les machines virtuelles lorsqu’ils
prennent des decisions de provisionnement de VM est propose dans [72].
3.6 Les principaux algorithmes d’ordonnancement
Nous presentons dans ce qui suit, les principaux algorithmes d’ordonnancement
et d’allocation de ressources cites dans la litteratures [26, 33, 29, 34] :
Algorithme Min-min : L’algorithme commence par calculer le temps d’exe-
cution minimale pour toutes les taches puis la valeur minimale entre ces temps
minimum est choisie ; qui represente le temps minimum d’execution parmi toutes
les taches sur les ressources. Ensuite, en fonction de ce temps minimum, la tache
est ordonnancee sur la machine correspondante. Puis le temps d’execution pour
toutes les autres taches sont mises a jour sur cette machine en ajoutant le temps
d’execution de la tache assignee a des temps d’execution des autres taches sur cette
machine/ressource et la tache assignee est supprimee de la liste des taches. Ensuite,
la meme procedure est repetee jusqu’a ce que toutes les taches soient assignees sur
les ressources [29].
Un exemple d’application de l’algorithme pour 6 taches et 4 machines virtuelles,
les temps d’execution (en milliseconde secondes) de toutes les taches sur toutes les
machines sont presentes sur le tableau 3.1 suivant :
3.6. Les principaux algorithmes d’ordonnancement 36
M0 M1 M2 M3
T0 160 400 80 200
T1 40 100 20 50
T2 100 250 50 125
T3 20 50 10 25
T4 140 350 70 175
T5 80 200 40 100
Table 3.1 – Le temps d’execution des taches (Algorithme Min-min)
Le resultat d’execution des taches selon l’algorithme Min-min est donne dans la
Figure 3.1 suivante :
Figure 3.1 – Le resultat d’execution des taches selon Min-min
Algorithme Max-min : L’algorithme Max-min suit le meme principe que
l’algorithme Min-min a l’exception des proprietes suivantes : Apres avoir calculer
les temps d’execution minimum, la valeur maximale est selectionnee, qui est la
duree maximale parmi toutes les taches sur les ressources. Ensuite, en fonction de
ce temps maximum, la tache est ordonnancee sur la machine correspondante. Puis le
temps d’execution pour toutes les autres taches sont mises a jour sur cette machine
en ajoutant le temps d’execution de la tache assignee a des temps d’execution des
autres taches sur la machine qui a acquise la tache selectionnee et la tache assignee
3.6. Les principaux algorithmes d’ordonnancement 37
est supprimee de la liste des taches. La meme procedure est repetee jusqu’a ce que
toutes les taches soient assignees sur les ressources [34].
Le resultat d’execution des taches selon l’algorithme Min-max est donne dans
la Figure 3.2 suivante en utilisant les memes parametres du tableau 3.1 :
Figure 3.2 – Le resultat d’execution des taches selon Max-min
Algorithme Round Robin : Cet algorithme suit une strategie simple qui
consiste a distribuer de maniere equitable les taches sur les machines virtuelles dis-
ponibles, c’est-a-dire que le nombre de taches pour chaque machine virtuelle est le
meme. Cet algorithme est implemente dans le simulateur CloudSim [12].
Algorithme FIFO/FCFS : L’algorithme FIFO (First In First Out) ou FCFS
(First Come First Served) est l’un des algorithmes les plus simple qu’il soit. L’idee
est d’ajouter chaque tache et ressource disponible dans une file et d’executer chaque
tache et ressource par ordre d’arrivee. Cet algorithme est implemente dans le simu-
lateur CloudSim [12].
Shortest Job First (SJF)/Plus court d’abord : L’algorithme SJF ressemble
au FIFO, mais au lieu d’executer dans l’ordre d’arrivee, on choisit d’executer celui
qui sera le plus court. Mais le probleme est de determiner le temps d’execution
d’une tache avant de l’executer et pour cela il faut se baser sur une estimation.
3.7. Les algorithmes d’ordonnancement pour les applicationsscientifiques 38
Earliest Deadline First scheduling (EDF) : Dans le meme ordre d’idee,
on peut aussi choisir d’executer en premier la tache qui necessite d’etre fini le plus
rapidement. Cet algorithme est utilise pour les systemes temps reel. C’est un ordon-
nancement preemptif avec priorite dynamique : la tache la plus prioritaire est celle
dont la date de fin est la plus proche, c’est a dire que plus le travail doit etre realise
rapidement, plus elle est prioritaire. Cependant, il est assez complexe a le mettre
en œuvre et il se comporte mal en cas de surcharge du systeme, c’est la raison pour
laquelle il est peu utilise.
3.7 Les algorithmes d’ordonnancement pour les appli-
cations scientifiques
Cette section presente une serie de travaux qui traitent differentes strategies
d’ordonnancement des workflows dans les grilles et les Clouds afin d’identifier les
caracteristiques et les possibilites dans les environnements mentionnes pour l’ordon-
nancement des taches et des ressources.
La Figure 3.3 decrit l’execution de plusieurs workflows sur plusieurs Clouds.
Tout d’abord, le client envoie son job a la couche Broker [22] ou l’algorithme d’or-
donnancement est installe. On suppose que tous les jobs sont formes par des DAGs
(Directed Acyclic Graph), chaque tache est representee par un cercle. Apres, l’al-
gorithme prioritise les taches et reserve des ressources dans le cloud prive et public.
Ensuite, il choisit pour chaque tache la ressource adequate pour l’executer. Enfin,
le resultat de calcul du job est renvoye a l’utilisateur [61]. La resolution de l’ordon-
nancement des taches, specialement dans un systeme distribue et heterogene, est de
complexite NP-hard. En general, des algorithmes courants utilisent des heuristiques
pour trouver une solution qui est quasi-optimal [22]. Le Tableau 3.2 presente les al-
gorithmes d’ordonnancement de workflows pour les environnements Clouds pour
optimiser l’utilisation de cout et de performance.
3.7. Les algorithmes d’ordonnancement pour les applicationsscientifiques 39
Figure 3.3 – L’execution de plusieurs workflows sur plusieurs Clouds [22]
Le Tableau 3.2 se compose de 6 colonnes ou chaque ligne presente un algorithme
avec son nom, une description, sa strategie, ses caracteristiques, ses avantages et
ses inconvenients, etc. Pour la deuxieme colonne, nous presentons brievement l’al-
gorithme et son idee. Apres, nous presentons les parametres qu’il optimise. La pre-
miere, c’est makespan, il presente le temps complet d’execution du workflow de la
premiere tache a la derniere tache. L’algorithme doit trouver la valeur minimale.
Ensuite, c’est le cout minimal a payer quand on utilise les services. Les autres sont :
la fidelite, la securite, le taux de reussite, le taux de vitesse, etc. La colonne outil
presente le simulateur ou l’environnement de deploiement de l’algorithme. Enfin, les
2 dernieres colonnes presentent les avantages et les inconvenients des algorithmes
d’ordonnancement.
3.7. Les algorithmes d’ordonnancement pour les applicationsscientifiques 40
Algorithme Resume Parametres Outil Avantages Inconvenients
Compromised
time-cost
scheduling
algorithm
(CTC) [41]
Un algorithme
d’ordonnancement
CTC pour
l’execution de
workflow dans le
Cloud computing.
Il est centre sur des
contraintes d’une
relation interactive
entre le temps et le
cout comme un
compromis qui est
base sur des
caracteristiques du
Cloud
Makespan,
cout
monetaire
SwinDeWC
L’algorithme a une
pre-etape pour
decouvrir et
reordonner les
taches echouees. Il
exploite l’effet
interactif entre le
cout et le deadline
qui agit sur la
performance du
workflow. De plus,
il permet a
l’utilisateur de
redefinir leurs
deadline et leurs
couts dans chaque
cycle de
l’ordonnancement
Il ne considere pas
simultanement les
deux contraintes
dans le workflow
pour minimiser la
performance totale
Learning
architec-
ture for
scheduling
(LA) [3]
L’article propose
une nouvelle
approche pour
l’ordonnancement
du workflow dans
le Cloud
computing, c’est
l’architecture
d’apprentissage qui
utilise un processus
de decision pour
diriger
optimalement le
processus
d’execution du
workflow selon
l’etat de
l’environnement
Makespan,
cout
monetaire
Cloudsim
Il s’adapte
automatiquement
au changement
d’environnement
des ressources par
l’apprentissage. De
plus, il garantit
l’execution reussie
du workflow
L’espace d’etat
pour faire des
taches est grande
en incluant
l’utilisation ou
non-utilisation des
ressources selon le
temps. Il ne
considere pas les
types de VMs. Il
repete l’evaluation
de la fonction
fitness
3.7. Les algorithmes d’ordonnancement pour les applicationsscientifiques 41
Deadline
and budget
distribu-
tion based
cost-time
optimiza-
tion
scheduling
algorithm
(DBD-
CTO)
[65]
Cet algorithme
minimise le cout
d’execution tout en
repondant au delai
pour l’obtention des
resultats et analyse
le comportement de
l’algorithme
Makespan,
cout
monetaire
Java
Il garantit que toutes
les taches sont faites
par leurs contraintes
correspondantes
Il ne fait pas avec un
reordonnancement
quand une tache
n’est pas terminee.
De plus, il est
statique
Multiple
QoS
constrai-
ned
scheduling
strategy of
multiple
workflows
(MQMW)
[68]
La strategie peut
faire
l’ordonnancement
pour multiple
workflows qui sont
demarres tous en
meme temps et les
exigences de QoS
sont prises en
compte. Il considere
4 facteurs qui
affectent grandement
le makespan, le cout
et le taux de reussite
du workflow
Taux de
reussite,
cout, temps,
makespan
CloudSim
Il s’accorde avec les
multiples workflows
et le
multiple-objectifs
optimal en
meme-temps. De
plus, il considere la
performance totale
par 3 contraintes.
Une tache est
toujours terminee
Il ne fait pas un
re-ordonnancement
quand une tache
n’est pas terminee
Scheduling
Scientific
Workflows
Elastically
SSWE [40]
SSWE fait
l’ordonnancement
d’un workflow
elastique sur le
Cloud computing
pour optimiser le
temps d’execution
du workflow et met a
echelle elastique des
ressource lors de
l’execution
Le temps
d’execution,
capacite
CloudSim
Il considere les
changements
elastiques des
ressources quand le
workflow s’execute.
De plus, les
ressources peuvent
etre assignees
seulement quand
elles sont necessaire
Il groupe des
ressources qui sont
de meme capacite de
calcul dans un
cluster. Il ne
considere pas
d’autres
caracteristiques de
VMs comme : le
prix, le stockage, la
bande passante, etc.
Table 3.2 – Comparaison entre les algorithmes d’ordonnancement des workflows
3.7. Les algorithmes d’ordonnancement pour les applicationsscientifiques 42
Dans [44], les auteurs presentent une strategie d’ordonnancement des taches dy-
namique qui traite la relation entre l’utilisateur et la ressource. Dans cette approche,
les ressources ne sont pas considerees individuellement, mais regroupees. L’ordon-
nanceur, dans cette approche, selectionne les sites, et cette selection est faite par
une strategie opportuniste. Il vise a repartir les taches du flux de travail a travers
des sites de la grille en fonction de leurs performances.
Le travail [67] presente une etude de programmation des applications de work-
flow sur les grilles base sur un modele d’ordonnancement bi-criteres. Il utilise le
Constraint Algorithme dynamique (DCA) comme une solution au probleme d’op-
timisation avec deux criteres independants (execution et cout). L’algorithme choi-
sit un critere primaire et l’utilisateur etablit un pourcentage de variation pour le
deuxieme critere. Cependant, cette approche ne tient pas compte des exigences de
qualite de service, ne differenciant pas la qualite des ressources et des services. Il
n’utilise pas le regroupement des taches pour reduire la consommation de bande
passante. Dans [70], le travail presente un algorithme d’ordonnancement base sur le
cout des flux de travail pour les applications en temps reel. Le but de l’algorithme
est de developper un programme qui minimise le cout et repond aux contraintes
de temps imposees par l’utilisateur. Le flux de travail est divise en sous-ensembles
de taches pour l’etablissement d’un seul flux. Les taches qui ne forment pas un
seul flux sont separes et chacune d’entre elles fonctionne comme un sous-ensemble
independant.
Le theme de la replication des taches a ete largement exploree dans le contexte
des systemes de grille sans aborder la question du cout et de l’utilisation des res-
sources. Des recentes recherches sont portes sur des algorithmes qui sont conscients
de la complexite des environnements de Cloud lors de leur utilisation pour ordon-
nancer des applications de workflow. Reynolds [52] a propose l’utilisation de Cloud
pour completer les ressources de la grille. Cependant, les ressources de Cloud sont
deployes dans le but de repliquer les taches lentes pour augmenter les chances d’un
achevement rapide du flux de travail. La methode proposee n’est pas optimisee soit
pour le budget et pour le temps d’execution ; par contre, elle fonctionne dans des
meilleures conditions lorsque les taches en retard sont detectees. Xu et al. [68] et
3.8. Conclusion 43
Mao et Humphrey [42] ont propose des algorithmes pour l’ordonnancement de plu-
sieurs flux de travail dans les Clouds. Rahman et al. [51] ont propose un algorithme
pour les Clouds hybrides, ou au moins une partie des ressources peut etre utilisee
sans cout et avec un niveau plus eleve de controle de performance.
3.8 Conclusion
La theorie d’ordonnancement de taches et d’allocation de ressources dans les
systemes de Cloud computing suscite une attention croissante avec l’augmentation
de la popularite de Cloud. En general, l’ordonnancement de taches est le processus
d’affectation des taches aux ressources disponibles sur la base des caracteristiques
et des conditions des taches. C’est un aspect important dans le fonctionnement effi-
cace du Cloud, car de divers parametres de taches doivent etre pris en consideration
pour un ordonnancement approprie. Les ressources disponibles devraient etre utili-
sees efficacement sans affecter les parametres de service du Cloud. Dans le cadre de
ce travail, nous proposons trois strategies d’ordonnancement et d’allocation de res-
sources. Le chapitre suivant permet de decrire nos contributions, leurs demarches,
ses differentes phases, et les algorithmes necessaires ainsi que les differentes etapes
formalisees a l’aide du langage UML (Unified Modeling Langage).
Chapitre 4
Strategies d’ordonnancement et
d’allocation de ressources pour
les Clouds scientifiques
Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Strategie d’ordonnancement basee sur la replication de don-
nees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.1 Etape de construction . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Etape d’execution . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.3 Service de gestion de replication dynamique . . . . . . . . . . . 60
4.3 Strategie d’ordonnancement basee sur le groupement de
taches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.1 Etape de construction . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2 Etape d’ordonnancement . . . . . . . . . . . . . . . . . . . . . 66
4.4 Strategies d’ordonnancement et d’allocation de ressources
pour les Big Data . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4.1 La premiere variante OADTV . . . . . . . . . . . . . . . . . . . 67
4.4.2 La deuxieme variante OAAMV . . . . . . . . . . . . . . . . . . 69
4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1. Introduction 45
4.1 Introduction
Dans les chapitres precedents, nous avons presente les notions de base du Cloud
Computing, et nous avons explore et compare certaines strategies d’ordon-
nancement de taches et d’allocation de ressources. Notre objectif principal est
de proposer et d’implementer des strategies d’ordonnancement et d’allocation de
ressources de donnees scientifiques afin d’ameliorer certaines metriques de perfor-
mances tels que le temps de reponse, le temps d’attente, le nombre de deplacements
des donnees et le cout total engendre. Le present chapitre permet de decrire nos
trois contributions, d’expliquer leurs demarches, de detailler leurs differentes phases,
et de decrire les algorithmes necessaires, ainsi que les diagrammes du langage UML
(Unified Modeling Langage) pour modeliser les demarches de l’ensemble des diffe-
rentes etapes.
4.2 Strategie d’ordonnancement basee sur la replica-
tion de donnees
Dans cette section, nous decrivons notre premiere contribution a savoir une
strategie pour l’ordonnancement des taches et l’allocation de ressources, destinee
aux applications de workflows scientifiques distribuees. Cette strategie est etablie
a partir d’une matrice de clusterisation (classification) basee sur l’algorithme des
K-means [48].
La Figure 4.1 donne une vue globale sur les principales etapes de la strategie, et
qui est realisee a partir d’une simple instance de workflow (prise comme exemple).
4.2. Strategie d’ordonnancement basee sur la replication de donnees 46
Figure 4.1 – Vue globale de la strategie utilisee
L’approche utilisee [71] comprend deux etapes importantes. Chacune d’elles
contient un ensemble d’operations a effectuer. En plus de ces deux etapes, nous
avons etendu la strategie avec un service de replication qui constituera la troisieme
phase de ce travail [15, 18]. Ces trois etapes se resument comme suit :
1. Etape de construction : Represente la premiere partie de la strategie, dans
laquelle les operations suivantes doivent etre realisees :
– Construction de la matrice de dependances ;
– Etablissement de la matrice de dependances clusterisee ;
– Partitionnement et deplacement des donnees vers leurs nouveaux emplace-
ments ;
– Obtention du parametre K, pour l’algorithme des K-means.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 47
2. Etape d’execution : Represente la deuxieme partie de la strategie, dans
laquelle les operations suivantes doivent etre effectuees :
– Ordonnancement et execution des taches ;
– Traitement des donnees generees en appliquant l’algorithme des K-means ;
3. Etape de replication : Represente l’extension ajoutee a la strategie utilisee.
Elle comprend un service de replication dynamique des donnees.
4.2.1 Etape de construction
Durant la phase de construction, un modele de matrice sera utilise pour represen-
ter les donnees existantes. Un pre-classement de ces donnees sera, ensuite, effectue
en appliquant des transformations a cette matrice et en distribuant les donnees sur
differents datacenters. Cette distribution representera les partitions initiales pour
l’algorithme des K-means, qui sera utilise durant l’etape d’execution.
L’etape de construction se constitue, a son tour, de deux etapes :
– Mise en place et clusterisation de la matrice de dependance ;
– Partitionnement et distribution des datasets.
4.2.1.1 Mise en place et clusterisation de la matrice de dependance
Dans les Clouds executant des workflows scientifiques, de nombreuses instances
vont etre executees simultanement. Certaines taches utiliseront un nombre impor-
tant de donnees et produiront, ainsi, plusieurs autres donnees en sortie.
Dans le but d’executer une tache, toutes les donnees requises doivent etre situees
dans le meme datacenter et cela peut necessiter certains mouvements des donnees
aussi appelees datasets.
En outre, si deux datasets sont toujours utilises ensemble par de nombreuses
taches, ils doivent etre stockes ensemble dans le but de reduire la frequence du
mouvement de donnees.
De ce fait, de nombreux algorithmes et operations doivent etre effectues, la
demarche se presente comme suit :
4.2. Strategie d’ordonnancement basee sur la replication de donnees 48
1. Calcul des dependances :
Deux ensembles sont a considerer, l’ensemble de datasets note par D et l’en-
semble de taches note par T . Chaque dataset di ∈ D possede deux attributs
notes : 〈Ti, si〉 ou Ti ⊂ T est l’ensemble de taches qui utiliseront le dataset di,
si etant la taille de di. Deux datasets di et dj sont dits dependants s’il existe
des taches qui utiliserons a la fois di et dj . La quantite de cette dependance
est egale au nombre de taches communes entre di et dj (voir Formule 4.1) :
dependencyij = Count(Ti⋂Tj) (4.1)
2. Construction de la matrice de dependance DM :
Chaque element de la matrice DM, note DMi,j = dependencyij . Pour les ele-
ments de la diagonale, chaque valeur DMi,i representera le nombre de taches
qui vont utiliser le dataset di. DM est une matrice symetrique de dimension
n× n ou n est le nombre total des datasets existants.
3. Elaboration de la matrice de dependance clusterisee :
Le Bond Energy Algorithm (BEA) [43] sera applique sur la matrice DM dans
le but de regrouper les valeurs similaires ensembles, c’est-a-dire que les grandes
valeurs ensembles et les petites valeurs ensembles.
Deux mesures, BEC et BEL sont definies pour cet algorithme. La permutation
est faite de telle sorte que ces mesures (voir les Formules 4.2 et 4.3) soient
maximisees :
BECi, j =
n∑i=1
DMi,j ×DMi,j+1 (4.2)
BELi, j =n∑
j=1
DMi,j ×DMi+1,j (4.3)
Algorithme du BEA : Le Bond Energy Algorithm [43] a ete propose en 1972
et a ete largement utilise dans les systemes de bases de donnees distribues. C’est un
algorithme de permutation qui peut regrouper, ensemble, les objets similaires dans
4.2. Strategie d’ordonnancement basee sur la replication de donnees 49
la matrice en calculant des energies (d’ou son nom) et en permutant les lignes et
les colonnes.
Apres de nombreuses iterations, le resultat de l’application de cet algorithme
donnera une matrice de dependance clusterisee notee CM . La Figure 4.2 resume, a
travers un diagramme d’activite, cette phase de mise en place et clusterisation de
la matrice de dependance.
Figure 4.2 – Diagramme d’activite de la phase de mise en place et clusterisation
de la matrice de dependance
4.2.1.2 Partitionner et distribuer les datasets
Au cours de cette partie, deux operations importantes seront effectuees. Ces
dernieres sont le partitionnement et la distribution des datasets.
A. Etape de Partitionnement :
L’ensemble des datacenters est note DC dans lequel chaque datacenter dcj possede
une capacite de stockage notee csj . Un algorithme de partitionnement binaire (voir
Algorithme 1) sera applique sur la matrice CM dans le but d’obtenir le meilleur
partitionnement binaire possible. Une mesure PM (voir Formule 4.4) est definie
pour cet algorithme.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 50
PM =
p∑i=1
p∑j=1
CMij ×n∑
i=p+1
n∑j=p+1
CMij − (
p∑i=1
n∑j=p+1
CMij)2 (4.4)
Cette mesure signifie que les datasets dans chaque partition auront des depen-
dances plus elevees qu’avec les datasets qui se trouvent dans les autres partitions.
Algorithme de partitionnement binaire : Cet algorithme a ete mis en place
afin de partitionner, dans un premier temps, la matrice CM en deux parties (ou deux
sous-matrices). Le principe de cet algorithme est definit comme suit :
Etant donne un ensemble D de datasets, l’algorithme essaye, a chaque iteration,
de former deux groupes differents a partir des datasets existants, dans le but de
trouver la meilleure combinaison possible. L’operation s’effectue en variant la valeur
de p et en choisissant la valeur maximum de PM . Choisir une valeur max pour PM
signifie que les datasets se trouvant dans le meme groupe ont une dependance plus
elevee que s’ils etaient regroupes autrement.
Algorithme 1 Algorithme de partitionnement binaire
Input : CM : Matrice de dependance clusterisee.
Output : CMT et CMB : Deux matrices clusterisees representant les 2 partions de
CM .
Description :
1: pour p := 1, p ≤ n− 1, p+ + faire
2: Calculer PM (formule 4.4)
3: pour tout PMs obtenues faire
4: Choisir p/ sa valeur PM = MAX
5: Prendre p point de coupure et Partitionner CM en CMT et CMB
6: retour CMP ;
Apres de nombreuses operations, le resultat de l’application de cet algorithme
donnera deux matrices clusterisees notees CMT et CMB. La matrice CMT repre-
sente la premiere partition de CM , elle contient le sous-ensemble de datasets DT /
DT = {d1, d2, ..., dp}. DT est de taille dsT / dsT=∑p
i=1 si. La matrice CMB repre-
sente la deuxieme partition de CM , elle contient le sous-ensemble de datasets DB/
4.2. Strategie d’ordonnancement basee sur la replication de donnees 51
DB = {dp+1, dp+2, ..., dn}. DB est de taille dsB/ dsB=∑n
i=p+1 si. P etant le point
de coupure.
La Figure 4.3 montre un diagramme d’activite decrivant l’algorithme de parti-
tionnement de la matrice de dependance clusterisee.
Figure 4.3 – Diagramme d’activite pour le partitionnement de la matrice de de-
pendance clusterisee
B. Etape de distribution :
Dans cette partie, nous devons distribuer les datasets sur les datacenters. Un para-
metre note λini est introduit pour chaque datacenter dcj ∈ DC. Il designe l’usage
initial (en %) de la capacite de stockage du datacenter, c’est-a-dire, que la taille ini-
tiale des datasets qui vont se trouver dans dcj ne pourra pas depasser csj ∗ λini. La
valeur de λini dependra du type d’application en cours d’execution [71]. De ce fait,
nous avons etabli une liste d’applications avec les valeurs de λini correspondantes
(Voir Tableau 4.1) :
4.2. Strategie d’ordonnancement basee sur la replication de donnees 52
Type d’application Valeur de λini
Bio-informatique 50%
Astronomie 40%
Physique nucleaire 20%
Sismologie 60%
Sciences de la sante 30%
Table 4.1 – Valeurs de λini par rapport aux types d’applications
Un algorithme de distribution (voir Algorithme 2) sera applique sur la matrice
CM .
Algorithme de distribution : Cet algorithme a ete concu dans le but d’af-
fecter les datasets existants aux datacenters disponibles, en suivant certaines condi-
tions. Le principe de cet algorithme est :
Etant donne un ensemble DC de datacenters, l’algorithme calcule pour chacun
d’eux, sa capacite de stockage initiale (Ligne 2 de l’Algorithme 2). Ensuite, il verifie
si les datacenters disponibles pourront heberger tous les datasets existants (Ligne 3
de l’Algorithme 2). Si la condition precedente est satisfaite, l’algorithme partitionne,
d’abord, la matrice CM (Ligne 4 de l’Algorithme 2) et ensuite, refait l’operation (si
necessaire) avec les sous-matrices MCT et MCB jusqu’a trouver un datacenter dci
d’une capacite de stockage (parmi celles disponibles) qui puisse heberger la partition
en question. (En cas de non satisfaction de la condition, la distribution ne pourra
pas s’effectuer). Une fois le datacenter dci trouve, la distribution des datasets est
effectuee (Lignes 12 et 20 de l’Algorithmes 2), ainsi que l’affectation de l’identifiant
du datacenter a l’ensemble K.
Des appels recursifs de l’algorithme de distribution sont executes, jusqu’a la
distribution de la derniere partition.
La Figure 4.4 montre un diagramme d’activite decrivant la phase de partition-
nement et distribution des datasets.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 53
Algorithme 2 Algorithme de distribution des datasets
Input : CM : Matrice de dependance clusterisee.
DC : Ensemble de datacenters.
Output : K : Ensemble de datacenters avec les datasets initiaux.
Description :
1: pour each dcj ∈ DC faire
2: i csj = csj ∗ λini
3: si∑n
i=1 si <∑m
j=1 (csj ∗ λini) alors
4: Partitionner CM (Algorithme 1)
5: si dsT < maxmj=1csj alors
6: Trouver dci ∈ DC
7: si csi = minmj=1(csj > dsT ) alors
8: Distribuer CMT dans dci
9: Mettre dci dans K
10: i csj = i csj − dsT
11: sinon
12: Partitionner et Distribuer CMT (Algorithme 1, 2)
13: si dsB < maxmj=1 alors
14: Trouver dci ∈ DC
15: si csi = minmj=1(csj > dsB) alors
16: Distribuer CMB dans dci
17: Mettre dci dans K
18: i csj = i csj − dsB
19: sinon
20: Partitionner et Distribuer CMB (Algorithme 1, 2)
21: La distribution ne peut pas etre effectuee //Taille des datasets > Capa-
cite des DC
22: retour K ;
4.2. Strategie d’ordonnancement basee sur la replication de donnees 54
Figure 4.4 – Diagramme d’activite de la phase de partitionnement et distribution
des datasets
4.2. Strategie d’ordonnancement basee sur la replication de donnees 55
Le resultat obtenu, de la phase de partitionnement et distribution, est l’ensemble
de datacenters sur lesquels nous avons effectue une distribution. Cet ensemble note
K represente le parametre d’entree pour l’algorithme du K-means qui s’effectuera
dans l’etape d’execution. Avec ce troisieme algorithme, l’etape de construction
s’acheve pour donner naissance a l’etape d’execution.
4.2.2 Etape d’execution
Durant la phase d’execution, l’algorithme des K-means [48] sera utilise afin
de classifier, dynamiquement, les datasets generes en affectant chacun deux a l’un
des K datacenters obtenus durant l’etape de construction. Comme pour l’etape de
construction, cette etape, contient, elle aussi, deux phases importantes :
– Ordonancement et execution des taches ;
– Preallocation des datasets generes par un algorithme de classification.
4.2.2.1 Ordonnancement et execution des taches
Avant de se preoccuper des datasets qui vont etre generes, il faudrait, d’abord
executer les taches existantes. Etant donne que le deplacement de datasets d’un
datacenter vers un autre est plus couteux que l’ordonnancement des taches vers ce
datacenter. Un algorithme d’ordonnancement des taches est utilise (Algorithme 3).
Dans cet algorithme, la technique employee se base sur le placement des datasets,
c’est-a-dire, les taches pretes sont ordonnancees vers le datacenter qui contient la
majorite des datasets requis. Une tache est dite prete si tous les datasets requis
appartiennent a l’ensemble des datasets existants. Une fois les taches executees, de
nouveaux datasets sont generes.
La Figure 4.5 montre un diagramme d’activite decrivant l’ordonnancement et
l’execution des taches.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 56
Algorithme 3 Algorithme d’ordonnancement
Input : T : Ensemble de taches.
DC : Ensemble de datacenters.
Output : Toutes les taches ordonnancees vers le datacenter approprie.
Description :
pour chaque ti ∈ T faire
si les datasets requis par ti sont disponibles alors
Ordonnancer ti vers dcj pour s’executer
si dcj possede la majorite des datasets requis par ti alors
Mettre etat ti= pret
sinon
etat ti= non pret
pour chaque ti ∈ T faire
si etat ti= pret alors
Executer ti
Figure 4.5 – Diagramme d’activite de la phase d’ordonnancement et execution des
taches
4.2. Strategie d’ordonnancement basee sur la replication de donnees 57
4.2.2.2 Pre-allocation des datasets generes par un algorithme de classi-
fication
Une fois generes, les nouveaux datasets seront classifies a l’aide de l’algorithme
des K-means [48], en suivant la demarche suivante :
A. Choix du Datacenter destinataire
Etant donne du un nouveau dataset genere et Tu l’ensemble des taches qui
utiliseront du. Le calcul de la dependance entre du et les K datacenters se
procede comme suit :
1. En premier lieu, le calcul des dependances entre du et tous les datasets
existants est effectue. Aussi, une colonne et une ligne seront ajoutees a
la matrice de dependance DM , ou :
DMui = dependencyui = Count(Tu⋂Ti) i = 1, 2, .., n (4.5)
2. En second lieu, le calcul des dependances entre du et les K datacenters
est effectue, ou :
dc depuj =∑
dm∈dcj
dependencyum j = 1, 2, ..,K (4.6)
Une fois, les K dependances calculees, le datacenter avec la plus grande valeur
de dependance est selectionne (la dependance entre deux datasets represente
le nombre de taches qui les executent ensemble, plus elle est elevee dans un
datacenter donne plus le dataset genere est dependant et doit se trouver avec
les datasets de ce datacenter). Ce dernier est note dch, ou :
dc depuh = maxKj=1(dc depuj) (4.7)
dch est le datacenter dans lequel le dataset du va etre stocke. Une verification
de la capacite de stockage disponible pour ce datacenter est effectuee avant le
deplacement de du.
B. Verification de l’espace de stockage
Un parametre note λmax est introduit pour chacun des K datacenters. Il
designe l’usage maximal (en %) de la capacite de stockage du datacenter, c’est-
a-dire, un seuil indiquant quand est-ce qu’un datacenter devient surcharge.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 58
La valeur de λmax dependra de la charge de travail globale du systeme. De ce
fait, nous supposons que tous les datacenters ont une charge plus au moins
egale. Par consequent, la valeur de λmax sera la meme pour tous, ainsi : λmax
= 90 % ([71]).
De ce fait, les datasets generes ne peuvent utiliser qu’un taux limite de la
capacite de stockage d’un datacenter dci, note par csiUT , tel que :
csiUT = csi ∗ (λmax − λini) (4.8)
Enfin, le dataset genere du sera deplace au datacenter dch selectionne si la
formule 4.9 est verifiee :
csh ∗ λ+ su < csh ∗ λmax (4.9)
ou su est la taille de du est λ est le pourcentage de l’usage en cours de la
capacite de stockage de dch.
Les demarches ci-dessus representent les operations elementaires qu’utilisera
l’algorithme des K-means pour la classification des datasets generes.
Algorithme des K-means
L’algorithme des K-means, ou K-moyennes a ete propose en 1967 [48]. Il figure
parmi les techniques de classification non supervisee (clustering) les plus uti-
lisees pour resoudre les problemes de classification. Son principe se constitue
des etapes suivantes :
i) Placer K points d’entree : C’est K points representeront les groupes
initiaux, sur la base desquels la classification s’effectuera. Dans notre tra-
vail, ces points d’entree sont les K datacenters resultant de la phase de
construction.
ii) Calculer des distances avec les K points : Dans notre strategie, ce
sont les dependances qui sont calculees (voir formules 4.5 et 4.6).
iii) Choisir le point le plus proche : Dans notre cas, la notion de proche
4.2. Strategie d’ordonnancement basee sur la replication de donnees 59
est exprimee en terme de plus grande valeur de dependance avec l’un des
K datacenters (voir Formule 4.7).
iv) Classifier : Une fois le datacenter approprie trouve et apres une veri-
fication de la capacite de stockage disponible (voir Formules 4.8 et 4.9) ;
l’affectation des datasets est effectuee.
La Figure 4.6 montre un diagramme d’activite decrivant la gestion des datasets
generes avec l’algorithme des K-means.
Figure 4.6 – Diagramme d’activite pour la gestion des datasets generes avec l’al-
gorithme des K-means
Remarques :
1. Vu que λmax represente le pourcentage de l’espace de stockage total d’un data-
center, chaque datacenter aura toujours un certain espace disponible (100%−
λmax) pour faciliter le mouvement des datasets durant la re-distribution.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 60
2. Dans le cas ou λmax est mis a 100%, un espace de stockage additionnel et
temporaire peut etre requis pour servir comme buffer, avant l’accomplisse-
ment du processus d’ajustement. Cependant, cette situation ne se produit
que rarement dans le systeme et ce pour les causes suivantes :
(a) La taille totale des datasets dans le systeme est plus petite que celle de
la capacite de stockage disponible dans tous les datacenters, car nous
sommes sur que les datacenters peuvent heberger tous les datasets du
systeme ;
(b) Pour chaque datacenter, nous reservons certain espace de stockage pour
les datasets generes pendant l’execution (cs ∗ (λmax − λini)), cet espace
de stockage n’est pas toujours tres utilise, parce que nous supprimons les
datasets obsoletes, dynamiquement.
Dans le but d’ameliorer et d’augmenter les performances de l’approche utilisee,
nous proposons de l’etendre par un service de gestion de replication dynamique.
4.2.3 Service de gestion de replication dynamique
Durant l’etape d’execution, chacune des taches va etre ordonnancee vers le data-
center qui possede la majorite des datasets requis. Avec cette approche, nous allons
essayer de repliquer certains datasets dans le but de minimiser leurs deplacements
d’un datacenter vers un autre et par consequent reduire le temps de reponse des
requetes des utilisateurs. Pour ce faire nous avons elabore un algorithme pour la
replication des datasets.
Afin de repliquer certains datasets importants, les plus frequemment utilises, un
algorithme a ete mis en place. Son principe peut etre decrit comme suit :
1. Etant donne un ensemble T des taches s’executant dans un datacenter donne,
nous calculons la majorite absolue pour cet ensemble. Cette majorite repre-
sente le seuil a partir duquel la replication s’effectuera (Ligne 1 de l’Algo-
rithme 4). Ainsi, dans chaque datacenter, le seuil dependra du nombre de
taches s’executant dans ce datacenter (voir les Formules 4.10 et 4.11). Si :
4.2. Strategie d’ordonnancement basee sur la replication de donnees 61
Nb tches = pair =⇒ Seuil = (Nb tche \ 2) + 1 (4.10)
Nb tches = impair =⇒ Seuil = (Nb tche+ 1) \ 2 (4.11)
2. Pour chaque tache nous marquerons les datasets qui ne sont pas disponibles
dans le datacenter destinataire, c’est-a-dire, que chaque datacenter contiendra
sa propre liste de marquage qui sera etablie en fonction des datasets non dispo-
nibles en local et qui doivent etre deplaces (Lignes 2 jusqu’a 4 de l’Algorithme
4).
3. Si la majorite des taches requierent le deplacement du meme dataset, ce der-
nier va etre replique, afin d’eviter son deplacement pour chaque tache (Lignes
6 et 7 de l’Algorithme 4).
4. La replication doit s’effectuer au niveau du datacenter destinataire sur lequel
les taches, qui requierent le dataset marque, s’executeront.
5. Dans le cas ou il y a plusieurs datasets marques pour lesquels le marquage
a atteint le seuil, la replication s’effectuera pour l’ensemble de ces datasets
marques. Une fois les datasets en question repliques, l’execution des taches
commence.
4.2. Strategie d’ordonnancement basee sur la replication de donnees 62
Algorithme 4 Algorithme de replication
Input : T : Ensemble de taches.
K : Ensemble de datacenters resultant de l’etape de construction.
Output : Datasets repliques.
Description :
Calculer le Seuil
pour chaque dcj ∈ K faire
pour chaque ti ∈ T faire
si dj est requis par ti mais dj /∈ dci alors
Marquer dj
si Nombre de marquage >= Seuil alors
repliquer dj
pour chaque dcj ∈ K faire
Mettre a jour csj
pour chaque ti ∈ T faire
Executer ti
La Figure 4.7 expose un diagramme d’activite decrivant le service propose pour
les replications dynamiques.
4.3. Strategie d’ordonnancement basee sur le groupement de taches 63
Figure 4.7 – Diagramme d’activite pour la phase de la replication dynamique
4.3 Strategie d’ordonnancement basee sur le groupe-
ment de taches
Dans cette section, nous decrivons notre deuxieme contribution a savoir une
strategie pour l’ordonnancement des taches et l’allocation de ressources, destinee
aux applications de workflows scientifiques distribuees. La strategie d’ordonnance-
ment est basee sur le groupement de taches [17] qui se compose de deux grandes
etapes :
– Etape de construction ;
– Etape d’ordonnancement.
4.3. Strategie d’ordonnancement basee sur le groupement de taches 64
4.3.1 Etape de construction
Nous construisons dans cette etape la matrice de dependance, c’est une matrice
symetrique carree (taches/taches), chaque case de sa diagonale represente le nombre
de donnees dans le Cloud, et le reste des elements represente les dependances entre
les taches. Cette dependance est calculee par la Formule suivante (voir formule
4.12) :
TMij = dependencyij = Count(Di
⋂Dj) (4.12)
Le resultat de l’application de la Formule 4.12 sur l’ensemble des donnees et des
taches dans le Cloud donnera une matrice de dependance notee TM . La Figure 4.8
donne un exemple sur cette matrice de dependance :
Figure 4.8 – Exemple de construction de la matrice de dependance TM
Une fois la matrice de dependance etablie. Nous appliquons l’algorithme BEA
(Bound Energy Algorithm) [43] sur la matrice TM . C’est un algorithme qui consiste
a regrouper les valeurs identiques de la matrice, ensemble, en permutant l’ensemble
des lignes et des colonnes. Deux mesures, BEC et BEL sont definies pour cet algo-
rithme. La permutation est faite de telle sorte que ces mesures (voir les Formules
4.13 et 4.14) soient maximisees :
′BECi, j =
n∑i=1
TMi,j × TMi,j+1 (4.13)
′BELi, j =
n∑j=1
TMi,j × TMi+1,j (4.14)
4.3. Strategie d’ordonnancement basee sur le groupement de taches 65
La Figure 4.9 donne un exemple de l’application de l’algorithme BEA sur la
matrice de dependance de l’exemple 4.8 :
Figure 4.9 – Exemple d’application de l’algorithme BEA sur la matrice de depen-
dance TM
Apres l’application de l’algorithme BEA sur la matrice de dependance. Nous
obtenons une matrice de dependance clusterisee. Cette matrice est ensuite decoupee
en sous matrices en definissant un point de coupure. Le nombre de sous matrices
depend du nombre de datacenters dans le Cloud. La Figure 4.10 montre un exemple
de decoupage de la matrice en deux sous matrices :
Figure 4.10 – Exemple de decoupage de la matrice de dependance clusterisee
4.3. Strategie d’ordonnancement basee sur le groupement de taches 66
4.3.2 Etape d’ordonnancement
Une fois le decoupage de la matrice realise, nous obtenons un ensemble de sous
matrices. L’ensemble de groupe de taches de chaque sous matrice est affecte au
datacenter correspondant. La figure 4.11 donne un exemple d’affectation et d’or-
donnancement des taches dans le datacenter correspondant :
Figure 4.11 – Exemple d’affectation et d’ordonnancement des taches dans l’en-
semble des Datacenters
La Figure 4.12 montre un diagramme d’activite decrivant la phase d’affectation
et d’ordonnancement des taches dans l’ensemble des Datacenters et l’Algorithme 5)
decrit la phase d’ordonnancement des taches vers les datacenters.
Figure 4.12 – Affectation et ordonnancement des taches
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 67
Algorithme 5 Algorithme d’ordonnancement
Input :
T : Ensemble de taches.
DC : Ensemble de datacenters.
Output : Toutes les taches ordonnancees vers le datacenter approprie.
Description :
pour chaque ti ∈ T faire
si les datasets requis par ti sont disponibles alors
Ordonnancer ti vers dcj pour s’executer
si dcj possede la majorite des datasets requis par ti alors
Mettre etat ti= pret
sinon
etat ti= non pret
pour chaque ti ∈ T faire
si etat ti= pret alors
Executer ti
4.4 Strategies d’ordonnancement et d’allocation de res-
sources pour les Big Data
Dans cette section, nous decrivons notre troisieme contribution a savoir deux
sous-strategies pour l’ordonnancement des taches et l’allocation de ressources, des-
tinee aux environnements de Cloud computing. Deux variantes d’ordonnancement
des taches et d’allocation des ressources [16] sont presentees :
4.4.1 La premiere variante OADTV
Nous proposons une strategie d’ordonnancement des taches et l’allocation des
ressources en fonction de la date limite, la taille des cloudlets et la vitesse d’execution
de la machine virtuelle (variante OADTV). Notre proposition est differente de celle
presentee en [27] car nous ajoutons dans l’algorithme, dans la deuxieme etape,
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 68
la division du nombre de cloudlets par le nombre de machines virtuelles afin de
minimiser le temps d’execution moyen de toutes les taches. Les grandes lignes de la
strategie sont les suivantes, et le diagramme d’activite correspondant est represente
dans la Figure 4.13 :
Figure 4.13 – La premiere variante OADTV d’ordonnancement et d’allocation de
ressources dans les Cloud computing
Notre premiere variante d’ordonnancement est composee de trois etapes :
Etape 1 : Trier les cloudlets (taches) en fonction de la date limite des instructions
et de leurs longueurs (taille) dans l’ordre croissant ;
Etape 2 : Trier les machines virtuelles en fonction de la vitesse d’execution dans
l’ordre croissant ;
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 69
Etape 3 : Attribuer pour chaque VM un vecteur de taches, le nombre de cases
est egal a M qui est le nombre de taches (nombre de cloudlets) divise par N
(nombre de VM) ; de sorte que le premier groupe des premieres taches sont
executees par la premiere machine virtuelle, la seconde sont executees par la
deuxieme machine virtuelle,...
Un algorithme d’ordonnancement des taches est utilise (Algorithme 6) :
Algorithme 6 Algorithme d’ordonnancement
Input :
T : Ensemble de taches (Cloudlets).
DC : Ensemble de datacenters.
VM : Ensemble de machines virtuelles.
Output : Toutes les taches ordonnancees vers les machines virtuelles appropriees.
Description :
pour chaque ti ∈ T faire
Trier ti en fonction de la date limite et la longueur
pour chaque vmi ∈ VM faire
Trier vmi en fonction de la vitesse d’execution
Attribuer a chaque vmi un vecteur contenant la liste des ti a executer
pour chaque ti ∈ T faire
pour chaque vmj ∈ VM faire
si etat ti= pret alors
Executer ti dans vmj
Mettre a jour la liste des ti et vmj
4.4.2 La deuxieme variante OAAMV
La deuxieme strategie d’ordonnancement des taches et d’allocation des res-
sources utilise une structure d’arbre de donnees appelee Arbre de machines virtuelles
(AMV) pour l’execution efficace des taches. Notre algorithme est une amelioration
du travail [45], et il offre un meilleur equilibrage de charge. Un arbre de machines
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 70
virtuelles (AMV) est un arbre binaire avec N nœuds. Chaque nœud represente une
machine virtuelle contenant un identifiant Id et une vitesse d’execution exprimee en
MIPS de la machine virtuelle. N represente le nombre total de machines virtuelles
specifiques de calcul dans le Cloud. La propriete speciale de AMV est que la valeur
de nœud (MIPS) au niveau L est superieure ou egale a la valeur de nœud au niveau
L+1 ou L >= 0. Chaque nœud contient zero, un ou deux nœuds enfants. Un nœud
sans nœud enfant est appele un nœud feuille et le nœud avec des nœuds enfants est
designe en tant que nœud interne.
Considerons 5 machines virtuelles specifiques de calcul representees par leur Id
et MIPS V = {{0, 250}, {1, 1000}, {2, 250}, {3, 500}, {4, 250}}. La Figure 4.14 ci-
dessous montre le AMV. Le AMV est construit sur la base de l’ordre prioritaire des
machines virtuelles de gauche a droite, de telle sorte que la machine virtuelle avec
la plus haute MIPS devient la racine de l’arbre.
Figure 4.14 – La deuxieme variante OAAMV d’ordonnancement et d’allocation de
ressources dans les Cloud computing
Dans la Figure 4.14 ; l’arbre AMV a un nœud racine representant la machine
virtuelle avec Id = 1 et MIPS = 1000. Le nœud racine a deux enfants. Le nœud
enfant de gauche represente la machine virtuelle avec Id = 3 et MIPS = 500. Le
nœud enfant droit represente la machine virtuelle avec Id = 0 et MIPS = 250. De
meme, le nœud qui represente la machine virtuelle avec Id = 3 et MIPS = 500
a 2 enfants. L’enfant gauche de ce nœud represente les machines virtuelles avec
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 71
Id = 2 et MIPS = 250, l’enfant droit represente la machine virtuelle avec Id = 4
et MIPS = 250.
Nous presentons ici une strategie d’ordonnancement et d’allocation de ressources
basee sur un groupe de taches dans le Cloud. Soient T COUNT le nombre to-
tal de taches soumises et L COUNT le nombre total de nœuds feuilles en AMV.
Le nombre total de groupes G COUNT pour les taches presentees sont calculees
comme suit : G COUNT = L COUNT . Si AMV est construit avec 5 machines
virtuelles, le nombre total des groupes est le nombre de niveau (il est egal a 3 dans
notre exemple). Le nombre de taches de chaque groupe G est calcule comme suit,
G = Nombre de niveaux. Chaque groupe contient le nombre maximum de taches en
MIPS, qui ne doit pas depasser une valeur qui est calculee par la Formule 4.15, et
chaque groupe de taches est assigne pour chaque niveau, le premier dans le niveau
superieur (racine), le deuxieme groupe dans le second et le dernier groupe dans le
troisieme niveau.
∑lengthoftasks ∈ G COUNT <=
∑lengthoftasks∗(VMMipsinlevel)÷
∑MipsofVMs
(4.15)
Un algorithme d’ordonnancement des taches est utilise (Algorithme 7) :
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 72
Algorithme 7 Algorithme d’ordonnancement
Input : T : Ensemble de taches (Cloudlets).
DC : Ensemble de datacenters.
VM : Ensemble de machines virtuelles.
L COUNT : Le nombre total de nœuds feuilles en AMV.
G COUNT : Le nombre total de groupes G COUNT
Output : Toutes les taches ordonnancees vers les machines virtuelles appropriees.
Description :
pour chaque vmi ∈ VM faire
Trier vmi en fonction de la vitesse d’execution Mips
Attribuer chaque vmi comme racine a l’arbre AMV
G COUNT = L COUNT
pour chaque ti ∈ T faire
Trier ti en fonction de la longueur Mips
pour chaque ti ∈ T faire
pour chaque vmj ∈ G COUNT faire
Attribuer ti a vmj tel que∑lengthoftasks ∈ G COUNT <=∑
lengthoftasks ∗ (VMMipsinlevel)÷∑MipsofVMs
pour chaque ti ∈ T faire
pour chaque vmj ∈ VM faire
si etat ti= pret alors
Executer ti dans vmj
Mettre a jour la liste des ti et vmj
Prenons l’exemple de 12 taches representees par leurs Id et leurs longueurs
(MIPS) tel que :
G = {{0, 20000}, {1, 20000}, {2, 20000}, {3, 10000}, {4, 10000}, {5, 20000}, {6, 10000},
{7, 20000}, {8, 10000}, {9, 10000}, {10, 20000}, {11, 10000}}.
Apres le decoupage et le regroupement de taches, chaque groupe contient les
taches suivantes :
4.4. Strategies d’ordonnancement et d’allocation de ressources pour lesBig Data 73
G1 = {{0, 20000}, {1, 20000}, {2, 20000}, {5, 20000}}
G2 = {{7, 20000}, {10, 20000}, {3, 10000}, {4, 10000}}
G3 = {{6, 10000}, {8, 10000}, {9, 10000}, {11, 10000}}
Une fois les regroupements des taches sont effectuees, les machines virtuelles
appropriees sont selectionnees pour l’execution. Les taches de chaque groupe sont
selectionnees sequentiellement et soumises a la machine virtuelle correspondante.
L’ordre est le suivant : La premiere tache du groupe G1 est executee par la machine
virtuelle representee par le nœud racine de l’arbre AMV. La deuxieme tache sera
executee par son enfant, la troisieme tache sera executee par le petit-enfant et
ainsi de suite. Une fois qu’elle atteint la machine virtuelle representee par le nœud
feuille, la tache suivante sera soumise a nouveau au nœud racine et ainsi de suite.
La meme procedure est repetee pour toutes les taches de chaque groupe. La Figure
4.15 ci-dessous montre l’arbre AMV pour 5 machines virtuelles et le nombre total
de groupes formes pour les 12 taches soumises.
Figure 4.15 – Le resultat d’execution des taches
Ici, le nombre total de taches soumises sera rassemble en 3 groupes a savoir
G1, G2 et G3 respectivement. Les taches avec Id = 0, 2, 5, 7 seront dans le groupe
G1, les taches avec Id = 10, 1, 3, 4 seront dans le groupe G2 et les taches avec
Id = 6, 8, 9, 11 seront dans le groupe G3 respectivement.
4.5. Conclusion 74
4.5 Conclusion
Au cours de ce chapitre, nous avons essaye de decrire nos trois contributions pour
l’ordonnancement et l’allocation de ressources, nous avons presente les differentes
etapes a suivre pour l’utilisation de nos trois strategies. Nous avons etendue la
premiere strategie par un service de replication dynamique, la seconde strategie
d’ordonnancement est basee sur le groupement de taches et la derniere strategie
d’ordonnancement de taches et d’allocation de ressources est destinee pour les Big
data. Du point de vue technique, nous avons utilise un ensemble d’algorithmes, de
formules et de diagrammes UML pour faciliter la comprehension et la lecture du
chapitre, d’une part, et d’autre part pour donner un schema conceptuel general du
travail realise.
Dans le chapitre suivant, nous nous interessons a la concretisation des strategies
proposees et cela par l’implementation de nos strategies presentees et les differentes
interpretations des resultats obtenus par la simulation.
Chapitre 5
Experimentation et evaluation
Sommaire
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2 Langage et environnements de travail . . . . . . . . . . . . . 76
5.2.1 Langage de programmation Java . . . . . . . . . . . . . . . . . 76
5.2.2 Environnements de developpement . . . . . . . . . . . . . . . . 76
5.3 Resultats experimentaux . . . . . . . . . . . . . . . . . . . . . 79
5.3.1 Resultats experimentaux 1 : Strategie d’ordonnancement basee
sur la replication de donnees . . . . . . . . . . . . . . . . . . . 79
5.3.2 Resultats experimentaux 2 : Strategie d’ordonnancement basee
sur le groupement de taches . . . . . . . . . . . . . . . . . . . . 88
5.3.3 Resultats experimentaux 3 : Strategies d’ordonnancement et
d’allocation de ressources pour les Big Data . . . . . . . . . . . 92
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.1 Introduction
Ce chapitre est consacre a la phase d’implementation des strategies d’ordon-
nancement et d’allocation de ressources proposees. Il permettra d’evaluer et
de valider nos strategies proposees dans l’environnement de Cloud computing par
rapport aux objectifs traces dans le cahier des charges initial. Pour cela, nous avons
realises plusieurs simulations soit en utilisant notre simulateur developpe en Java,
soit en utilisant le simulateur CloudSim [12], dans le but d’effectuer des series d’ex-
perimentations dont les resultats et les interpretations font l’objet de ce chapitre.
5.2. Langage et environnements de travail 76
5.2 Langage et environnements de travail
Nous avons utilise le langage de programmation Java, les environnements de
developpement Eclipse et Netbeans, et le simulateur CloudSim.
5.2.1 Langage de programmation Java
Le langage Java est un langage de programmation informatique oriente objet
[14, 21, 58]. Java a la particularite principale d’etre portable, c’est a dire, que les
logiciels ecrits avec ce dernier sont tres facilement reutilisable sur plusieurs systemes
d’exploitation tels qu’UNIX, Microsoft Windows, Mac OS ou Linux avec peu ou pas
de modifications. C’est la plate-forme qui garantit la portabilite des applications
developpees en Java.
Le langage reprend en grande partie la syntaxe du langage C++, tres utilise par
les informaticiens. Neanmoins, Java a ete epure des concepts du C++ et a la fois
les plus deroutants, tels que l’heritage multiple remplace par l’implementation des
interfaces. Les concepteurs ont privilegie l’approche orientee objet de sorte qu’en
Java, tout est objet a l’exception des types primitifs (nombres entiers, nombres a
virgule flottante, ...).
Java est un langage de developpement cree par Sun puis rachete par Oracle en
2010 qui a reussi a obtenir une tres grande notoriete en seulement quelques annees
grace a ces qualites. Aujourd’hui Java est largement utilise notamment en entreprise
et pour les applications pour appareils mobiles. Java represente la synthese des bons
cotes de plusieurs langages de programmation (notamment C++ et Small Talk).
5.2.2 Environnements de developpement
Eclipse
Eclipse est un environnement de developpement integre (Integrated Develop-
ment Environment) dont le but est de fournir une plate-forme modulaire pour per-
mettre de realiser des developpements informatiques.
I.B.M. est a l’origine du developpement d’Eclipse qui est d’ailleurs toujours le
cœur de son outil Websphere Studio Workbench (WSW), lui-meme a la base de la
5.2. Langage et environnements de travail 77
famille des derniers outils de developpement en Java d’I.B.M. Tout le code d’Eclipse
a ete donne a la communaute par I.B.M afin de poursuivre son developpement [19].
Eclipse utilise enormement le concept de modules nommes «Plug-Ins» dans
son architecture. D’ailleurs, hormis le noyau de la plate-forme nomme «Runtime»,
tout le reste de la plate-forme est developpe sous la forme de Plug-Ins. Ce concept
permet de fournir un mecanisme pour l’extension de la plate-forme et ainsi fournir
la possibilite a des tiers de developper des fonctionnalites qui ne sont pas fournies en
standard par Eclipse. Eclipse possede de nombreux points forts qui sont a l’origine
de son enorme succes dont les principaux sont :
– Une plate-forme ouverte pour le developpement d’applications et extensible
grace a un mecanisme de Plug-Ins.
– Plusieurs versions d’un meme Plug-In peuvent cohabiter sur une meme plate-
forme ;
– Un support multi langages grace a des Plug-Ins dedies : Cobol, C, PHP, ...
– Support de plusieurs plateformes : Windows, Linux, Mac OS X, ...
– Les nombreuses fonctionnalites de developpement proposees par le JDT.
– Le gestionnaire de mise a jour permet de telecharger de nouveaux Plug-ins ou
nouvelles versions d’un Plug-in deja installees a partir de sites Web dedies.
NetBeans
NetBeans est un projet open source ayant un succes et une base d’utilisateur tres
large, une communaute en croisance constante, et pres 100 partenaires mondiaux et
des centaines de milliers d’utilisateur a travers le monde. Sun Microsystems a fonde
le projet open source NetBeans en Juin 2000 et continue d’etre le sponsor principal
du projet [2].
Aujourd’hui, deux projets existent : L’EDI NetBeans et la Plateforme NetBeans.
L’EDI NetBeans est un environnement de developpement, un outil pour les pro-
grammeurs pour ecrire, compiler, deboguer et deployer des programmes. Il est ecrit
en Java mais peut supporter n’importe quel langage de programmation. Il y a egale-
ment un grand nombre de modules pour etendre l’EDI NetBeans. L’EDI NetBeans
est un produit gratuit, sans aucune restriction quant a son usage.
Egalement disponible, La Plateforme NetBeans ; une fondation modulable et
5.2. Langage et environnements de travail 78
extensible utilisee comme brique logicielle pour la creation d’applications bureau-
tiques. Les partenaires privilegies fournissent des modules a valeurs rajoutees qui
s’integrent facilement a la Plateforme et peuvent etre utilises pour developper ses
propres outils et solutions. Les deux produits sont open source et gratuits pour un
usage commercial et non-commercial. Le code source est disponible pour reutilisa-
tion sous la Common Development and Distribution License (CDDL).
CloudSim
CloudSim est un Framework de simulation generalise et extensible qui permet
la modelisation, la simulation et l’experimentation des nouvelles infrastructures de
Cloud Computing et des services d’application associes. Nous avons utilise pour la
realisation de nos travaux de these la version du simulateur CloudSim 3.0.3.
Le simulateur ClouSim est compose de plusieurs classes (Figure 5.1). Parmi les
classes fondamentales qui forment les blocs constitutifs du simulateur CloudSim,
nous pouvons citer :
Datacenter : La classe Datacenter permet de modeliser le cœur de l’infrastruc-
ture du Cloud. elle encapsule un ensemble de machines physiques appelees
Hosts qui se caracterisent par leurs configurations (memoire, CPU, stockage
et nombre de cœurs). Chaque Datacenter implemente un ensemble d’algo-
rithmes pour l’allocation de la bande passante, la memoire et le stockage aux
differents hosts et machines virtuelles du Cloud.
Cloudlet : La classe Cloudlet modelise les applications. Elle a un nombre d’ins-
tructions et de donnees connu a executer et a transferer. A noter que cette
classe est etendue par WorkflowSim en Task puis en Job pour modeliser les
relations de dependances entre les taches.
Datacenter Broker : Cette classe modelise le courtier (Broker), qui est respon-
sable de la mediation entre les utilisateurs et les prestataires de service selon
les conditions de QoS des utilisateurs et elle permet de deployer les taches de
service a travers les Clouds. Le Broker agit au nom des utilisateurs, il identifie
les prestataires de service appropries du Cloud par le service d’information
du Cloud CIS (Cloud Information Services) et negocie avec eux pour une
5.3. Resultats experimentaux 79
allocation des ressources qui repond aux besoins de QoS des utilisateurs.
Machine virtuelle : Cette classe modelise une instance de la machine virtuelle
(VM), dont la gestion pendant son cycle de vie, est une responsabilite de la
machine (Host). Un Host peut simultanement instancier de multiples VMS et
assigner des cœurs a base des politiques predefinies de partage de processeur :
espace partage ou temps partage (voir Annexe B).
Figure 5.1 – Les principales classes de CloudSim [56]
5.3 Resultats experimentaux
5.3.1 Resultats experimentaux 1 : Strategie d’ordonnancement ba-
see sur la replication de donnees
5.3.1.1 Description du simulateur
Dans cette partie, nous allons nous interesser a la demonstration du simulateur
realise, qui est ecrit en Java et qui permet de tester a travers des exemples et des sce-
narios de simulation [4], la strategie d’ordonnancement basee sur la replication qui
est presente dans le chapitre 4, en faisant reference a quelques interfaces graphiques.
5.3. Resultats experimentaux 80
5.3.1.2 Creation d’un nouveau workflow et configuration des Datacen-
ters
La premiere chose a effectuer est le deploiement d’un nouveau workflow sur le
systeme. L’utilisateur introduit certaines informations concernant le workflow. Il
s’agit du nombre de sous-ensembles de taches (les taches sont regroupees en lots) ;
du nombre de taches, du nombre de donnees ; des datacenters requis, du nombre de
donnees generees (voir Figure 5.2).
Figure 5.2 – Creation d’un nouveau workflow
Toutes les informations sont mises, initialement a 10. Cependant l’utilisateur
peut les modifier en introduisant de nouvelles valeurs. Aussi, l’utilisateur doit choi-
sir le type d’application parmi celles disponibles, c’est-a-dire, a quel domaine son
workflow appartient, pour que le systeme puisse determiner le pourcentage initial
de la capacite de stockage autorisee pour heberger les donnees (il faut laisser un
espace libre pour stocker ; ensuite les donnees generees).
Du moment ou le nombre de datacenters requis est specifie, l’utilisateur peut
passer a leurs configurations en introduisant, a chaque fois le nombre d’hotes, de
machines virtuelles, de processeurs, la bande passante, son cout d’utilisation, la
capacite de stockage et son cout d’utilisation.
5.3. Resultats experimentaux 81
5.3.1.3 Deploiement et clusterisation de la matrice de dependance
A l’issue de l’etape de saisie, toutes les configurations concernant le Cloud et
le workflow, sont effectuees. Ainsi, les calculs concernant la strategie peuvent com-
mencer. Ces derniers commencent par l’elaboration de la matrice de dependance.
La Figure 5.3 suivante montre la creation de la matrice de dependance :
Figure 5.3 – Deploiement de la matrice de dependance
Apres l’etape de construction de la matrice de dependance, on passe a l’etape
de clusterisation de la matrice de dependance avec l’algorithme BEA. La Figure 5.4
montre le resultat obtenu :
Figure 5.4 – Clusterisation de la matrice de dependance
5.3. Resultats experimentaux 82
5.3.1.4 Partitionnement et distribution
La troisieme etape de la strategie est le partitionnement et la distribution des
donnees sur les datacenters. Un journal decrivant la tracabilite du partitionnement
des donnees a ete mis en place (voir Figure 5.5).
Figure 5.5 – Partitionnement et distribution des donnees
5.3.1.5 Gestion des donnees generees
Apres avoir effectue la simulation, c’est a dire que les taches se sont executees, de
nouvelles donnees sont generees. Leur classification est effectuee grace a l’algorithme
des K-means (voir Figure 5.6).
Figure 5.6 – Gestion des donnees generees
5.3. Resultats experimentaux 83
5.3.1.6 Experimentations
Dans cette partie, nous allons effectuer plusieurs series de simulations sur trois
types d’approches :
(i) Approche FCFS (First Come First Served) : Represente la premiere
approche dans laquelle les donnees et les taches sont affectees, aleatoirement,
avec une file d’attente FIFO (First In First Out), aux differents datacenters.
(ii) Approche de placement des donnees : Represente la deuxieme approche
dans laquelle la strategie de placement de donnees est utilisee.
(iii) Approche de replication : Represente la troisieme approche dans laquelle
la replication des donnees est effectuee.
Experience 1 : Temps de reponse
Dans cette premiere serie d’experiences, nous avons mesure le temps de reponse.
Ce dernier est calcule en fonction de l’emplacement des donnees, c’est-a-dire, inclure
la latence ou le temps d’attente pour les donnees qui ne se trouvent pas en local.
Pour cela nous avons lance la simulation avec les trois approches. Les simulations
ont ete realises avec les parametres decrits dans le tableau 5.1 :
Parametres Valeurs
Nombre de donnees 100
Taille des donnees 3000 Go
Nombre des datacenters 20
Capacite de stockage 30000 Go
Nombre de hosts 10
Nombre de VMs 1
Bande passante 10 Go/s
Table 5.1 – Les parametres de simulation pour le temps de reponse
Le resultat des simulations est donne dans la Figure 5.7 :
5.3. Resultats experimentaux 84
0
200000
400000
600000
800000
1000000
1200000
1400000
1600000
1800000
2000000
2200000
2400000
2600000
2800000
3000000
3200000
Tem
ps d
e ré
pons
e m
oyen
(ms)
200 400 600 800 1000
Nombre de tâches
Stratégie FCFS Stratégie de placement Stratégie de réplication
Temps de réponse moyen
Figure 5.7 – Le temps de reponse moyen
Le gain obtenu est donne dans la Figure 5.8 :
0
10
20
30
40
50
60
70
80
90
100
110
Le g
ain
pour
le te
mps
de
répo
nse
(ms)
200 400 600 800 1000
Nombre de tâches
Gain/ Stratégie de placement Gain/ Stratégie de réplication
Le gain pour le temps de réponse
Figure 5.8 – Le gain obtenu pour le temps de reponse
5.3. Resultats experimentaux 85
Experience 2 : Nombre de deplacements
Dans cette deuxieme serie d’experiences, nous avons mesure le nombre de de-
placements. Pour cela nous avons lance la simulation avec les trois approches. Les
simulations ont ete realise savec les parametres decrits dans le tableau 5.2.
Parametres Valeurs
Nombre de taches 100
Taille des donnees 3000 Go
Nombre des datacenters 20
Capacite de stockage 30000 Go
Nombre de hosts 10
Nombre de VMs 1
Bande passante 10 Go/s
Table 5.2 – Les parametres de simulation pour le nombre de deplacements
Le resultat des simulations est donne dans la Figure 5.9 :
0
10
20
30
40
50
60
70
80
90
100
110
Donn
ées
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9
Nombre de déplacement
Stratégie FCFS Stratégie de placement Stratégie de réplication
Nombre de déplacement des données
Figure 5.9 – Le nombre de deplacement des donnees
Le gain obtenu est donne dans la Figure 5.10 :
5.3. Resultats experimentaux 86
-40
-20
0
20
40
60
80
100
120
Le g
ain
pour
le n
ombr
e de
dép
lace
men
t (%
)
D0 D1D2 D3 D4 D5 D6 D7 D8 D9
Données
Gain/ Stratégie de placement Gain/ Stratégie de réplication
Le gain obtenu pour le nombre de déplacement
Figure 5.10 – Le gain obtenu pour le deplacement des donnees
Experience 3 : Cout de la replication
Dans cette troisieme serie d’experiences, nous avons mesure le cout de la re-
plication. Pour cela nous avons lance la simulation avec les trois approches. Les
resultats de simulation ont ete realises avec les memes parametres de simulation en
faisant varier le nombre de datacenters et le nombre de taches comme montre la
figure 5.11 :
0
200000
400000
600000
800000
1000000
1200000
1400000
1600000
1800000
2000000
Tem
ps ré
pons
e m
oyen
(ms)
4 DC 200 tâ
ches
6 DC 300 tâ
ches
8 DC 400 tâ
ches
10 DC 500 tâ
ches
12 DC 600 tâ
ches
Stratégie FCFS Stratégie de placement Stratégie de réplication
Le coût de la réplication pour le temps de réponse
Figure 5.11 – Le cout de la replication
5.3. Resultats experimentaux 87
Le gain obtenu est donne dans la Figure 5.12 :
0
20
40
60
80
100G
ain
pour
le c
oût d
e la
répl
icat
ion
(%)
4 DC 20
0 tâc
hes
6 DC 30
0 tâc
hes
8 DC 40
0 tâc
hes
10 D
C 500 t
âche
s
12 D
C 600 t
âche
s
Gain/ Stratégie de placement Gain/ Stratégie de réplication
Le gain pour le coût de la réplication
Figure 5.12 – Le gain obtenu pour le cout de la replication
Experience 4 : Cout global engendre
Dans cette serie d’experiences, nous avons calcule le cout global engendre. Ce
dernier est calcule en fonction du cout de la bande passante et du cout de stockage
(car ce sont les deux facteurs pertinents dans notre travail). Pour cela nous avons
lance la simulation avec les trois approches cites auparavant. Les simulations ont
ete realises avec les memes parametres de simulations avec 600 taches. La Figure
5.13 ci-dessus montre le resultats de simulation :
Figure 5.13 – Le cout global engendre
5.3. Resultats experimentaux 88
Synthese des resultats obtenus :
Nous avons realise plusieurs simulations en faisant varier plusieurs criteres d’eva-
luation du systeme comme : Le temps de reponse moyen d’execution des taches, le
nombre de deplacement des donnees, le cout de replication et le cout global d’utili-
sation de ressources.
Apres avoir fait plusieurs essais de simulation, nous avons pu extraire les re-
marques suivantes :
– Les premiers graphes (Figures5.7 et 5.8) concernant le temps de reponse
moyen des requetes montrent que le temps de reponse diminue d’une facon
remarquable en utilisant la strategie de replication puisque les donnees sont
repliquees avant l’execution des taches.
– Dans les graphes des (Figures 5.9 et 5.10), nous remarquons que le nombre
de deplacement de donnees entre les centres de donnees a reduit considera-
blement puisque nous avons complete l’approche par un service de replication
dynamique intelligente de donnees.
– Les graphes des Figures (5.11, 5.12 et 5.13) montrent l’effet de l’utilisation
du service de replication dans la reduction du temps de reponse des taches
puisque les donnees seront trouvees sur des machines virtuelles plus proches,
ce qui minimise en plus le temps de reponse des requetes en augmentant le
cout de la replication et par consequent le cout d’utilisation des ressources.
5.3.2 Resultats experimentaux 2 : Strategie d’ordonnancement ba-
see sur le groupement de taches
Dans cette partie, les experiences sont realisees dans un environnement de Cloud
fourni par le simulateur CloudSim (voir Annexe B)
5.3.2.1 Mesures de performances
Nous presentons les mesures de performances sur lesquelles nous sommes ap-
puyees pour interpreter les resultats obtenus par les simulations puis comparer
entre les differentes approches. Les deux principales mesures de performances sont
5.3. Resultats experimentaux 89
le temps de reponse et le budget (cout financier). Ce sont des mesures classiques
pour tester l’efficacite des algorithmes d’ordonnancement et de gestion de ressources.
Le Temps de reponse : Ti etant la date de fin du job i Le temps de reponse est
calcule a partir du Makespan Makespan = max Ti
Il represente tout simplement la date fin du dernier job, parmi tous les jobs
executes.
Le budget : Nous avons propose quelques formules pour calculer le budget. Pour
calculer le cout de traitement des cloudlets qui est egal a la somme du cout
de traitement et de transfert des fichiers d’entrees et de sorties, est donnee
comme suite :
ProcessingCost = (ActuelT imeCPU×CostPerSec)+InputDataTransfer+
OutputTansferCost
Ou le cout total de transfert du fichier d’entree est comme suit :
InputDataTransfer = CostPerBW ×GetCloudletF ilesize
Et le cout total de transfert du fichier de sortie est egal a l’equation :
OutputTansferCost = CostPerBW ×GetCloudletOutputsize.
5.3.2.2 Scenarios et resultats
Dans cette partie, nous allons effectuer plusieurs series de simulations sur les
trois approches :
(i) La politique d’ordonnancement Space Shared (Espace partage) :
Cette politique suit la meme procedure que l’algorithme du premier arrive,
premier servi.
(ii) La politique d’ordonnancement Time Shared (Temps partage) : Le
principe de l’algorithme d’ordonnancement Round-Robin (RR) est utilise dans
cette politique.
(iii) La politique d’ordonnancement Time Shared Clustering : Cette poli-
tique suit la meme procedure que la strategie d’ordonnancement basee sur le
groupement de tache presente dans le chapitre 4.
5.3. Resultats experimentaux 90
– Resultat 1 (Le temps de reponse moyen) :
Dans cette premiere simulation, nous avons calcule le temps de reponse moyen
par les techniques TimeShared et TimeShared Clustering (strategie 2 proposee en
chapitre 4). Pour un nombre de Cloudlets (taches) differents «20, 40, 60, 80, 100,
200, 300, 400, 500» avec une longueur correspondante aux donnees de Cloudlets. Les
Figures 5.14 et 5.15 montrent le resultat d’execution du temps de reponse moyen.
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
750
800
850
Temp
s (s)
20 40 60 80 100
Nombre de cloudlets
Time Shared Time Shared Clustering
Le temps de réponse moyen
Figure 5.14 – Le temps de reponse moyen
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
5500
6000
Temp
s (s)
100 200 300 400 500
Nombre de cloudlets
Time Shared Time Shared Clustering
Le temps de réponse moyen
Figure 5.15 – Le temps de reponse moyen pour des taches>=100
5.3. Resultats experimentaux 91
D’apres ces resultats, nous remarquons que le temps de reponse moyen en Time-
Shared augmente a chaque fois qu’on augmente le nombre de Cloudlets car plusieurs
Cloudlets sont traitees a la fois, alors l’execution prend beaucoup de temps pour
traiter toutes les Cloudlets, par consequent le temps de reponse moyen augmente a
chaque fois. Par contre en TimeShared Clustering le temps de reponse moyen est
tres faible car les Cloudlets sont repartis sur les differents Datacenters. L’allure de
la courbe en TimeShared Clustering est presque lineaire avec une pente faible par
rapport a la courbe TimeShared.
– Le cout de traitement moyen des Cloudlets :
Dans cette serie de simulation, nous avons calcule le cout de traitement moyen des
Cloudlets avec les deux algorithmes (TimeShared et TimeShared Clustering).
Les Figures 5.16 et 5.17 montrent l’impact du nombre de cloudlets sur le cout
de traitement, sur des histogrammes, les principales executions realisees sur
ce scenario.
585 358
2026
672
4140
972
7719
1288
12086
1550
0
2000
4000
6000
8000
10000
12000
14000
Coû
t ($)
20 40 60 80 100
Cloudlets
Timeshared TimeShared Clustering
Le coût de traitement moyen des cloudlets
Figure 5.16 – Le cout de traitement moyen des Cloudlets
5.3. Resultats experimentaux 92
0
50000
100000
150000
200000
250000
300000
350000C
oût (
$)
100
200
300
400
500
Cloudlets
Timeshared TimeShared Clustering
Le coût de traitement moyen des cloudlets
Figure 5.17 – Le cout de traitement moyen pour des taches>=100
L’objective de cette serie de simulation est d’etudier l’impact de notre stra-
tegie sur le cout de traitement moyen des Cloudlets. D’apres ces resultats, nous
remarquons que le cout de traitement moyen dans l’algorithme TimeShared est tres
eleve par rapport a la strategie TimeShared Clustering car l’utilisation de CPU
est moins importante qu’en TimeShared. Les differentes partitions contiennent les
memes donnees donc l’utilisation de CPU est amoindri.
5.3.3 Resultats experimentaux 3 : Strategies d’ordonnancement et
d’allocation de ressources pour les Big Data
Les experiences sont realisees dans un environnement de Cloud fourni par le
simulateur CloudSim (voir Annexe B).
5.3.3.1 Parametres de simulation
La vitesse de chaque element de traitement est exprime en MIPS (millions d’ins-
tructions par seconde) et la longueur de chaque Cloudlet (tache) est exprimee par
le nombre d’instructions a executer. L’environnement de simulation se compose de
deux datacenters avec deux hotes ayant deux elements de calcul chacun. Chaque
5.3. Resultats experimentaux 93
element de calcul a une puissance de calcul varie (selon le parametre MIPS). Les
algorithmes sont testes en faisant varier le nombre de cloudlets entre 10 et 50 par
un pas de 20, et en changeant aussi la longueur des cloudlets. En outre, le nombre
de machines virtuelles utilisees pour executer les cloudlets, sont modifiees en conse-
quence.
5.3.3.2 Scenarios et resultats
Dans cette partie, nous allons effectuer des simulations en comparant les deux
sous-strategies proposees avec les deux politiques d’ordonnancements implementees
dans le simulateur CloudSim :
1. La politique d’ordonnancement Space Shared (Espace partage) :
Cette politique suit la meme procedure que l’algorithme du premier arrive,
premier servi.
2. La politique d’ordonnancement Time Shared (Temps partage) : Le
concept de l’algorithme d’ordonnancement Round-Robin (RR) est utilise dans
la presente politique.
Le temps de reponse global pour executer les cloudlets est utilise comme indi-
cateur pour evaluer les performances de la premiere sous-strategie (OADTV). Les
resultats sont presentes dans le tableau 5.3 et la Figure 5.18 :
Time Shared(s) Space Shared(s)Premiere strate-
gie proposee(s)
Temps de reponse
10 Cloudlets734,92 840,75 646,63
Temps de reponse
30 Cloudlets3185,15 2204,34 2032,39
Temps de reponse
50 Cloudlets8959 3776,8 3548,35
Table 5.3 – Resultat de simulation de la premiere strategie (OADTV)
5.3. Resultats experimentaux 94
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Tem
ps (s
)
10 30 50
Nombre de cloudlets
Time Shared Space Shared Stratégie proposée
Le temps de réponse total
Figure 5.18 – Le resultat de temps de reponse dans l’execution des taches
La Figure 5.19 ci-dessous montre le gain obtenu :
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
5500
6000
6500
Gai
ns (s
)
10 Cloudlets
30 Cloudlets
50 Cloudlets
Gain/ Time Shared Gain/ Space Shared
Le gain obtenu pour le temps de réponse
Figure 5.19 – Le gain obtenu pour le temps de reponse
Il a ete constate que, pour un petit nombre de taches, les trois algorithmes
presentent des performances plus ou moins similaires. Mais, comme le montre le
5.3. Resultats experimentaux 95
tableau 5.3 et la figure 5.19. Lorsque le nombre de taches augmente, la premiere
strategie proposee presente une meilleure performance par rapport a la politique de
l’espace partage et la politique du temps partage, puisque les taches les plus longues
sont affectees aux machine virtuelles les plus puissantes et les plus rapides.
Pour la deuxieme sous-strategie (OAAMV), les experiences sont menees sur un
environnement de Cloud avec les memes parametres de simulation. Le temps de
reponse global pour executer les cloudlets est utilise comme indicateur pour evaluer
les performances de la premiere strategie. Les resultats sont presentes dans le tableau
5.4 et la Figure 5.20 :
Time Shared(s)Deuxieme strate-
gie proposee(s)
Temps de reponse
10 Cloudlets1334,94 980
Temps de reponse
30 Cloudlets11475,05 8819,98
Temps de reponse
50 Cloudlets31875,7 24959,88
Table 5.4 – Resultat de simulation de la deuxieme strategie (OAAMV)
0
5000
10000
15000
20000
25000
30000
35000
40000
Tem
ps d
e ré
pons
e (s
)
10 cl
oudle
ts
30 cl
oudle
ts
50 cl
oudle
ts
Cloudlets
Timeshared Stratégie2 propsée
Le temps de réponse des cloudlets
Figure 5.20 – Le resultat de temps de reponse pour l’execution des taches
5.3. Resultats experimentaux 96
La Figure 5.21 ci-dessous montre le gain obtenu :
0
1000
2000
3000
4000
5000
6000
7000
8000G
ain
(s)
10 cl
oudle
ts
30 cl
oudle
ts
50 cl
oudle
ts
Cloudlets
Le gain obtenu/ TimeShared pour le temps de réponse
Figure 5.21 – Le gain obtenu pour le temps de reponse
Nous pouvons remarque que, pour un petit nombre de taches, tous les deux
algorithmes presentent des performances plus ou moins similaires puisque les lon-
gueurs des cloudlets sont petites. Mais, comme le montre le tableau 5.4 et les Figures
5.20 et 5.21. Lorsque le nombre de taches augmente, la seconde strategie presente
une meilleure performance par rapport a la politique de temps partage, puisque les
taches sont affectees equitablement sur l’ensemble des machines virtuelles. Les deux
sous-strategies peuvent fournir un meilleur temps de reponse, temps d’attente, et
un meilleur equilibrage de charge.
Dans cette derniere partie, nous allons effectuer des simulations en comparant
l’hybridation des deux sous-strategies proposees avec la politique d’ordonnancement
Time Shared, implementee sous le simulateur CloudSim. Les algorithmes sont testes
en faisant varier le nombre de cloudlets entre 100 a 700 par pas de 100, en changeant
la longueur des cloudlets. En outre, le nombre de machines virtuelles utilisees pour
executer les cloudlets, sont modifiees en consequence. Le temps de reponse pour
executer les cloudlets et le cout global d’utilisation de ressources sont utilises comme
des indicateurs pour evaluer les performances de la strategie. Les resultats sont
5.3. Resultats experimentaux 97
presentes dans les Figures 5.22 et 5.23 :
0
50
100
150
200
250
300
350
400
450T
emps
de
répo
nse
(s)
100
200
300
400
500
600
700
Cloudlets
Timeshared Stratégie propsée
Le temps de réponse des cloudlets
Figure 5.22 – Le temps de reponse moyen des Cloudlets
0
200
400
600
800
1000
1200
1400
1600
Coû
t ($)
100
200
300
400
500
600
700
Cloudlets
TimeShared Stratégie proposée
Le coût de traitement moyen des cloudlets
Figure 5.23 – Le cout moyen d’utilisation de ressources
Les graphes des Figures 5.22 et 5.23 montrent l’effet de l’equilibrage de charge
dans l’execution des taches entre les differentes machines virtuelles dans la reduction
du temps de reponse des taches puisque les taches seront executees sur les differentes
5.4. Conclusion 98
machines virtuelles equitablement ce qui minimise en plus le temps de reponse des
taches en augmentant les cloudlets et par consequent le cout de traitement moyen
des cloudlets pour les Big data.
5.4 Conclusion
Dans ce chapitre, nous avons simule nos trois strategies proposees sous le simu-
lateur realise en Java et sous le simulateur CloudSim pour etudier leurs comporte-
ments. Nous avons compare les resultats obtenu avec des approches existantes tel
que la strategie d’ordonnancement FCFS (First Come First Served) et RR (Round
Robin) et les strategies deja implementees sous le simulateurs CloudSim, a savoir
(Space Shared et Time Shared). Comme metriques de performance, nous avons uti-
lise le temps de reponse, le nombre de deplacement des donnees et le cout de la
replication pour les workflows scientifiques, et le cout global engendre.
En resume, les resultats de simulation des strategies d’ordonnancement et d’al-
location de ressources proposees ont donne un comportement positif et les resultats
obtenus sont tres encourageant qui repondent aux objectifs traces dans le cahier de
charge initial.
Chapitre 6
Conclusion generale
Le Cloud computing ou informatique en nuage est une infrastructure dans la-
quelle la puissance de calcul et le stockage sont geres par des serveurs distants
auxquels les usagers se connectent via une liaison Internet securisee. L’ordinateur de
bureau ou portable, le telephone mobile, la tablette tactile et autres objets connec-
tes deviennent des points d’acces pour executer des applications ou consulter des
donnees qui sont hebergees sur les serveurs. Le Cloud se caracterise egalement par
sa souplesse qui permet aux fournisseurs d’adapter automatiquement la capacite de
stockage et la puissance de calcul aux besoins des utilisateurs.
Le Cloud computing est la prochaine generation dans l’informatique. Probable-
ment les gens peuvent avoir tout ce qu’ils ont besoin sur le Cloud. Le Cloud est la
prochaine etape normale dans l’evolution des services sur la demande et des produits
de technologie de l’information. Le Cloud est une technologie de calcul naissante
qui se consolide rapidement comme prochaine grande etape dans le developpement
et le deploiement d’un nombre croissant des applications reparties. Le Cloud a ete
emerge pour des varietes d’entreprises d’Internet, beaucoup de cadres de calcul pour
la memoire enorme de donnees et les besoins de calcul fortement paralleles.
La theorie de l’ordonnancement est une branche de la recherche operationnelle
qui s’interesse au calcul de dates d’execution optimales de taches. Pour cela, il est
tres souvent necessaire d’affecter en meme temps les ressources necessaires a l’exe-
cution de ces taches. Un probleme d’ordonnancement peut etre considere comme
un sous-probleme de planification dans lequel il s’agit de decider de l’execution
operationnelle des taches planifiees.
Dans la resolution d’un probleme d’ordonnancement, deux grands types de stra-
tegies peuvent etre utilisees, visant respectivement l’optimalite des solutions, ou plus
100
simplement leur admissibilite. L’approche par optimisation suppose que les solutions
candidates a un probleme puissent etre ordonnees de maniere rationnelle selon un
ou plusieurs criteres d’evaluation numeriques, construits sur la base d’indicateurs
de performances. On cherchera donc a minimiser ou maximiser de tels criteres lies
au temps ou aux ressources.
L’ordonnancement de taches et d’allocation de ressources dans les systemes de
Cloud computing suscite une attention croissante avec l’augmentation de la popu-
larite de Cloud. En general, l’ordonnancement de taches est le processus d’affec-
tation des taches aux ressources disponibles sur la base des caracteristiques et des
conditions des taches. C’est un aspect important dans le fonctionnement efficace du
Cloud, car de divers parametres de taches doivent etre pris en consideration pour
un ordonnancement approprie. Les ressources disponibles devraient etre utilisees
efficacement sans affecter les parametres de service du Cloud.
Pour optimiser l’ordonnancement et l’allocation de ressources dans les Cloud
computing, nous avons propose dans cette these trois strategies d’ordonnancement,
la premiere strategie d’ordonnancement est basee sur la replications des donnees
pour les workflows scientifiques, la seconde strategie d’ordonnancement est basee
sur le groupement de taches et la derniere strategie d’ordonnancement de taches
et d’allocation de ressources pour les Big data. La premiere strategie comporte
trois phases, nommee respectivement, l’etape de construction, l’etape d’execution
et l’etape de replication. La deuxieme strategie basee sur le groupement de tache,
contient a son tour deux phases, nommee respectivement l’etape de construction
et l’etape d’ordonnancement. La troisieme strategie contient deux sous strategies,
la premiere basee sur des parametres d’optimisation de Cloud, tel que la vitesse
d’execution des machines virtuelles et la longueur des taches. La seconde est basee
sur un arbre de construction de machines virtuelles.
Dans ce travail, nous avons simule les trois strategies proposees sous un simula-
teur realise en Java et sous le simulateur Cloudsim pour etudier leurs comportements
et nous avons compare les resultats obtenus avec des approches existantes telque la
strategie d’ordonnancement FCFS (First Come First Served) et RR (Round Robin)
et des strategies deja implementees sous le simulateurs Cloudsim, a savoir (Space
101
Shared et Time Shared). Comme metriques de performance, nous avons utilise le
temps de reponse, le nombre de deplacement des donnees et le cout de la replication
pour les workflows scientifiques, et le cout global engendre.
Nos strategies d’ordonnancement proposees permettent de reduire le temps de
reponse moyen d’execution des taches, de diminuer le deplacement des donnees
pour les applications scientifiques dans le cas de la strategie 1, d’avoir un meilleur
equilibrage de charge dans le cas de la strategie 3, et de reduire le cout global
d’utilisation de ressources dans les strategies 1 et 2 proposees.
En resume, Les resultats de simulation obtenus pour nos strategies d’ordonnan-
cement et d’allocation de ressources proposees sont satisfaisants, tres encourageant,
et repondent aux objectifs traces dans le cahier de charge.
Afin d’etendre notre travail de recherche, nous envisageons plusieurs perspec-
tives. Nous voulons augmenter les capacites de la premiere strategie proposee en
permettant la replication des ensembles de donnees pour l’ordonnancement des
taches dans les environnements de Clouds multiples (federation de Clouds). Nous
proposons egalement d’integrer la premiere strategie proposee dans le simulateur
Cloudsim et de prendre en considerations d’autres parametres comme la taille des
donnees et le cout de la replication comme facteurs essentiels dans la deuxieme
strategie. Nous proposons aussi d’etudier comment la strategie de replication peut
etre utilisee lorsque le provisionnement et le processus d’ordonnancement est ef-
fectue sur des flux de donnees multiples dont les taches ont differentes priorites.
Nous prevoyons egalement de realiser la mise en œuvre de nos strategies dans la
planification et l’ordonnancement des taches sur des cas reel d’une compagnie pe-
troliere Sonatrach-Algerie contenant des donnees chimiques industrielles reparties
sur plusieurs clusters dans un objectif d’ameliorer efficacement le systeme de cette
compagnie.
Bibliographie
[1] Ravin Ahuja, Asok De, and Goldie Gabrani. Sla based scheduler for cloud
for storage and computational services. In ICCSA Workshops, pages 258–262.
IEEE Computer Society, 2011. (Cite en page 34.)
[2] Oracle Corporation and/or its affiliates. Bienvenue a netbeans. https ://net-
beans.org/, (Consulte Mai 2014). (Cite en page 77.)
[3] Enda Barrett, Enda Howley, and Jim Duggan. A learning architecture for
scheduling workflow applications in the cloud. In Proceedings of the 9th IEEE
European Conference on Web Services, ECOWS’11, pages 83–90, 2011. (Cite
en page 40.)
[4] Meriem Benadda. Strategie de placement de donnees dans le cloud computing.
Master en informatique, Universite d’Oran, Faculte des sciences, Departement
d’informatique, 2012. (Cite en page 79.)
[5] Michael Bender, Soumen Chakrabarti, and S. Muthukrishnan. Flow and stretch
metrics for scheduling continuous job streams. In Proceedings of the 9th Annual
ACM-SIAM Symposium on Discrete Algorithms, pages 270–279, 1998. (Cite
en page 32.)
[6] Keerthana Boloor, Rada Chirkova, Timo J. Salo, and YannisViniotis. Heuristic-
based request scheduling subject to a percentile response time sla in a dis-
tributed cloud. In GLOBAL COMMUNICATIONS CONFERENCE (IEEE
GLOBECOM 2010), pages 1–6, 2010. (Cite en page 34.)
[7] Sylvain Caicoya and Jean-Georges Saury. CLOUD COMPUTING : Maıtrisez
les enjeux et solutions de l’informatique dans les nuages. Micro Application,
2011. (Cite en pages 16, 20 et 21.)
[8] Jean-Louis Caire and Willy Munch. Objectif Cloud : Une demarche pratique
orientee services. Eni Datapro, 2014. (Cite en pages 18 et 19.)
[9] Zenon Chaczko, Venkatesh Mahadevan, Shahrzad Aslanzadeh, and Christopher
Mcdermid. ”availability and load balancing in cloud computing. In Internatio-
Bibliographie 103
nal Conference on Computer and Software Modeling, IPCSIT’11, 2011. (Cite
en page 30.)
[10] Amit Nathani Sanjay Chaudharya and Gaurav Somanib. Policy based resource
allocation in iaas cloud. Future Generation Computer Systems, 28(7) :94–103,
2012. (Cite en page 6.)
[11] Shruti Chhabra and V. S. Dixit. Cloud computing : State of the art and
security issues. SIGSOFT Softw. Eng. Notes, 40(2) :1–11, April 2015. (Cite en
page 10.)
[12] The Cloud Computing and Distributed Systems (CLOUDS Laboratory) Uni-
versity of Melbourne. Cloudsim. http ://www.cloudbus.org/cloudsim/,
(Consulte Mars 2015). (Cite en pages vii, x, 37, 75, 111, 112 et 117.)
[13] D. Daniel and S.P.Jeno Lovesum. A novel approach for scheduling service re-
quest in cloud with trust monitor. In International Conference on Signal Pro-
cessing, Communication, Computing and Networking Technologies (ICSCCN),
2011. (Cite en page 34.)
[14] Claude Delannoy. Programmer en Java. Eyrolles, 2007. (Cite en page 76.)
[15] Esma Insaf Djebbar and Ghalem Belalem. Optimization of tasks scheduling
by an efficacy data placement and replication in cloud computing. In Algo-
rithms and Architectures for Parallel Processing - 13th International Confe-
rence, ICA3PP 2013, LNCS 8286, Vietri sul Mare, Italy, December 18-20,
2013, Proceedings, Part II, pages 22–29, 2013. (Cite en page 46.)
[16] Esma Insaf Djebbar and Ghalem Belalem. Tasks scheduling and resource allo-
cation for high data management in scientific cloud computing environment. In
he International Conference on Mobile, Secure and Programmable Networking
(MSPN’2016), LNCS 10026, Paris, France, June 1-3, 2016. (Cite en page 67.)
[17] Esma Insaf Djebbar and Ghalem Belalem. An effective task scheduling strategy
in multiple data centers in cloud scientific workflow. In MIPRO Proceedings,
The 39th International ICT Convention on Information and Communication
Technology, Electronics and Microelectronics (MIPRO 2016), IEEE, Rijeka,
Croatia, pages 214–217, May 30-June 3, 2016. (Cite en page 63.)
Bibliographie 104
[18] Esma Insaf Djebbar, Ghalem Belalem, and Merien Benadda. Task scheduling
strategy based on data replication in scientific cloud workflows. Multiagent and
Grid Systems : An International Journal of Cloud Computing, 12(1) :55–67,
2016. (Cite en page 46.)
[19] Jean Michel Doudoux. Java et eclipse.
http ://www.jmdoudoux.fr/accueil.html, (Consulte Juin 2016). (Cite en
page 77.)
[20] Pierre-Francois Dutot, Lionel Eyraud, Gregory Mounie, and Denis Trystram.
Bi-criteria algorithm for scheduling jobs on cluster platforms. In Proceedings
of the Sixteenth Annual ACM Symposium on Parallelism in Algorithms and
Architectures, SPAA ’04, pages 125–132, New York, NY, USA, 2004. ACM.
(Cite en page 31.)
[21] Bruce Eckel. Thinking in Java (4th Edition). Prentice Hall PTR, Upper Saddle
River, NJ, USA, 2005. (Cite en page 76.)
[22] Hamid Mohammadi Fard, Radu Prodan, and Thoma Fahringers. A truthful
dynamic workflow scheduling mechanism for commercial multicloud environ-
ments. IEEE Trans. Parallel Distrib. Syst., 24(6) :1203–1212, 2013. (Cite en
pages viii, 38 et 39.)
[23] D.G. Feitelson. A survey of scheduling in multiprogrammed parallel systems.
International Business Machines Corporation, 1994. (Cite en page 31.)
[24] D.G. Feitelson and 1.W. Mu’alem. On the definition of ”on-line” in job sche-
duling problems. Tech. rep., SIGACT News, 2000. (Cite en page 31.)
[25] Ian T. Foster, Yong Zhao, Ioan Raicu, and Shiyong Lu. Cloud computing and
grid computing 360-degree compared. CoRR, abs/0901.0131, 2009. (Cite en
page 10.)
[26] Yuji Ge and Guiyi Wei. Ga-based ta,sk scheduler for the cloud computing
systems. In Proceedings of the IEEE International Conference on Web Infor-
mation Systems and Mining, pages 181–186, 2010. (Cite en page 35.)
Bibliographie 105
[27] Shamsollah Ghanbaria and Mohamed Othman. A priority based job scheduling
algorithm in cloud computing. Procedia Engineering, 50 :778–785, 2012. (Cite
en page 67.)
[28] Jens Gustedt, Emmanuel Jeannot, and Martin Quinson. Experimental vali-
dation in large-scale systems : a survey of methodologies. Parallel Processing
Letters, 19(3) :399–418, 2009. RR-6859. (Cite en page 113.)
[29] M. Hemamalini. Review on grid task scheduling in distributed heterogeneous
environment. International Journal of Computer Applications, 40(2) :24–30,
2012. (Cite en page 35.)
[30] Romain Hennion, Hubert Tournier, and Eric Bourgeois. Cloud computing : De-
cider, Concevoir, Piloter, Ameliorer. Groupe Eyrolles, 2012. (Cite en pages 22,
23 et 24.)
[31] http ://www.hebergeurcloud.com. Hebergeur cloud.
http ://www.hebergeurcloud.com/les-technologies-du-cloud-computing/,
(Consulte Mars 2015). (Cite en pages viii et 13.)
[32] Le Cloud Kesako. Cloud-serveur. http ://www.cloud-serveur.fr/fr/le-
cloud/cloud-kesako, (Consulte Mars 2016). (Cite en pages viii et 17.)
[33] Mansouri Khalil. L’ordonnancement des taches dans le cloud computing par
une approche d’optimisation parallele. Master en informatique, Universite Mo-
hamed Khider, Biskra, 2013. (Cite en page 35.)
[34] Pardeep Kumar and Amandeep Verma. Scheduling using improved genetic
algorithm in cloud computing for independent tasks. In Proceedings of the In-
ternational Conference on Advances in Computing, Communications and In-
formatics, ICACCI ’12, pages 137–142, New York, NY, USA, 2012. ACM. (Cite
en pages 35 et 37.)
[35] Parveen Kumar and Anjandeep Kaur Rai. An overview and survey of va-
rious cloud simulation tools. Journal of Global Research in Computer Science,
5(1) :24–26, January 2014. (Cite en page 112.)
Bibliographie 106
[36] Shyamlal Kumawat and Deepak Tomar. Sla aware trust model for cloud service
deployment. International Journal of Computer Applications, 90(10) :10–15,
March 2014. (Cite en page 34.)
[37] Young Choon Lee, Chen Wang, Albert Y. Zomaya, and Bing Bing Zhou. Profit-
driven service request scheduling in clouds. In Proceedings of the 2010 10th
IEEE/ACM International Conference on Cluster, Cloud and Grid Computing,
CCGRID ’10, pages 15–24, Washington, DC, USA, 2010. (Cite en page 34.)
[38] Jiayin Li, Meikang Qiu, Zhong Ming, Gang Quan, Xiao Qin, and Zonghua Gu.
Online optimization for scheduling preemptable tasks on iaas cloud systems.
J. Parallel Distrib. Comput., 72(5) :666–677, 2012. (Cite en pages 119 et 120.)
[39] Luqun Li. An optimistic differentiated service job scheduling system for cloud
computing service users and providers. In the third International Conference
on Multimedia and Ubiquitous Engineering, MUE 2009, Qingdao, China, June
4-6, 2009, pages 295–299, 2009. (Cite en page 34.)
[40] Cui Lin and Shiyong Lu. Scheduling scientific workflows elastically for cloud
computing. In Ling Liu and Manish Parashar, editors, IEEE CLOUD, pages
746–747. IEEE, 2011. (Cite en page 41.)
[41] Ke Liu, Hai Jin, Jinjun Chen, Xiao Liu, Dong Yuan, and Yun Yang.
A compromised-time-cost scheduling algorithm in swindew-c for instance-
intensive cost-constrained workflows on a cloud computing platform. Inter-
national Journal of High Performance Computing Applications, 24(4), 2010.
(Cite en page 40.)
[42] Ming Mao and Marty Humphrey. Auto-scaling to minimize cost and meet appli-
cation deadlines in cloud workflows. In Proceedings of International Conference
for High Performance Computing, Networking, Storage and Analysis, SC ’11,
pages 1–49, New York, NY, USA, 2011. ACM. (Cite en page 43.)
[43] Wiliam T. McCormick, Paul J. Sehweitzer, and Thomas W. White. Problem
decomposition and data reorganization by a clustering technique, volume 20,
chapter 1, pages 993–1009. Operations Research, 1972. (Cite en pages 48
et 64.)
Bibliographie 107
[44] Luiz Meyer, Marta Mattoso, Doug Scheftner, Mike Wilde, Jens Voeckler, and
Ian Foster. (Cite en page 42.)
[45] Ioannis A. Moschakis and Helen D. Karatza. Performance and cost evaluation
of gang scheduling in a cloud computing system with job migrations and star-
vation handling. In Proceedings of the 16th IEEE Symposium on Computers
and Communications, ISCC 2011, Kerkyra, Corfu, Greece, June 28 - July 1,
2011, pages 418–423, 2011. (Cite en page 69.)
[46] A. Ohri. R for Cloud Computing : An Approach for Data Scientists. Springer,
New York Heidelberg Dordrecht London, 2014. (Cite en pages 10 et 11.)
[47] Simon Ostermann, Kassian Plankensteiner, Radu Prodan, and Thomas Fah-
ringer. GroudSim : An Event-based Simulation Framework for Computational
Grids and Clouds. In CoreGRID/ERCIM Workshop on Grids and Clouds, Is-
chia, Naples, Italy, Aug 2010. Springer Computer Science Editorial. (Cite en
page 114.)
[48] Dan Pelleg and Andrew W. Moore. X-means : Extending k-means with efficient
estimation of the number of clusters. In Proceedings of the Seventeenth Interna-
tional Conference on Machine Learning, ICML ’00, pages 727–734, San Fran-
cisco, CA, USA, 2000. Morgan Kaufmann Publishers Inc. (Cite en pages 45,
55, 57 et 58.)
[49] Linux Project. Linux, the linux foundationt. http ://www.Linux.com/,
(Consulte Janvier 2014). (Cite en page 12.)
[50] Xen Project. A linux foundation collaborative project : Xen.
http ://www.xenproject.org/, (Consulte Janvier 2016). (Cite en page 12.)
[51] Mustafizur Rahman, Xiaorong Li, and Henry Novianus Palit. Hybrid heuristic
for scheduling data analytics workflow applications in hybrid cloud environ-
ment. In IPDPS Workshops, pages 966–974. IEEE, 2011. (Cite en page 43.)
[52] Christopher J. Reynolds, Stephen C. Winter, Gabor Terstyanszky, Tamas Kiss,
Pamela Greenwell, Sandor Acs, and Peter Kacsuk. Scientific workflow makes-
pan reduction through cloud augmented desktop grids. In Costas Lambri-
Bibliographie 108
noudakis, Panagiotis Rizomiliotis, and Tomasz Wiktor Wlodarczyk, editors,
CloudCom, pages 18–23. IEEE Computer Society, 2011. (Cite en page 42.)
[53] Michael R.Garey and David S.Johnson . Computers and Intractability : A
Guide to the Theory of NP-Completeness. W. H. Freeman & Co., New York,
NY, USA, 1979. (Cite en page 31.)
[54] J. R. Rodrigues, L. Z. Zhou, L. M. Mendes, K. L. Lin, and J. L. Lloret. Distri-
buted media-aware flow scheduling in cloud computing environment. Computer
Communications, 35(1) :1819–1827, September 2012. (Cite en page 28.)
[55] Robert Shimonski. Windows 2000 & Windows Server 2003 Clustering and
Load Balancing. (Cite en page 30.)
[56] Guillaume Sigui. Cloud computing, quels sont les risques de securite majeurs
du cloud computing ? http ://www.developpez.com/, (Consulte Mars 2014).
(Cite en pages ix, 24 et 79.)
[57] The Green Cloud Simulator. Greencloud. https ://greencloud.gforge.uni.lu/,
Universite du Luxemburg, (Consulte Mars 2015). (Cite en page 113.)
[58] Anne Tasso. Le livre de Java : premier langage. Collection noire. Eyrolles,
Paris, 2010. (Cite en page 76.)
[59] Fei Teng. Resource allocation and schelduling models for cloud computing. Phd
thesis, Ecole Centrale Paris, October 2011. (Cite en page 33.)
[60] Michael Tighe, Gaston Keller, Michael Bauer, and Hanan Lutfiyya. Dcsim : A
data centre simulation tool for evaluating dynamic virtualized resource mana-
gement. In 8th International Conference on Network and Service Management,
CNSM 2012, Las Vegas, NV, USA, October 22-26, 2012, pages 385–392, 2012.
(Cite en pages vii, x, 114 et 115.)
[61] DAO Van Toan. Workflows scientifiques sur plusieurs clouds. Master en in-
formatique, Institut de la francophonie pour l’informatique, Laboratoire de
l’informatique du parallelisme (LIP), 2013. (Cite en pages 31 et 38.)
[62] Lamiel Toch. Contributions aux techniques d’ordonnancement sur plates-
formes paralleles ou distribuees. PhD thesis, Ecole doctorale sciences pour
l’ingenieur et microtechniques, Universite de Franche comte. (Cite en page 31.)
Bibliographie 109
[63] C. T. Tsai and J. R. Rodrigues. Metaheuristic scheduling for cloud : A survey.
IEEE Systems, 8(1) :279–291, March 2014. (Cite en page 28.)
[64] Luis M. Vaquero, Luis Rodero-Merino, Juan Caceres, and Maik Lindner. A
break in the clouds : Towards a cloud definition. SIGCOMM Comput. Commun.
Rev., 39(1) :50–55, December 2008. (Cite en page 10.)
[65] Amandeep Verma and Sakshi Kaushal. Deadline and budget distribution based
cost-time optimization workflow scheduling algorithm for cloud. IJCA Procee-
dings on International Conference on Recent Advances and Future Trends in
Information Technology (iRAFIT 2012), iRAFIT(7) :1–4, April 2012. (Cite en
page 41.)
[66] Global Digital Vision. Cloud computing. http ://www.gdv.com.au/cloud-
computing.html, (Consulte Mars 2014). (Cite en pages viii et 11.)
[67] Marek Wieczorek, Stefan Podlipnig, Radu Prodan, and Thomas Fahringer. Bi-
criteria scheduling of scientific workflows for the grid. In CCGRID’08 : Pro-
ceedings of the 2008 Eighth IEEE International Symposium on Cluster Com-
puting and the Grid, pages 9-16, IEEE Computer Society, Washington, DC,
USA, 2008. (Cite en page 42.)
[68] Meng Xu, Li zhen Cui, Haiyang Wang, and Yanbing Bi. A multiple qos constrai-
ned scheduling strategy of multiple workflows for cloud computing. In ISPA,
pages 629–634. IEEE Computer Society, 2009. (Cite en pages 41 et 42.)
[69] Deshi Ye and Guochuan Zhang. On-line scheduling of parallel jobs in a list.
Journal of Scheduling, 10(6) :407–413, 2007. (Cite en page 31.)
[70] Jia Yu, Rajkumar Buyya, and Chen Khong Tham. Cost-based scheduling
of scientific workflow application on utility grids. In Proceedings of the First
International Conference on e-Science and Grid Computing, E-SCIENCE’05,
pages 140–147, Washington, DC, USA, 2005. IEEE Computer Society. (Cite
en page 42.)
[71] Dong Yuan, Yun Yang, Xiao Liu, and Jinjun Chen. A data placement stra-
tegy in scientific cloud workflows. Future Generation Computer Systems,
26(8) :1200–1214, 2010. (Cite en pages 46, 51 et 58.)
Bibliographie 110
[72] Sharrukh Zaman and Daniel Grosu. Combinatorial auction-based dynamic
VM provisioning and allocation in clouds. In the 3rd International Conference
on Cloud Computing Technology and Science, CloudCom 2011, Athens, Greece,
IEEE, November 29-December 1, 2011, pages 107–114, 2011. (Cite en page 35.)
[73] Qi Zhang, Quanyan Zhu, and Raouf Boutaba. Dynamic resource allocation for
spot markets in cloud computing environments. In the Fourth International
Conference on Utility and Cloud Computing (UCC’11), IEEE, 2011. (Cite en
page 35.)
[74] Han Zhao and Xiaolin Li. Auctionnet : Market oriented task scheduling in he-
terogeneous distributed environments. In the International Parallel and Dis-
tributed Processing Symposium (IPDPS), pages 1–4. IEEE, 2010. (Cite en
page 34.)
[75] Liang Zhao, Sherif Sakr, Anna Liu, and Athman Bouguettaya. Cloud Data
Management. Springer Editor, 2014. (Cite en pages viii, 14 et 15.)
Annexe A
Simulateurs de Cloud
computing
Dans un systeme distribue, il existe des enjeux a resoudre tels que la gestion
des ressources et l’ordonnancement des applications car, ces taches sont com-
pliquees et il n’existe pas une solution optimale pour repondre a ces issues. D’autre
part, dans l’environnement d’un systeme distribue comme Cloud, il est difficile d’ef-
fectuer les differents scenarios avec differents nombres de ressources et d’utilisateurs
afin d’evaluer la performance des algorithmes de partage de charge, Broker, gestion
des ressources, etc. Lorsque on veut evaluer les scenarios de maniere repetable et
controlable, cela est parfois impossible a cause de l’issue du cout et de la gestion.
Afin de resoudre cette issue, les chercheurs utilisent des simulateurs pour effectuer
leur scenarios avant de les effectuer au sein d’un systeme distribue reel. Plusieurs
simulateurs de Cloud Computing sont actuellement en developpement. En voici une
liste non exhaustive, decrivant les caracteristiques de chacun d’entre eux.
A.1 Simulateur CloudSim [12]
CloudSim est un framework qui modelise et qui simule l’environnement du Cloud
computing et ses services, il a ete realise en Java. Ce framework supporte la mo-
delisation et la simulation de l’environnement de Datacenter base sur le Cloud, tel
que les interfaces de gestion dediees aux VMs, la memoire, le stockage et la bande
passante. La couche CloudSim gere l’instanciation et l’execution des entites de base
(VM, hotes, Datacenters, applications) au cours de la periode de simulation. Dans
la couche la plus haute de la pile de simulation, on trouve le code de l’utilisateur qui
A.1. Simulateur CloudSim [12] 112
expose la configuration des fonctionnalites liees aux hotes (ex : nombre de machines,
leurs specifications), les politiques d’ordonnancement de Broker, les applications (
ex : nombre de taches et leurs besoins), les VMs , et le nombre d’utilisateurs.
Il a ete developpe dans le laboratoire CLOUDS de science et de genie dans le
departement Informatique de l’Universite de Melbourne, en Australie. Il fournit des
classes de base pour decrire les centres de donnees, les machines virtuelles, les ap-
plications, les utilisateurs, les ressources informatiques et les politiques de gestion
des diverses parties du systeme (par exemple, l’ordonnancement et l’approvisionne-
ment). Ces composants peuvent etre mis en place pour les utilisateurs pour evaluer
de nouvelles politiques, les algorithmes d’ordonnancement, la cartographie, etc. Le
Cloud est une boıte a outils de simulation complexe a l’aide duquel la plupart des
scenarios de Cloud peuvent etre construites par une simple extension ou de rempla-
cement des classes et de codage du scenario souhaite.
CloudSim est une solution prete a l’emploi pour definir les parametres et simu-
ler afin d’obtenir des resultats. Etant une bibliotheque, CloudSim exige d’ecrire le
programme en Java a l’aide de ses composants pour composer le scenario souhaite
et de recueillir les resultats de l’analyse de la performance et de la securite des
applications de Cloud.
Tous les composants de CloudSim communiquent entre eux par envoi de mes-
sages. Dans l’architecture en couches au-dessus de CloudSim, la couche la plus
basse est principalement responsable de la communication entre les composants et
la seconde couche possede toutes les sous-couches en ce qui concerne les principaux
composants tels que les capteurs de nuages, les centres de donnees, etc. [35]. L’uti-
lisation de CloudSim permet de modeliser les centres de donnees, la repartition de
la machine virtuelle en utilisant un VMScheduler, la consommation d’energie et le
comportement du reseau. D’autres outils de simulation qui etendent la puissance
de CloudSim sont : CloudSimEx, WorkflowSim, SimpleWorkflow, RealCloudSim,
CloudReports, CloudAuction, CloudMIG Xpress, CloudAnalyst [12].
A.2. EMUSIM 113
A.2 EMUSIM
EMUSIM (Integrated Emulation and Simulation) combine l’emulation et la si-
mulation [28] pour permettre a des modeles plus precis des artefacts de logiciels
(obtenus par profilage lors de l’emulation) a les utiliser lors des simulations. Ceci
est particulierement utile lorsque le testeur n’a aucune idee sur la performance du
logiciel sous differents niveaux de concurrence et parallelisme, ce qui empeche l’uti-
lisation de la simulation.
Figure A.1 – Organisation interne EMUSIM
A.3 Simulateur GreenCloud
GreenCloud est un simulateur pour les centres de donnees de Cloud computing
developpe pour la reduction de l’energie en mettant l’accent sur les communications
en Cloud. Il propose une modelisation fine et detaillee de l’energie consommee par
l’equipement informatique des centre de donnees, tels que les serveurs informatiques,
les commutateurs de reseau, et les liens de communication.
GreenCloud peut etre utilise pour developper de nouvelles solutions en matiere
de suivi, d’allocation des ressources, d’ordonnacement, ainsi que d’optimisation des
protocoles de communication et des infrastructures de reseau (Figure A.2). Il est
libere en vertu du Contrat de Licence Publique Generale et est une extension du
simulateur de reseau NS2 bien connu. GreenCloud a ete elabore dans le cadre des
projets Greenit et ECO-CLOUD [57].
A.4. Simulateur GroudSim 114
Figure A.2 – Architecture GreenCloud
A.4 Simulateur GroudSim
GroudSim est un simulateur base sur des evenements, il a ete propose par Oster-
mann et al. [47] pour des applications scientifiques sur les environnements de grille
et de Cloud base sur un noyau discret d’evenement independant pour la simulation
evolutive. Il fournit un ensemble complet de fonctionnalites pour les scenarios de
simulation complexes a partir des executions d’emploi simples sur les ressources
informatiques louees a des couts de calcul, et la charge des ressources. Les simu-
lations peuvent etre parametrees et sont facilement extensibles par des paquets de
distribution de probabilite pour les defaillances qui se produisent normalement dans
des environnements complexes. Il est principalement concentre sur le IaaS, mais il
est facilement extensible pour soutenir des modeles supplementaires tels que PaaS,
DaaS (Data as a Service) et TaaS (Text as a Service).
A.5 iCanCloud [60]
iCanCloud est un autre outil de simulation des applications de hautes perfor-
mances sur des grands reseaux de stockage (Figure A.3). Ce simulateur est developpe
sur Simcan (un outil de simulation pour analyser les architectures d’E/S a haute
performance). Dans ce simulateur, il n’y a pas besoin de modifier le code de simula-
tion pour tester differentes architectures. Il peut etre effectue simplement en creant
A.5. iCanCloud [60] 115
un nouveau fichier de configuration.
Figure A.3 – Architecture iCanCloud [60]
Annexe B
Simulateur CloudSim :
Developpement et
experimentation
Le framework Cloudsim modelise et simule l’environnement du Cloud computing
et ses services, il a ete realise en Java.
B.1 Architecture detaillee de CloudSim
La Figure B.1 illustre les differentes couches de la structure du CloudSim et
ses elements architecturaux. Au niveau le plus bas est le moteur de simulation aux
evenements discrets SimJava, qui implemente les fonctionnalites de base requises
pour les cadres de simulation au niveau superieur, telles que les files d’attente, le
traitement des evenements, la creation de composants du systeme (services, hote,
Datacenter, Broker, les machines virtuelles), la communication entre les composants
et la gestion de l’horloge de simulation.
CloudSim supporte la modelisation et la simulation de l’environnement de Da-
tacenter base sur Cloud, tel que les interfaces de gestion dediees aux VMs, la me-
moire, le stockage et la bande passante. La couche CloudSim gere l’instanciation
et l’execution des entites de base (VM, hotes, Datacenters, applications) au cours
de la periode de simulation. Dans la couche plus haute de la pile de simulation, on
trouve le code de l’utilisateur qui expose la configuration des fonctionnalites liees
aux hotes (ex : nombre de machines...), les politiques d’ordonnancement de Broker,
les applications ( ex : nombre de taches...), les VMs, et le nombre d’utilisateurs.
B.2. Modelisation du Cloud 117
Figure B.1 – Architecture de Cloudsim [12]
B.2 Modelisation du Cloud
Dans cette partie, nous allons voir comment simuler une application distribuee
au sein d’un Cloud. Chaque Cloud est constitue des Datacenters. On trouve dans
chaque Datacenter, des hotes et chaque hote heberge les VMs. Pour faire la simu-
lation, il faut definir une classe qui contient la fonction Main(), dans laquelle, on
definit les parametres de notre Cloud comme le nombre de Datacenter, des hotes, et
les caracteristiques de chaque hote et machine virtuelle comme la bande passante.
Dans cet exemple, la configuration de la VM est :
//—————–VM description—————–
int vmid = 0 ;//vm id
int mips = 250 ;//number of operations
long size = 10000 ; //image size (MB)
int ram = 512 ; //vm memory (MB)
long bw = 1000 ;//vm bandwidth
B.2. Modelisation du Cloud 118
int pesNumber = 1 ; //number of cpus
String vmm = ”Xen”; //VMM name
//create VMs
Vm vm1 = new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new
CloudletSchedulerTimeShared()) ;
Et la configuration de l’hote est :
//—————–create host—————–
List<Host> hostList = new ArrayList<Host>() ; List<Pe> peList = new Array-
List<Pe>() ; int mips = 1000 ;
peList.add(new Pe(0, new PeProvisionerSimple(mips))) ; // need to store Pe id and
MIPS Rating
int hostId=0 ;
int ram = 2048 ; //host memory (MB)
long storage = 1000000 ; //host storage
int bw = 10000 ;
hostList.add(new Host(hostId,new RamProvisionerSimple(ram),new BwProvisioner-
Simple(bw), storage, peList, new VmSchedulerSpaceShared(peList))) ;
Et finalement le Datacenter :
//—————–create Datacenter—————–
String arch = ”x86”;//system architecture
String os = ”Linux”;//operating system
String vmm = ”Xen”;
double time zone = 10.0 ;//time zone this resource located
double cost = 3.0 ;// the cost of using processing in this resource
double costPerMem = 0.05 ;//the cost of using memory in this resource
double costPerStorage = 0.001 ;//the cost of using storage in this resource
double costPerBw = 0.0 ;//the cost of using bw in this resource
LinkedList<Storage> storageList = new LinkedList<Storage>() ;//we are not ad-
ding SAN devices by now
DatacenterCharacteristics characteristics = new DatacenterCharacteristics
(arch, os, vmm, hostList, time zone, cost, costPerMem, costPerStorage, costPerBw) ;
B.3. Politiques d’ordonnancement 119
Datacenter datacenter = null ;
try {
datacenter = new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList),
storageList, 0) ;
} catch (Exception e) {
e.printStackTrace() ;
}
Dans CloudSim, il y a deux entites importantes : Broker et Cloudlet. Le Broker
gere la creation de VMs, la soumission aux VMs et la destruction de VMs. Les
Cloudlets sont les taches a executer sur les machines virtuelles. La derniere version
de CloudSim 3, nous permet de configurer et de changer les parametres de reseau
entre les hotes dans un datacenter, aussi entre les datacenters en utilisant des switchs
et des routeurs.
B.3 Politiques d’ordonnancement
Il existe deux politiques qui sont definies dans le simulateur CloudSim :
– La politique d’ordonnancement Space Shared (Espace partage)
– La politique d’ordonnancement Time Shared (Temps partage)
B.3.1 Etape pour definir la politique SPACE SHARED
Dans la politique d’ordonnancement Space Shared, l’ordonnanceur (Broker) pla-
nifie une tache sur la machine virtuelle concernee a un instant donne et apres son
achevement, il lance une autre tache sur la machine virtuelle. Cette meme politique
est utilisee pour programmer les machines virtuelles sur l’hote. Cette politique suit
la meme procedure que l’algorithme du premier arrive, premier servi (PAPS) [38].
Etape 1 : Les taches acceptees sont disposees dans une file d’attente.
Etape 2 : La premiere tache dans la file d’attente est lancee sur la machine vir-
tuelle donnee.
Etape 3 : Apres la terminaison de la premiere tache, la prochaine tache dans la
file d’attente sera consideree.
B.3. Politiques d’ordonnancement 120
Etape 4 : Si la file d’attente est vide, le Broker verifie pour une eventuelle tache.
Etape 5 : Repeter ensuite a partir de l’etape 1.
Etape 6 : Fin.
B.3.2 Etape pour definir la politique TIME SHARED
Dans la politique d’ordonnancement en temps partage, l’ordonnanceur planifie
toutes les taches sur la machine virtuelle en meme temps. Il partage le temps entre
toutes les taches et les planifie simultanement sur la machine virtuelle. Cette po-
litique est egalement utilisee pour ordonnancer la machine virtuelle sur l’hote. Le
concept de l’algorithme d’ordonnancement Round-Robin (RR) [38] est utilise dans
cette politique.
Etape 1 : Les taches acceptees sont disposees dans une file d’attente.
Etape 2 : Planifier les taches simultannement sur la machine virtuelle.
Etape 3 : Si la file d’attente est vide, verifier pour une eventuelle tache.
Etape 4 : Si une nouvelle tache arrive, repeter a partir de l’etape 2.
Etape 5 : Fin.
CloudSim met en œuvre les politiques d’ordonnancement Space Shared et Time
Shared. La difference entre ces deux politiques et leurs effets sur les performances de
l’application est montree dans la Figure B.2. Dans lequel, un hote avec deux cœurs
de processeurs recoit une demande pour l’hebergement de deux machines virtuelles,
et chacune necessitant deux noyaux et execute quatre unites de taches : t1, t2, t3
et t4 a executer en VM1, tandis que t5, t6, t7 et t8 a executer dans VM2.
B.3. Politiques d’ordonnancement 121
Figure B.2 – Effets des politiques d’ordonnancements sur l’execution des taches :
(a) Space-shared for VMs and Tasks, (b) Space-share for VMs and Time-shared for
tasks, (c) Time-shared for VMs, Space-shared for tasks, and (d) Time-shared for
both VMs and Tasks
Résumé
Le Cloud computing est une technologie de calcul et de stockage naissante qui se consolide rapidement
comme une grande étape dans le développement et le déploiement d'un nombre croissant des
applications réparties. L'ordonnancement de tâches et d'allocation de ressources dans les systèmes de
type Cloud computing suscite une attention croissante avec l'augmentation de la popularité de Cloud.
Dans les travaux de cette thèse, nous proposons trois stratégies d'ordonnancement et d'allocation de
ressources, la première stratégie d'ordonnancement est basée sur la réplication des données pour les
workflows scientifiques, la seconde stratégie d'ordonnancement se focalise sur le groupement de
tâches et la dernière stratégie d'ordonnancement de tâches et d'allocation de ressources est destinée
aux Big data. Nos propositions permettent de réduire le temps de réponse moyen des tâches, de
diminuer le déplacement des données pour les applications scientifiques, et de réduire le coût global
d'utilisation de ressources.
Mots clés: Cloud computing, ordonnancement des tâches, allocation des ressources,
workflows, groupement de tâches, Big data.
Abstract
Cloud computing is an emerging computing and storage technology that is rapidly consolidating as a
great step in the development and deployment of an increasing number of distributed applications.
The task scheduling and resource allocation in the systems based Cloud computing are receiving
increasing attention with the rise in popularity of Cloud. In the works of this thesis, we propose three
scheduling and resource allocation strategies, the first scheduling strategy is based on the replication
of data for scientific workflows, the second scheduling strategy focuses on the grouping of tasks and
the last strategy of task scheduling and resource allocation is intended for the big data. Our proposals
will reduce the average response time of tasks, decrease data movement for scientific applications, and
minimize the overall cost of resource use.
Keywords: Cloud computing, tasks scheduling, resource allocation, workflows, tasks
grouping, Big data.
ملخص
الحوسبة السحابية هي تكنولوجيا الحوسبة والتخزين الناشئة التي تعمل على التوطيد بسرعة كبيرة في تطوير ونشر عدد
جدولة المهام وتخصيص الموارد في الحوسبة السحابية أنظمة تحظى باهتمام متزايد مع . متزايد من التطبيقات الموزعة
في عمل هذه الأطروحة، نقترح ثلاث استراتيجيات للجدولة وتخصيص الموارد، . ارتفاع الشعبية في الحوسبة السحابية
استراتيجية الجدولة الأولى تعمل على أساس تكرار البيانات لسير التطبيقات العلمية، استراتيجية الجدولة الثانية تركز على
مقترحاتنا تعمل على . تجميع المهام و الاستراتيجية الأخيرة من جدولة المهام وتخصيص الموارد تختص بالبيانات الكبيرة
. التكلفة الإجمالية لاستخدام المواردتقليلستجابة المهام، الحد من حركة البيانات للتطبيقات العلمية، وإتقليل متوسط زمن
الحوسبة السحابية، جدولة المهام، تخصيص الموارد، التطبيقات العلمية، تجميع المهام، البيانات :كلمات البحث
. الكبيرة