Thèse de Doctorat
Thèse de Doctorat
Thèse de Doctorat
THESE
Présentée par
D J E B B AR E s m a I n s a f
Pour obtenir
Filière: Informatique
Soutenue le : 05 / 12 / 2016
Directeur de thèse : BELALEM Ghalem Professeur, Université d’Oran 1, Ahmed Ben Bella
Les savants des temps passés et des nations révolues n’ont cessé de composer des
livres. Ils l’ont fait pour léguer leur savoir à ceux qui les suivent.
Ainsi demeurera vive la quête de la vérité.
Al-Khwarizmi
ii
Dédicaces
Remerciements
Je tiens à remercier Mr Pr. Haffaf Hafid d’avoir accepté d’être notre président 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 présences en tant qu’examinateurs.
Enfin, un merci particulier à tous ce qui m’ont soutenu de près ou de loin par
leurs soutiens et encouragements.
Résumé
Abstract
1 Introduction 4
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Problématique et motivation . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Organisation de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . 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 liées au Cloud computing . . . . . . . . . 14
2.4 Les principales caractéristiques des Clouds . . . . . . . . . . . . . . . 14
2.5 Modèles de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Modèles 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 stratégie . . . . . . . . . . . . . . . 21
2.8.2 Avantages au niveau des fonctions et des processus métier . . 22
2.8.3 Avantages opérationnels . . . . . . . . . . . . . . . . . . . . . 23
2.9 Sécurité dans les Cloud computing . . . . . . . . . . . . . . . . . . . 24
2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Ordonnancement : Concepts et définitions . . . . . . . . . . . . . . . 28
3.3 Les problèmes d’ordonnancement en ligne et hors ligne . . . . . . . . 30
3.4 Les critères 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
5 Expérimentation et évaluation 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 développement . . . . . . . . . . . . . . . 76
5.3 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . 79
TABLE DES MATIÈRES vii
6 Conclusion générale 99
Bibliographie 102
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. Conférences
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.
3. Encadrements
Introduction
Sommaire
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Problématique et motivation . . . . . . . . . . . . . . . . . . 5
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Organisation de la thèse . . . . . . . . . . . . . . . . . . . . . 8
1.1 Contexte
Les systèmes 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 mécanismes d’ordonnancement sont nécessaires. Les problèmes
d’optimisation de tâches et d’allocation de ressources dans un contexte hétérogène
comme le Cloud sont des problèmes difficiles. Ce problème devient encore plus diffi-
cile lorsque les critères à prendre en considération pour l’optimisation sont multiples.
Les approches d’ordonnancement et d’allocation existantes sont souvent très corré-
lées, qui ne prennent en compte que quelques critères en même temps, et quelles
sont, le plus souvent, adaptées à des applications de données de taille moyenne et
1.2. Problématique et motivation 6
1.3 Contributions
Dans les travaux de cette thèse, nous proposons trois stratégies d’ordonnan-
cements, 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 est
basée 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. La première stratégie
comporte trois phases, nommées respectivement, l’étape de construction, l’étape
d’exécution et l’étape de réplication. La deuxième stratégie est basée sur le groupe-
ment de tâches, contient à son tour deux phases, nommées respectivement l’étape
de construction et l’étape d’ordonnancement. La troisième stratégie contient deux
sous stratégies, la première basée sur des paramètres d’optimisation de Cloud, tels
que la vitesse d’exécution des machines virtuelles et la longueur des tâches. La se-
conde est basée sur un arbre de construction des machines virtuelles. Ces travaux
visent, dans un premier temps, à réduire le temps de réponse et le temps d’attente
dans l’exécution des tâches. Ils visent, également, à minimiser le nombre de dépla-
cements de données entre les datacenters, ainsi que le coût engendré de l’utilisation
de ressources dans la technologie Cloud.
1.4. Organisation de la thèse 8
Le reste de la thèse est organisé comme suit : Dans le chapitre 2, nous présentons
les notions de base des concepts que nous jugeons nécessaires à la compréhension
du contenu de cette thèse. Nous présentons d’abord les concepts du Cloud com-
puting, ensuite, nous présentons les notions fondamentales, leurs interprétations,
ainsi que les services offerts par ce nouveau concept. Enfin, nous terminons ce cha-
pitre par une discussion sur les menaces majeures à la sécurité des données et à
celles des applications en Cloud. Dans le troisième chapitre, les concepts liés à l’or-
donnancement et l’allocation de ressources dans le Cloud computing sont abordés,
ainsi que quelques travaux réalisés dans ces domaines. Le quatrième chapitre est
destiné à la conception de nos contributions en prenant en compte la gestion de
l’ordonnancement des tâches et l’allocation de ressources. Le cinquième chapitre
s’appesantit, en premier lieu à la concrétisation de la conception présentée en cha-
pitre 4, et en second lieu à l’affichage de quelques résultats d’expérimentation et
leurs interprétations. Le chapitre 6 synthétise cette thèse par une conclusion qui
discute les contributions réalisées dans le cadre de nos travaux de thèse, ainsi que
des perspectives des travaux futurs envisagées.
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 liées au Cloud computing . . . . 14
2.4 Les principales caractéristiques des Clouds . . . . . . . . . . 14
2.5 Modèles de déploiement . . . . . . . . . . . . . . . . . . . . . 16
2.6 Modèles 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 stratégie . . . . . . . . . . . . . . . . 21
2.8.2 Avantages au niveau des fonctions et des processus métier . . . 22
2.8.3 Avantages opérationnels . . . . . . . . . . . . . . . . . . . . . . 23
2.9 Sécurité dans les Cloud computing . . . . . . . . . . . . . . . 24
2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1 Introduction
Il y a une certaine confusion dans même l’esprit d’analyse des praticiens expé-
rimentés 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
aggravée par un grand nombre de fournisseurs de services qui prétendent donner le
meilleur et le moins cher pour le calcul dans le nuage sans élucider comment cela
est différent de la génération de l’informatique [11, 64]. Puisque nous croyons que le
Cloud computing est plus qu’un mot à la mode, nous reproduisons ici la définition
du Cloud computing par le NIST réputé [46]. Selon l’Institut national des normes
et de la technologie, Cloud computing est un modèle pour permettre un accès pra-
2.2. Les concepts du Cloud computing 11
4. L’élasticité rapide
5. Un service mesuré
Trois modèles de services (SaaS, PaaS et IaaS) et, quatre modèles de déploiement
(privé, public, communautaire et hybride). Les technologies clés comprennent :
2.2.1 La virtualisation
La virtualisation est une technologie qui isole et fait abstraction des ressources
de bas niveau et fournit des ressources virtualisées pour des applications de haut
niveau. Dans le contexte de virtualisation matérielle, le détail de matériel physique
peut être résumé dans la distance basée sur le noyau de la machine virtuelle avec
le support des hyperviseurs tels que Linux [49, 50]. Un serveur virtualisé géré par
l’hyperviseur est communément appelé une machine virtuelle. En général, plusieurs
machines virtuelles peuvent être 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 à la demande. Par conséquent, la virtualisa-
tion constitue la base du Cloud computing. Les fournisseurs peuvent personnaliser
la plate-forme pour répondre aux besoins des clients, soit par des applications expo-
sant en cours d’exécution au sein de machines virtuelles des services, ou de fournir
un accès direct aux machines virtuelles permettant ainsi aux clients de créer des
services avec leurs propres applications. En outre, le Cloud computing est non seule-
ment basé sur la virtualisation de ressources, mais aussi sur la répartition 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 à construire
des systèmes informatiques capables à l’autogestion, ce qui signifie être capable de
fonctionner dans des conditions générales définies et règlementaires sans interven-
2.2. Les concepts du Cloud computing 13
peu plus loin en mettant à profit les technologies de virtualisation pour atteindre
le partage à la demande des ressources et le provisionnement dynamique des res-
sources.
Cloud privé externe : hébergé chez un tiers, il est entièrement dédié à l’en-
treprise et accessible via des réseaux sécurisés de type VPN (Réseau
virtuel privé).
2. Le Cloud public est accessible par Internet et géré par un prestataire externe.
Il est ouvert au public ou à de grands groupes industriels. Cette infrastructure
est possédée par une organisation qui vend des services Cloud.
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 montré dans la Figure 2.5.
Les clients de ce modèle sont aussi bien des utilisateurs personnels que des entre-
prises. Ce modèle de service correspond à celui que nous rencontrons communément
dans le Cloud public. Il dérive du monde des ASP (Application Service Provider)
qui se sont développés initialement dans le monde du Web. Pour beaucoup de per-
sonnes et d’utilisateurs [8], le Cloud se résume uniquement à cet aspect ! Ce modèle
représente l’accès à un service applicatif et à ses fonctionnalités associées. Tenons
comme exemples : Les réseaux sociaux, la messagerie personnelle, les applications
bureautiques et l’impression photo. Pour un public de masse, le fournisseur propose
des niveaux de service générique peu ou pas personnalisables. Ceci lui permet de
proposer des prix attractifs d’entrée de gamme. Une politique de prix d’entrée de
gamme, des niveaux de service quelques fois flous ou des clients en manque de ma-
turité peuvent poser des soucis de contractualisation et d’engagement. Ce point est
crucial pour les enjeux du Cloud.
2.6. Modèles de service 19
....
Les quatres points ci-dessous sont à prendre en considération avec les avantages
et les inconvénients de la situation actuelle sans Cloud jusqu’à la situation vers le
Cloud [7].
L’élasticié : L’agilité est définit comme la capacité d’une entreprise à ressentir les
changements dans son environnement et à s’y adapter de manière efficiente. Si
on s’en réfère à cette définition, l’avantage le plus fréquemment cité des archi-
tectures Cloud est, sans surprise, l’élasticité. Puisque cette notion fait partie
de la définition même du Cloud Computing. Par exemple, l’un des avantages
les plus évidents d’une solution SaaS comme Salesforce est l’élasticité qu’elle
permet. Il est possible très simplement d’augmenter le nombre d’utilisateurs
ou de fonctionnalités. Mais l’élasticité se ressent aussi très clairement sur la
couche IaaS.
que ces services voient le jour et soient appréciés du marché professionnel, il faut
donc qu’ils s’inscrivent dans une démarche de standardisation, d’élasticité et d’ubi-
quité (autrement dit qu’ils soient accessibles à partir de tout type de plate-forme :
PC, tablettes, smartphones, ...). L’analyse des données (notamment à très grande
échelle, voir le Big data) constitue également un domaine dans lequel les solutions
de Cloud sont très innovantes. Ainsi, Tetrapak [30], un fournisseur d’emballages et
de briques alimentaires, analyse des banques de données en provenance d’eBay pour
détecter les tendances de consommation. C’est également l’esprit de la solution Web
Content Management d’Adobe, classée comme leader par le Gartner [30] dans ce
domaine éponyme, qui propose tout un ensemble d’outils d’analyse marketing sur la
fréquentation d’un site web, pour mieux identifier et modéliser les comportements
des visiteurs et des acheteurs.
Au niveau des processus et des fonctions métier, les entreprises cherchent avant
tout la performance, le partage des ressources (afin d’accéder à des services aux-
quels elles ne pouvaient pas prétendre auparavant), une collaboration plus étroite,
davantage d’intégration, ainsi qu’une meilleure coordination interprocessus. Or les
solutions de Cloud computing favorisent la coordination des processus et des fonc-
tions du métier. D’ailleurs, certains des plus grands succès du Cloud computing
concernent à ce jour des solutions de collaboration, qui permettent aux groupes
et aux communautés de travailler ensemble de manière innovante. On peut citer
l’exemple des entreprises qui ouvrent leurs systèmes à leur clientèle en proposant
des services de calendriers en ligne : le client d’une banque peut ainsi fixer un rendez-
vous avec son conseiller clientèle en fonction des plages disponibles. Les solutions
de Social Business Software, ou de collaboration pour l’ensemble des acteurs de
l’entreprise, offrent également des perspectives intéressantes. Le cabinet de conseil
des services collectives (CSC) a déployé, par exemple, ce genre de solution pour
ses 90 000 collaborateurs. Lors de la première expérience qui a duré 20 semaines,
plus de 25 000 personnes se sont inscrites à cette solution de collaboration Cloud,
appelée C3 et éditée par Jive [30]. Ils ont créé plus de 2 100 groupes et géré jusqu’à
2.8. Avantages du Cloud computing 23
150 000 activités par mois. Ces résultats encourageants ont convaincu l’entreprise
d’adopter la solution C3 de façon permanente. Autre exemple, Expensify [30] est
une solution de Cloud SaaS qui permet de gérer les dépenses et les tickets de caisse
de toute une entreprise. Ce service est accessible depuis tous les types de plates-
formes (tablettes, smartphones, client léger, etc.) [30]. Grâce au Cloud computing,
les entreprises pourront désormais s’inscrire dans une démarche de standardisation
des applications, des formats de données, des plates-formes de développement et
d’exploitation, ce qui contribuera à la mise en œuvre de processus métier efficaces.
Ceux-ci favoriseront le partage d’information, l’accès universel depuis tout type de
plate-forme (notamment les tablettes et les smartphones) et la collaboration.
la production de prestations par les hommes et pour les hommes [30]. Nous rappe-
lons que Taylor considérait l’être 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].
Les avantages du Cloud computing sont aujourd’hui une évidence. Les plus no-
tables sont : la réduction des coûts de maintenance de l’infrastructure informatique,
la réduction de la consommation énergétique, la disposition rapide d’une plateforme
prête à l’emploi pour le déploiement des applications, la disposition d’une solution
de sauvegarde simple et accessible à tous, même aux non-informaticiens. Cependant,
devant toutes les possibilités offertes par ce nouveau concept de l’informatique, il
demeure des réticences dans son adoption. Ces réticences sont liées, pour la plupart,
au facteur de sécurité, qui reste encore un véritable challenge [56].
Le Cloud computing est une approche informatique qui consiste à exploiter
via Internet (ou tout autre réseau WAN) des ressources système et applicatives
(serveurs, stockage, outils de collaboration et d’administration, etc.). Ces ressources
distantes sont dites en Cloud. Plusieurs études menées par des spécialistes 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 à la sécurité des données et à celles des applications en Cloud [56]. Ce
sont notamment :
1. L’existence de brèches de sécurité tant sur l’une des couches logiques du Da-
tacenter que celles issues d’erreurs humaines ;
2. La fragilité dans la gestion des accès et des identités, 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 sécurisées pour l’intégration des applications avec les
services Cloud ;
2.9. Sécurité dans les Cloud computing 25
6. Une action malveillante initiée en interne dans les effectifs du fournisseur. Une
personne malveillante dans l’équipe de gestion du Datacenter peut facilement
nuire à la confidentialité et l’intégrité des environnements hébergés ;
8. La perte de données qui peut être causée par une attaque informatique (lo-
gique) du Datacenter, une attaque physique (incendie ou bombardement),
une catastrophe naturelle, ou même simplement à un facteur humain chez le
fournisseur de services, par exemple en cas de faillite de la société ;
11. Le déni de service qui est une attaque qui consiste à rendre indisponible un
service par une consommation abusive des ressources telles que les processeurs,
la mémoire ou le réseau. L’idée, pour le pirate, c’est de réussir à surcharger les
2.10. Conclusion 26
12. Les failles liées à l’hétérogénéité des technologies imbriquées dans l’architec-
ture interne du Cloud, et l’architecture externe d’interfaçage avec les utilisa-
teurs.
2.10 Conclusion
Problème d’ordonnancement et
d’allocation de ressources
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Ordonnancement : Concepts et définitions . . . . . . . . . . 28
3.3 Les problèmes d’ordonnancement en ligne et hors ligne . . 30
3.4 Les critères 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
notions et travaux de recherches qui ont proposé des solutions ou des améliorations
dans ce contexte.
Les tâches : Une tâche ou un job est une entité élémentaire localisée dans le temps,
par une date de début et une date de fin, et dont la réalisation nécessite une
3.2. Ordonnancement : Concepts et définitions 29
Les contraintes : Les contraintes expriment des restrictions sur les valeurs que
peuvent prendre simultanément les variables de décision. On distingue :
– Des contraintes temporelles concernent les contraintes de temps alloué, is-
sues généralement d’impératifs de gestion et relatives aux dates limites des
tâches (délais de livraisons, disponibilité des approvisionnements) ou à la
durée totale d’un projet et les contraintes de cohérence technologique, ou
contraintes de gammes, qui décrivent des relations d’ordre relatif entre les
différentes tâches.
– Des contraintes de ressources décrivent les contraintes d’utilisation de res-
3.3. Les problèmes d’ordonnancement en ligne et hors ligne 30
2. Les problèmes d’ordonnancement hors ligne (offline) pour lesquels les dates
d’arrivées des jobs (généralement ils sont tous prêts à t = 0 et toutes leurs
caractéristiques sont connues avant l’ordonnancement. Ces problèmes ont été
très largement étudiés pour les jobs séquentiels [53] et pour les jobs parallèles
[20, 23].
Les ressources dans un environnement de Cloud peuvent être choisies par di-
verses manières. La sélection des ressources peut être aléatoires, Round Robin, ou
gourmande en fonction de la capacité de traitement de ressource et de temps d’at-
tente ou par tous les autres moyens. La sélection des tâches peut être basée sur
3.4. Les critères d’optimisation 32
FCFS (First Come First Served), SJF (Short Job First), priorité, ou en groupant
un ensemble de tâches. L’algorithme d’ordonnancement choisit la tâche à exécu-
ter et la ressource correspondante où sera exécutée la tâche. Car chaque stratégie
de sélection a certain bienfaits et pourrait être effectuée dans cette direction pour
extraire les points avantageux de ces algorithmes et pour aboutir à une meilleure
solution qui essaye de réduire au minimum les inconvénients de l’algorithme utilisé.
Quand nous concevons un algorithme d’ordonnancement pour un problème par-
ticulier, nous cherchons à optimiser certains critères. Comme nous allons le voir,
ce critère dépend du problème à traiter et il n’existe pas pour tous les problèmes
d’ordonnancement un critère d’optimisation universel. Néanmoins, nous pouvons
donner quelques critères d’optimisation fréquemment utilisés. Pour les problèmes
hors ligne d’ordonnancement d’une collection de jobs ou d’un graphe de tâches
dont les propriétés sont connues à l’avance, un critère d’optimisation souvent utilisé
est la date de terminaison du dernier job ou de la dernière tâche du graphe. Il s’agit
du temps de complétion maximal ou makespan noté Cmax . Il correspond au temps
passé par le système à réaliser tout son travail.
Dans un cluster, les ressources de calcul ne sont pas illimitées, si bien que, quand
les processeurs sont tous occupés, les jobs de certains utilisateurs sont mis dans une
file d’attente. Á cause de cette file d’attente, un critère d’optimisation est alors
le temps d’attente moyen (flow time noté Fi ) qu’il faut minimiser. Il s’agit de la
moyenne des temps Fi écoulés entre l’arrivée du job i dans le cluster (à la date
ai ) et la fin de son exécution (à la date Ci ) : Fi = Ci - ai . Dans [5], Bender et al.
préconise plutôt de minimiser la fonction max Fi . En effet, minimiser une moyenne
des temps d’attente a tendance à allonger les temps d’attente des petits jobs.
Dans le contexte des problèmes d’ordonnancement de jobs pour les clusters, les
travaux de Bender et al. [5] aborde un critère d’optimisation fréquemment utilisé :
le stretch. Le stretch Si reflète le ralentissement engendré par l’exécution en concur-
Fi
rence avec d’autres jobs dans le cluster : Si = avec Fi le temps d’exécution totale
Ci
du job i et Ci le temps de calcul du job i s’il s’exécutait tout seul sur le cluster. Le
calcul du stretch moyen correspond à la moyenne arithmétique de l’ensemble des
1 P
stretchs Si : Si . Pour des raisons de risque de famine, les auteurs proposent
N i
3.5. L’ordonnancement et la virtualisation dans le Cloud computing 33
tâches axées sur la base du modèle de marché pour les environnements distribués
hétérogènes est proposée dans le travail [74].
Le développement d’un modèle de tarification en utilisant le partage du proces-
seur dans les Clouds, l’application de ce modèle de tarification aux services compo-
sites avec dépendance et le développement de deux ensembles de planification et de
profit conduit aux algorithmes proposés dans [37].
Le service d’approvisionnement en Cloud est basé sur les accords au niveau de
service. SLA représente un contrat signé entre le client et le fournisseur de services
en précisant les termes de l’accord, y compris les exigences non fonctionnelles du
service spécifié comme la qualité de service (QoS), des obligations et des sanctions
en cas de violation de l’accord. Il existe donc un besoin de stratégies de planification
tenant compte de multiples paramètres SLA et d’allocation efficace des ressources.
Une nouvelle heuristique d’ordonnancement tenant en compte de multiples para-
mètres SLA pour le déploiement d’applications dans le Cloud est présenté dans
[36]. L’algorithme d’ordonnancement qui permet le réapprovisionnement des res-
sources dans le Cloud en cas de défaillance est introduit dans [1]. L’objectif du
modèle est de fournir une entente équitable pour les utilisateurs et les consomma-
teurs, une meilleure qualité de service, ainsi que la génération de coût optimal. Un
schéma d’ordonnancement du nuage présenté en [13] utilise SLA avec moniteur de
confiance pour fournir une planification plus rapide à la demande de l’utilisateur
avec un traitement sécurisé. Une nouvelle approche pour l’heuristique d’ordonnan-
cement des requêtes sur chaque serveur, dans chacun des centres de données répartis
géographiquement, à l’échelle mondiale pour un meilleur équilibrage de charge du
système de Cloud computing est proposé dans [6].
Sur la base de la fonction de files d’attente et de modèle de coûts, 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 modèle de file d’attente prioritaire de préemp-
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 à la fluctuation dynamique des demandes de ressources,
3.6. Les principaux algorithmes d’ordonnancement 35
l’allocation des ressources axée sur le marché a été proposée 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 différents
types de machines virtuelles (VM) et le fournisseur de Cloud exécute un modèle de
marché à base d’enchères pour chaque type de VM avec l’objectif d’atteindre un
maximum de revenus au fil du temps. Une étude de cas du fournisseur de Cloud
unique et la meilleure façon de la demande de la clientèle en termes de l’offre et de
prix, afin de maximiser les revenus des fournisseurs et les satisfactions des clients
tout en réduisant le coût de l’énergie est proposée dans [73]. Un autre mécanisme
à base d’enchères 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 décisions de provisionnement de VM est proposé dans [72].
M0 M1 M2 M3
T1 40 100 20 50
T3 20 50 10 25
T5 80 200 40 100
Le résultat d’exécution des tâches selon l’algorithme Min-min est donné dans la
Figure 3.1 suivante :
est supprimée de la liste des tâches. La même procédure est répétée jusqu’à ce que
toutes les tâches soient assignées sur les ressources [34].
Le résultat d’exécution des tâches selon l’algorithme Min-max est donné dans
la Figure 3.2 suivante en utilisant les mêmes paramètres du tableau 3.1 :
Algorithme Round Robin : Cet algorithme suit une stratégie simple qui
consiste à distribuer de manière équitable les tâches sur les machines virtuelles dis-
ponibles, c’est-à-dire que le nombre de tâches pour chaque machine virtuelle est le
même. Cet algorithme est implémenté dans le simulateur CloudSim [12].
Cette section présente une série de travaux qui traitent différentes stratégies
d’ordonnancement des workflows dans les grilles et les Clouds afin d’identifier les
caractéristiques et les possibilités dans les environnements mentionnés pour l’ordon-
nancement des tâches et des ressources.
La Figure 3.3 décrit l’exécution de plusieurs workflows sur plusieurs Clouds.
Tout d’abord, le client envoie son job à la couche Broker [22] où l’algorithme d’or-
donnancement est installé. On suppose que tous les jobs sont formés par des DAGs
(Directed Acyclic Graph), chaque tâche est représentée par un cercle. Après, l’al-
gorithme prioritise les tâches et réserve des ressources dans le cloud privé et public.
Ensuite, il choisit pour chaque tâche la ressource adéquate pour l’exécuter. Enfin,
le résultat de calcul du job est renvoyé à l’utilisateur [61]. La résolution de l’ordon-
nancement des tâches, spécialement dans un système distribué et hétérogène, est de
complexité NP-hard. En général, des algorithmes courants utilisent des heuristiques
pour trouver une solution qui est quasi-optimal [22]. Le Tableau 3.2 présente les al-
gorithmes d’ordonnancement de workflows pour les environnements Clouds pour
optimiser l’utilisation de coût et de performance.
3.7. Les algorithmes d’ordonnancement pour les applications
scientifiques 39
L’algorithme a une
pré-étape pour
Un algorithme
découvrir et
d’ordonnancement
réordonner les
CTC pour
tâches échouées. Il
l’exécution de
exploite l’effet
workflow dans le
Compromised Cloud computing. interactif entre le Il ne considère pas
coût et le deadline simultanément les
time-cost Il est centré sur des Makespan,
qui agit sur la deux contraintes
scheduling contraintes d’une coût SwinDeWC
performance du dans le workflow
algorithm relation interactive monétaire
workflow. De plus, pour minimiser la
(CTC) [41] entre le temps et le
il permet à performance totale
coût comme un
l’utilisateur de
compromis qui est
redéfinir leurs
basé sur des
deadline et leurs
caractéristiques du
coûts dans chaque
Cloud
cycle de
l’ordonnancement
L’article propose
une nouvelle
approche pour L’espace d’état
l’ordonnancement pour faire des
du workflow dans tâches est grande
Il s’adapte
le Cloud en incluant
automatiquement
Learning computing, c’est l’utilisation ou
au changement
l’architecture non-utilisation des
architec- Makespan, d’environnement
d’apprentissage qui ressources selon le
ture for coût Cloudsim des ressources par
utilise un processus temps. Il ne
scheduling monétaire l’apprentissage. De
de décision pour considère pas les
(LA) [3] plus, il garantit
diriger types de VMs. Il
l’exécution réussie
optimalement le répète l’évaluation
du workflow
processus de la fonction
d’exécution du fitness
workflow selon
l’état de
l’environnement
3.7. Les algorithmes d’ordonnancement pour les applications
scientifiques 41
Deadline
and budget
distribu-
Cet algorithme
tion based
minimise le coût Il ne fait pas avec un
cost-time
d’exécution tout en Il garantit que toutes réordonnancement
Makespan,
optimiza- répondant au délai les tâches sont faites quand une tâche
coût Java
tion pour l’obtention des par leurs contraintes n’est pas terminée.
monétaire
résultats et analyse correspondantes De plus, il est
scheduling
le comportement de statique
algorithm
l’algorithme
(DBD-
CTO)
[65]
La stratégie peut
faire
Multiple
l’ordonnancement Il s’accorde avec les
QoS pour multiple multiples workflows
constrai- workflows qui sont et le
Dans [44], les auteurs présentent une stratégie d’ordonnancement des tâches dy-
namique qui traite la relation entre l’utilisateur et la ressource. Dans cette approche,
les ressources ne sont pas considérées individuellement, mais regroupées. L’ordon-
nanceur, dans cette approche, sélectionne les sites, et cette sélection est faite par
une stratégie opportuniste. Il vise à répartir les tâches du flux de travail à travers
des sites de la grille en fonction de leurs performances.
Le travail [67] présente une étude de programmation des applications de work-
flow sur les grilles basé sur un modèle d’ordonnancement bi-critères. Il utilise le
Constraint Algorithme dynamique (DCA) comme une solution au problème d’op-
timisation avec deux critères indépendants (exécution et coût). L’algorithme choi-
sit un critère primaire et l’utilisateur établit un pourcentage de variation pour le
deuxième critère. Cependant, cette approche ne tient pas compte des exigences de
qualité de service, ne différenciant pas la qualité des ressources et des services. Il
n’utilise pas le regroupement des tâches pour réduire la consommation de bande
passante. Dans [70], le travail présente un algorithme d’ordonnancement basé sur le
coût des flux de travail pour les applications en temps réel. Le but de l’algorithme
est de développer un programme qui minimise le coût et répond aux contraintes
de temps imposées par l’utilisateur. Le flux de travail est divisé en sous-ensembles
de tâches pour l’établissement d’un seul flux. Les tâches qui ne forment pas un
seul flux sont séparés et chacune d’entre elles fonctionne comme un sous-ensemble
indépendant.
Le thème de la réplication des tâches a été largement explorée dans le contexte
des systèmes de grille sans aborder la question du coût et de l’utilisation des res-
sources. Des récentes recherches sont portés sur des algorithmes qui sont conscients
de la complexité des environnements de Cloud lors de leur utilisation pour ordon-
nancer des applications de workflow. Reynolds [52] a proposé l’utilisation de Cloud
pour compléter les ressources de la grille. Cependant, les ressources de Cloud sont
déployés dans le but de répliquer les tâches lentes pour augmenter les chances d’un
achèvement rapide du flux de travail. La méthode proposée n’est pas optimisée soit
pour le budget et pour le temps d’exécution ; par contre, elle fonctionne dans des
meilleures conditions lorsque les tâches en retard sont détectées. Xu et al. [68] et
3.8. Conclusion 43
Mao et Humphrey [42] ont proposé des algorithmes pour l’ordonnancement de plu-
sieurs flux de travail dans les Clouds. Rahman et al. [51] ont proposé un algorithme
pour les Clouds hybrides, où au moins une partie des ressources peut être utilisée
sans coût et avec un niveau plus élevé de contrôle de performance.
3.8 Conclusion
Stratégies d’ordonnancement et
d’allocation de ressources pour
les Clouds scientifiques
Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Stratégie d’ordonnancement basée sur la réplication de don-
nées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.1 Étape de construction . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Étape d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.3 Service de gestion de réplication dynamique . . . . . . . . . . . 60
4.3 Stratégie d’ordonnancement basée sur le groupement de
tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.1 Etape de construction . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2 Étape d’ordonnancement . . . . . . . . . . . . . . . . . . . . . 66
4.4 Stratégies d’ordonnancement et d’allocation de ressources
pour les Big Data . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4.1 La première variante OADTV . . . . . . . . . . . . . . . . . . . 67
4.4.2 La deuxième variante OAAMV . . . . . . . . . . . . . . . . . . 69
4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1. Introduction 45
4.1 Introduction
ans les chapitres précédents, nous avons présenté les notions de base du Cloud
D Computing, et nous avons exploré et comparé certaines stratégies d’ordon-
nancement de tâches et d’allocation de ressources. Notre objectif principal est
de proposer et d’implémenter des stratégies d’ordonnancement et d’allocation de
ressources de données scientifiques afin d’améliorer certaines métriques de perfor-
mances tels que le temps de réponse, le temps d’attente, le nombre de déplacements
des données et le coût total engendré. Le présent chapitre permet de décrire nos
trois contributions, d’expliquer leurs démarches, de détailler leurs différentes phases,
et de décrire les algorithmes nécessaires, ainsi que les diagrammes du langage UML
(Unified Modeling Langage) pour modéliser les démarches de l’ensemble des diffé-
rentes étapes.
Dans cette section, nous décrivons notre première contribution à savoir une
stratégie pour l’ordonnancement des tâches et l’allocation de ressources, destinée
aux applications de workflows scientifiques distribuées. Cette stratégie est établie
à partir d’une matrice de clusterisation (classification) basée sur l’algorithme des
K-means [48].
La Figure 4.1 donne une vue globale sur les principales étapes de la stratégie, et
qui est réalisée à partir d’une simple instance de workflow (prise comme exemple).
4.2. Stratégie d’ordonnancement basée sur la réplication de données 46
\
dependencyij = Count(Ti Tj ) (4.1)
Deux mesures, BEC et BEL sont définies pour cet algorithme. La permutation
est faite de telle sorte que ces mesures (voir les Formules 4.2 et 4.3) soient
maximisées :
n
X
BEC i, j = DMi,j × DMi,j+1 (4.2)
i=1
n
X
BEL i, j = DMi,j × DMi+1,j (4.3)
j=1
la matrice en calculant des énergies (d’où son nom) et en permutant les lignes et
les colonnes.
Après de nombreuses itérations, le résultat de l’application de cet algorithme
donnera une matrice de dépendance clusterisée notée CM . La Figure 4.2 résume, à
travers un diagramme d’activité, cette phase de mise en place et clusterisation de
la matrice de dépendance.
p X
X p n
X n
X p
X n
X
PM = CMij × CMij − ( CMij )2 (4.4)
i=1 j=1 i=p+1 j=p+1 i=1 j=p+1
Cette mesure signifie que les datasets dans chaque partition auront des dépen-
dances plus élevées qu’avec les datasets qui se trouvent dans les autres partitions.
Algorithme de partitionnement binaire : Cet algorithme a été 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 définit comme suit :
Étant donné un ensemble D de datasets, l’algorithme essaye, à chaque itération,
de former deux groupes différents à partir des datasets existants, dans le but de
trouver la meilleure combinaison possible. L’opération s’effectue en variant la valeur
de p et en choisissant la valeur maximum de P M . Choisir une valeur max pour P M
signifie que les datasets se trouvant dans le même groupe ont une dépendance plus
élevée que s’ils étaient regroupés autrement.
1: pour p := 1, p ≤ n − 1, p + + faire
2: Calculer P M (formule 4.4)
3: pour tout P Ms obtenues faire
4: Choisir p/ sa valeur P M = M AX
5: Prendre p point de coupure et Partitionner CM en CMT et CMB
6: retour CM P ;
Pn
DB = {dp+1 , dp+2 , ..., dn }. DB est de taille dsB / dsB = i=p+1 si . P étant le point
de coupure.
La Figure 4.3 montre un diagramme d’activité décrivant l’algorithme de parti-
tionnement de la matrice de dépendance clusterisée.
B. Étape de distribution :
Dans cette partie, nous devons distribuer les datasets sur les datacenters. Un para-
mètre noté λini est introduit pour chaque datacenter dcj ∈ DC. Il désigne l’usage
initial (en %) de la capacité de stockage du datacenter, c’est-à-dire, que la taille ini-
tiale des datasets qui vont se trouver dans dcj ne pourra pas dépasser csj ∗ λini . La
valeur de λini dépendra du type d’application en cours d’exécution [71]. De ce fait,
nous avons établi une liste d’applications avec les valeurs de λini correspondantes
(Voir Tableau 4.1) :
4.2. Stratégie d’ordonnancement basée sur la réplication de données 52
Bio-informatique 50%
Astronomie 40%
Sismologie 60%
4: Partitionner CM (Algorithme 1)
5: si dsT < maxm
j=1 csj alors
6: Trouver dci ∈ DC
7: si csi = minm
j=1 (csj > dsT ) alors
Durant la phase d’exécution, l’algorithme des K-means [48] sera utilisé afin
de classifier, dynamiquement, les datasets générés en affectant chacun deux à l’un
des K datacenters obtenus durant l’étape de construction. Comme pour l’étape de
construction, cette étape, contient, elle aussi, deux phases importantes :
– Ordonancement et exécution des tâches ;
– Préallocation des datasets générés par un algorithme de classification.
Avant de se préoccuper des datasets qui vont être générés, il faudrait, d’abord
exécuter les tâches existantes. Étant donné que le déplacement de datasets d’un
datacenter vers un autre est plus coûteux que l’ordonnancement des tâches vers ce
datacenter. Un algorithme d’ordonnancement des tâches est utilisé (Algorithme 3).
Dans cet algorithme, la technique employée se base sur le placement des datasets,
c’est-à-dire, les tâches prêtes sont ordonnancées vers le datacenter qui contient la
majorité des datasets requis. Une tâche est dite prête si tous les datasets requis
appartiennent à l’ensemble des datasets existants. Une fois les tâches exécutées, de
nouveaux datasets sont générés.
La Figure 4.5 montre un diagramme d’activité décrivant l’ordonnancement et
l’exécution des tâches.
4.2. Stratégie d’ordonnancement basée sur la réplication de données 56
Description :
Une fois générés, les nouveaux datasets seront classifiés à l’aide de l’algorithme
des K-means [48], en suivant la démarche suivante :
A. Choix du Datacenter destinataire
Étant donné du un nouveau dataset généré et Tu l’ensemble des tâches qui
utiliseront du . Le calcul de la dépendance entre du et les K datacenters se
procède comme suit :
Une fois, les K dépendances calculées, le datacenter avec la plus grande valeur
de dépendance est sélectionné (la dépendance entre deux datasets représente
le nombre de tâches qui les exécutent ensemble, plus elle est élevée dans un
datacenter donné plus le dataset généré est dépendant et doit se trouver avec
les datasets de ce datacenter). Ce dernier est noté dch , où :
dc depuh = maxK
j=1 (dc depuj ) (4.7)
dch est le datacenter dans lequel le dataset du va être stocké. Une vérification
de la capacité de stockage disponible pour ce datacenter est effectuée avant le
déplacement de du .
B. Vérification de l’espace de stockage
Un paramètre noté λmax est introduit pour chacun des K datacenters. Il
désigne l’usage maximal (en %) de la capacité de stockage du datacenter, c’est-
à-dire, un seuil indiquant quand est-ce qu’un datacenter devient surchargé.
4.2. Stratégie d’ordonnancement basée sur la réplication de données 58
est exprimée en terme de plus grande valeur de dépendance avec l’un des
K datacenters (voir Formule 4.7).
iv) Classifier : Une fois le datacenter approprié trouvé et après une véri-
fication de la capacité de stockage disponible (voir Formules 4.8 et 4.9) ;
l’affectation des datasets est effectuée.
Figure 4.6 – Diagramme d’activité pour la gestion des datasets générés avec l’al-
gorithme des K-means
Remarques :
2. Dans le cas où λmax est mis à 100%, un espace de stockage additionnel et
temporaire peut être requis pour servir comme buffer, avant l’accomplisse-
ment du processus d’ajustement. Cependant, cette situation ne se produit
que rarement dans le système et ce pour les causes suivantes :
(a) La taille totale des datasets dans le système est plus petite que celle de
la capacité de stockage disponible dans tous les datacenters, car nous
sommes sûr que les datacenters peuvent héberger tous les datasets du
système ;
(b) Pour chaque datacenter, nous réservons certain espace de stockage pour
les datasets générés pendant l’exécution (cs ∗ (λmax − λini )), cet espace
de stockage n’est pas toujours très utilisé, parce que nous supprimons les
datasets obsolètes, dynamiquement.
Durant l’étape d’exécution, chacune des tâches va être ordonnancée vers le data-
center qui possède la majorité des datasets requis. Avec cette approche, nous allons
essayer de répliquer certains datasets dans le but de minimiser leurs déplacements
d’un datacenter vers un autre et par conséquent réduire le temps de réponse des
requêtes des utilisateurs. Pour ce faire nous avons élaboré un algorithme pour la
réplication des datasets.
Afin de répliquer certains datasets importants, les plus fréquemment utilisés, un
algorithme a été mis en place. Son principe peut être décrit comme suit :
2. Pour chaque tâche nous marquerons les datasets qui ne sont pas disponibles
dans le datacenter destinataire, c’est-à-dire, que chaque datacenter contiendra
sa propre liste de marquage qui sera établie en fonction des datasets non dispo-
nibles en local et qui doivent être déplacés (Lignes 2 jusqu’à 4 de l’Algorithme
4).
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
répliquer dj
pour chaque dcj ∈ K faire
Mettre à jour csj
pour chaque ti ∈ T faire
Exécuter ti
Dans cette section, nous décrivons notre deuxième contribution à savoir une
stratégie pour l’ordonnancement des tâches et l’allocation de ressources, destinée
aux applications de workflows scientifiques distribuées. La stratégie d’ordonnance-
ment est basée sur le groupement de tâches [17] qui se compose de deux grandes
étapes :
– Etape de construction ;
– Etape d’ordonnancement.
4.3. Stratégie d’ordonnancement basée sur le groupement de tâches 64
Nous construisons dans cette étape la matrice de dépendance, c’est une matrice
symétrique carrée (tâches/tâches), chaque case de sa diagonale représente le nombre
de données dans le Cloud, et le reste des éléments représente les dépendances entre
les tâches. Cette dépendance est calculée par la Formule suivante (voir formule
4.12) :
\
T Mij = dependencyij = Count(Di Dj ) (4.12)
n
X
0
BEC i, j = T Mi,j × T Mi,j+1 (4.13)
i=1
n
X
0
BEL i, j = T Mi,j × T Mi+1,j (4.14)
j=1
4.3. Stratégie d’ordonnancement basée sur le groupement de tâches 65
Dans cette section, nous décrivons notre troisième contribution à savoir deux
sous-stratégies pour l’ordonnancement des tâches et l’allocation de ressources, des-
tinée aux environnements de Cloud computing. Deux variantes d’ordonnancement
des tâches et d’allocation des ressources [16] sont présentées :
Étape 1 : Trier les cloudlets (tâches) en fonction de la date limite des instructions
et de leurs longueurs (taille) dans l’ordre croissant ;
virtuelles (AMV) est un arbre binaire avec N nœuds. Chaque nœud représente une
machine virtuelle contenant un identifiant Id et une vitesse d’exécution exprimée en
M IP S de la machine virtuelle. N représente le nombre total de machines virtuelles
spécifiques de calcul dans le Cloud. La propriété spéciale de AMV est que la valeur
de nœud (MIPS) au niveau L est supérieure ou égale à la valeur de nœud au niveau
L + 1 où L >= 0. Chaque nœud contient zéro, un ou deux nœuds enfants. Un nœud
sans nœud enfant est appelé un nœud feuille et le nœud avec des nœuds enfants est
désigné en tant que nœud interne.
Considérons 5 machines virtuelles spécifiques de calcul représentées par leur Id
et M IP S 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 à droite, de telle sorte que la machine virtuelle avec
la plus haute M IP S devient la racine de l’arbre.
X X X
lengthof tasks ∈ G COU N T <= lengthof tasks∗(V M M ipsinlevel)÷ M ipsof V M s
(4.15)
Un algorithme d’ordonnancement des tâches est utilisé (Algorithme 7) :
4.4. Stratégies d’ordonnancement et d’allocation de ressources pour les
Big Data 72
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}}.
Après le découpage et le regroupement de tâches, chaque groupe contient les
tâches suivantes :
4.4. Stratégies d’ordonnancement et d’allocation de ressources pour les
Big Data 73
4.5 Conclusion
Au cours de ce chapitre, nous avons essayé de décrire nos trois contributions pour
l’ordonnancement et l’allocation de ressources, nous avons présenté les différentes
étapes à suivre pour l’utilisation de nos trois stratégies. Nous avons étendue la
première stratégie par un service de réplication dynamique, la seconde stratégie
d’ordonnancement est basée 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 pour les Big
data. Du point de vue technique, nous avons utilisé un ensemble d’algorithmes, de
formules et de diagrammes UML pour faciliter la compréhension et la lecture du
chapitre, d’une part, et d’autre part pour donner un schéma conceptuel général du
travail réalisé.
Dans le chapitre suivant, nous nous intéressons à la concrétisation des stratégies
proposées et cela par l’implémentation de nos stratégies présentées et les différentes
interprétations des résultats obtenus par la simulation.
Chapitre 5
Expérimentation et évaluation
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 développement . . . . . . . . . . . . . . . . 76
5.3 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . 79
5.3.1 Résultats expérimentaux 1 : Stratégie d’ordonnancement basée
sur la réplication de données . . . . . . . . . . . . . . . . . . . 79
5.3.2 Résultats expérimentaux 2 : Stratégie d’ordonnancement basée
sur le groupement de tâches . . . . . . . . . . . . . . . . . . . . 88
5.3.3 Résultats expérimentaux 3 : Stratégies d’ordonnancement et
d’allocation de ressources pour les Big Data . . . . . . . . . . . 92
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.1 Introduction
Eclipse
Eclipse est un environnement de développement intégré (Integrated Develop-
ment Environment) dont le but est de fournir une plate-forme modulaire pour per-
mettre de réaliser des développements informatiques.
I.B.M. est à l’origine du développement d’Eclipse qui est d’ailleurs toujours le
cœur de son outil Websphere Studio Workbench (WSW), lui-même à la base de la
5.2. Langage et environnements de travail 77
famille des derniers outils de développement en Java d’I.B.M. Tout le code d’Eclipse
a été donné à la communauté par I.B.M afin de poursuivre son développement [19].
Eclipse utilise énormément le concept de modules nommés «Plug-Ins» dans
son architecture. D’ailleurs, hormis le noyau de la plate-forme nommé «Runtime»,
tout le reste de la plate-forme est développé sous la forme de Plug-Ins. Ce concept
permet de fournir un mécanisme pour l’extension de la plate-forme et ainsi fournir
la possibilité à des tiers de développer des fonctionnalités qui ne sont pas fournies en
standard par Eclipse. Eclipse possède de nombreux points forts qui sont à l’origine
de son énorme succès dont les principaux sont :
– Une plate-forme ouverte pour le développement d’applications et extensible
grâce à un mécanisme de Plug-Ins.
– Plusieurs versions d’un même Plug-In peuvent cohabiter sur une même plate-
forme ;
– Un support multi langages grâce à des Plug-Ins dédiés : Cobol, C, PHP, ...
– Support de plusieurs plateformes : Windows, Linux, Mac OS X, ...
– Les nombreuses fonctionnalités de développement proposées par le JDT.
– Le gestionnaire de mise à jour permet de télécharger de nouveaux Plug-ins ou
nouvelles versions d’un Plug-in déjà installées à partir de sites Web dédiés.
NetBeans
NetBeans est un projet open source ayant un succès et une base d’utilisateur très
large, une communauté en croisance constante, et près 100 partenaires mondiaux et
des centaines de milliers d’utilisateur à travers le monde. Sun Microsystems a fondé
le projet open source NetBeans en Juin 2000 et continue d’être 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 développement, un outil pour les pro-
grammeurs pour écrire, compiler, déboguer et déployer des programmes. Il est écrit
en Java mais peut supporter n’importe quel langage de programmation. Il y a égale-
ment un grand nombre de modules pour étendre l’EDI NetBeans. L’EDI NetBeans
est un produit gratuit, sans aucune restriction quant à son usage.
Également disponible, La Plateforme NetBeans ; une fondation modulable et
5.2. Langage et environnements de travail 78
Datacenter Broker : Cette classe modélise le courtier (Broker), qui est respon-
sable de la médiation entre les utilisateurs et les prestataires de service selon
les conditions de QoS des utilisateurs et elle permet de déployer les tâches de
service à travers les Clouds. Le Broker agit au nom des utilisateurs, il identifie
les prestataires de service appropriés du Cloud par le service d’information
du Cloud CIS (Cloud Information Services) et négocie avec eux pour une
5.3. Résultats expérimentaux 79
allocation des ressources qui répond aux besoins de QoS des utilisateurs.
Après avoir effectué la simulation, c’est à dire que les tâches se sont exécutées, de
nouvelles données sont générées. Leur classification est effectuée grâce à l’algorithme
des K-means (voir Figure 5.6).
5.3.1.6 Expérimentations
Dans cette partie, nous allons effectuer plusieurs séries de simulations sur trois
types d’approches :
Paramètres Valeurs
Nombre de hosts 10
Nombre de VMs 1
2400000
2200000
2000000
1800000
1600000
1400000
1200000
1000000
800000
600000
400000
200000
0
200 400 600 800 1000
Nombre de tâches
100
90
Le gain pour le temps de réponse (ms)
80
70
60
50
40
30
20
10
0
200 400 600 800 1000
Nombre de tâches
Paramètres Valeurs
Nombre de hosts 10
Nombre de VMs 1
100
90
80
70
Données
60
50
40
30
20
10
0
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9
Nombre de déplacement
80
60
40
20
-20
-40
1
0
9
4
D
D
D
D
Données
1800000
1600000
Temps réponse moyen (ms)
1400000
1200000
1000000
800000
600000
400000
200000
0
es
es
es
es
es
ch
ch
ch
ch
ch
tâ
tâ
tâ
tâ
tâ
0
0
0
0
50
60
30
40
20
C
C
C
C
D
D
D
D
10
12
6
8
4
80
60
40
20
es
es
es
es
es
ch
ch
ch
ch
ch
tâ
tâ
tâ
tâ
tâ
0
0
0
0
50
60
30
40
20
C
C
C
C
D
D
D
D
10
12
6
8
4
Dans cette partie, les expériences sont réalisées dans un environnement de Cloud
fourni par le simulateur CloudSim (voir Annexe B)
Nous présentons les mesures de performances sur lesquelles nous sommes ap-
puyées pour interpréter les résultats obtenus par les simulations puis comparer
entre les différentes approches. Les deux principales mesures de performances sont
5.3. Résultats expérimentaux 89
Il représente tout simplement la date fin du dernier job, parmi tous les jobs
exécutés.
Le budget : Nous avons proposé quelques formules pour calculer le budget. Pour
calculer le coût de traitement des cloudlets qui est égal à la somme du coût
de traitement et de transfert des fichiers d’entrées et de sorties, est donnée
comme suite :
P rocessingCost = (ActuelT imeCP U ×CostP erSec)+InputDataT ransf er+
OutputT ansf erCost
Dans cette partie, nous allons effectuer plusieurs séries de simulations sur les
trois approches :
450
400
350
300
250
200
150
100
50
0
20 40 60 80 100
Nombre de cloudlets
5500
5000
4500
4000
3500
Temps (s)
3000
2500
2000
1500
1000
500
0
100 200 300 400 500
Nombre de cloudlets
D’après ces résultats, nous remarquons que le temps de réponse moyen en Time-
Shared augmente à chaque fois qu’on augmente le nombre de Cloudlets car plusieurs
Cloudlets sont traitées à la fois, alors l’exécution prend beaucoup de temps pour
traiter toutes les Cloudlets, par conséquent le temps de réponse moyen augmente à
chaque fois. Par contre en TimeShared Clustering le temps de réponse moyen est
très faible car les Cloudlets sont répartis sur les différents Datacenters. L’allure de
la courbe en TimeShared Clustering est presque linéaire avec une pente faible par
rapport à la courbe TimeShared.
– Le coût de traitement moyen des Cloudlets :
Dans cette série de simulation, nous avons calculé le coût 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 coût
de traitement, sur des histogrammes, les principales exécutions réalisées sur
ce scénario.
10000
7719
Coût ($)
8000
6000
4140
4000
2026
2000 1288 1550
672 972
585 358
0
0
20
60
80
40
10
Cloudlets
300000
250000
Coût ($)
200000
150000
100000
50000
0
0
0
0
10
20
30
50
40
Cloudlets
élément de calcul a une puissance de calcul varié (selon le paramètre MIPS). Les
algorithmes sont testés 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 utilisées pour exécuter les cloudlets, sont modifiées en consé-
quence.
Dans cette partie, nous allons effectuer des simulations en comparant les deux
sous-stratégies proposées avec les deux politiques d’ordonnancements implémentées
dans le simulateur CloudSim :
Le temps de réponse global pour exécuter les cloudlets est utilisé comme indi-
cateur pour évaluer les performances de la première sous-stratégie (OADTV). Les
résultats sont présentés dans le tableau 5.3 et la Figure 5.18 :
Première straté-
Time Shared(s) Space Shared(s)
gie proposée(s)
Temps de réponse
734,92 840,75 646,63
10 Cloudlets
Temps de réponse
3185,15 2204,34 2032,39
30 Cloudlets
Temps de réponse
8959 3776,8 3548,35
50 Cloudlets
9000
8000
7000
6000
Temps (s)
5000
4000
3000
2000
1000
0
10 30 50
Nombre de cloudlets
3500
3000
2500
2000
1500
1000
500
0
s
s
et
et
et
dl
dl
dl
u
u
lo
lo
lo
C
C
10
30
50
Il a été constaté que, pour un petit nombre de tâches, les trois algorithmes
présentent des performances plus ou moins similaires. Mais, comme le montre le
5.3. Résultats expérimentaux 95
Deuxième straté-
Time Shared(s)
gie proposée(s)
Temps de réponse
1334,94 980
10 Cloudlets
Temps de réponse
11475,05 8819,98
30 Cloudlets
Temps de réponse
31875,7 24959,88
50 Cloudlets
30000
25000
20000
15000
10000
5000
0
s
s
et
et
et
dl
dl
dl
ou
ou
ou
cl
cl
cl
10
30
50
Cloudlets
7000
6000
5000
Gain (s)
4000
3000
2000
1000
0
s
s
et
et
et
dl
dl
dl
ou
ou
ou
cl
cl
cl
10
30
50
Cloudlets
Nous pouvons remarqué que, pour un petit nombre de tâches, tous les deux
algorithmes présentent 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 tâches augmente, la seconde stratégie présente
une meilleure performance par rapport à la politique de temps partagé, puisque les
tâches sont affectées équitablement sur l’ensemble des machines virtuelles. Les deux
sous-stratégies peuvent fournir un meilleur temps de réponse, temps d’attente, et
un meilleur équilibrage de charge.
Dans cette dernière partie, nous allons effectuer des simulations en comparant
l’hybridation des deux sous-stratégies proposées avec la politique d’ordonnancement
Time Shared, implémentée sous le simulateur CloudSim. Les algorithmes sont testés
en faisant varier le nombre de cloudlets entre 100 à 700 par pas de 100, en changeant
la longueur des cloudlets. En outre, le nombre de machines virtuelles utilisées pour
exécuter les cloudlets, sont modifiées en conséquence. Le temps de réponse pour
exécuter les cloudlets et le coût global d’utilisation de ressources sont utilisés comme
des indicateurs pour évaluer les performances de la stratégie. Les résultats sont
5.3. Résultats expérimentaux 97
400
350
Temps de réponse (s)
300
250
200
150
100
50
0
0
0
0
10
20
30
50
60
70
40
Cloudlets
1400
1200
1000
Coût ($)
800
600
400
200
0
0
0
0
10
20
30
50
60
70
40
Cloudlets
Les graphes des Figures 5.22 et 5.23 montrent l’effet de l’équilibrage de charge
dans l’exécution des tâches entre les différentes machines virtuelles dans la réduction
du temps de réponse des tâches puisque les tâches seront exécutées sur les différentes
5.4. Conclusion 98
5.4 Conclusion
Dans ce chapitre, nous avons simulé nos trois stratégies proposées sous le simu-
lateur réalisé en Java et sous le simulateur CloudSim pour étudier leurs comporte-
ments. Nous avons comparé les résultats obtenu avec des approches existantes tel
que la stratégie d’ordonnancement FCFS (First Come First Served) et RR (Round
Robin) et les stratégies déjà implémentées sous le simulateurs CloudSim, à savoir
(Space Shared et Time Shared). Comme métriques de performance, nous avons uti-
lisé le temps de réponse, le nombre de déplacement des données et le coût de la
réplication pour les workflows scientifiques, et le coût global engendré.
En résumé, les résultats de simulation des stratégies d’ordonnancement et d’al-
location de ressources proposées ont donné un comportement positif et les résultats
obtenus sont très encourageant qui répondent aux objectifs tracés dans le cahier de
charge initial.
Chapitre 6
Conclusion générale
simplement leur admissibilité. L’approche par optimisation suppose que les solutions
candidates à un problème puissent être ordonnées de manière rationnelle selon un
ou plusieurs critères d’évaluation numériques, construits sur la base d’indicateurs
de performances. On cherchera donc à minimiser ou maximiser de tels critères liés
au temps ou aux ressources.
L’ordonnancement de tâches et d’allocation de ressources dans les systèmes de
Cloud computing suscite une attention croissante avec l’augmentation de la popu-
larité de Cloud. En général, l’ordonnancement de tâches est le processus d’affec-
tation des tâches aux ressources disponibles sur la base des caractéristiques et des
conditions des tâches. C’est un aspect important dans le fonctionnement efficace du
Cloud, car de divers paramètres de tâches doivent être pris en considération pour
un ordonnancement approprié. Les ressources disponibles devraient être utilisées
efficacement sans affecter les paramètres de service du Cloud.
Pour optimiser l’ordonnancement et l’allocation de ressources dans les Cloud
computing, nous avons proposé dans cette thèse trois stratégies d’ordonnancement,
la première stratégie d’ordonnancement est basée sur la réplications des données
pour les workflows scientifiques, la seconde stratégie d’ordonnancement est basée
sur le groupement de tâches et la dernière stratégie d’ordonnancement de tâches
et d’allocation de ressources pour les Big data. La première stratégie comporte
trois phases, nommée respectivement, l’étape de construction, l’étape d’exécution
et l’étape de réplication. La deuxième stratégie basée sur le groupement de tâche,
contient à son tour deux phases, nommée respectivement l’étape de construction
et l’étape d’ordonnancement. La troisième stratégie contient deux sous stratégies,
la première basée sur des paramètres d’optimisation de Cloud, tel que la vitesse
d’exécution des machines virtuelles et la longueur des tâches. La seconde est basée
sur un arbre de construction de machines virtuelles.
Dans ce travail, nous avons simulé les trois stratégies proposées sous un simula-
teur réalisé en Java et sous le simulateur Cloudsim pour étudier leurs comportements
et nous avons comparé les résultats obtenus avec des approches existantes telque la
stratégie d’ordonnancement FCFS (First Come First Served) et RR (Round Robin)
et des stratégies déjà implémentées sous le simulateurs Cloudsim, à savoir (Space
101
[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. (Cité en page 34.)
[2] Oracle Corporation and/or its affiliates. Bienvenue à netbeans. https ://net-
beans.org/, (Consulté Mai 2014). (Cité 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. (Cité
en page 40.)
[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. (Cité
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. (Cité en page 34.)
[8] Jean-Louis Caire and Willy Munch. Objectif Cloud : Une démarche pratique
orientée services. Eni Datapro, 2014. (Cité en pages 18 et 19.)
[10] Amit Nathani Sanjay Chaudharya and Gaurav Somanib. Policy based resource
allocation in iaas cloud. Future Generation Computer Systems, 28(7) :94–103,
2012. (Cité 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. (Cité en
page 10.)
[12] The Cloud Computing and Distributed Systems (CLOUDS Laboratory) Uni-
versity of Melbourne. Cloudsim. http ://www.cloudbus.org/cloudsim/,
(Consulté Mars 2015). (Cité 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. (Cité en page 34.)
[14] Claude Delannoy. Programmer en Java. Eyrolles, 2007. (Cité 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. (Cité 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. (Cité 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. (Cité 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. (Cité en page 46.)
[20] Pierre-François Dutot, Lionel Eyraud, Grégory Mounié, 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.
(Cité en page 31.)
[21] Bruce Eckel. Thinking in Java (4th Edition). Prentice Hall PTR, Upper Saddle
River, NJ, USA, 2005. (Cité 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. (Cité en
pages viii, 38 et 39.)
[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. (Cité 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. (Cité 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. (Cité 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. (Cité
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. (Cité en page 113.)
[30] Romain Hennion, Hubert Tournier, and Eric Bourgeois. Cloud computing : Dé-
cider, Concevoir, Piloter, Améliorer. Groupe Eyrolles, 2012. (Cité en pages 22,
23 et 24.)
[33] Mansouri Khalil. L’ordonnancement des tâches dans le cloud computing par
une approche d’optimisation parallèle. Master en informatique, Université Mo-
hamed Khider, Biskra, 2013. (Cité 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. (Cité
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. (Cité 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. (Cité 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. (Cité 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. (Cité 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. (Cité 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. (Cité 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.
(Cité 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. (Cité en page 43.)
[44] Luiz Meyer, Marta Mattoso, Doug Scheftner, Mike Wilde, Jens Voeckler, and
Ian Foster. (Cité 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. (Cité en page 69.)
[46] A. Ohri. R for Cloud Computing : An Approach for Data Scientists. Springer,
New York Heidelberg Dordrecht London, 2014. (Cité 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. (Cité 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. (Cité en pages 45,
55, 57 et 58.)
[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. (Cité en page 43.)
[55] Robert Shimonski. Windows 2000 & Windows Server 2003 Clustering and
Load Balancing. (Cité en page 30.)
[56] Guillaume Sigui. Cloud computing, quels sont les risques de sécurité majeurs
du cloud computing ? http ://www.developpez.com/, (Consulté Mars 2014).
(Cité en pages ix, 24 et 79.)
[58] Anne Tasso. Le livre de Java : premier langage. Collection noire. Eyrolles,
Paris, 2010. (Cité en page 76.)
[59] Fei Teng. Resource allocation and schelduling models for cloud computing. Phd
thesis, Ecole Centrale Paris, October 2011. (Cité en page 33.)
[60] Michael Tighe, Gastón 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.
(Cité 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 parallélisme (LIP), 2013. (Cité en pages 31 et 38.)
[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. (Cité 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. (Cité en
page 41.)
[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. (Cité 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. (Cité 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. (Cité 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. (Cité
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. (Cité en pages 46, 51 et 58.)
Bibliographie 110
[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. (Cité 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. (Cité en
page 34.)
[75] Liang Zhao, Sherif Sakr, Anna Liu, and Athman Bouguettaya. Cloud Data
Management. Springer Editor, 2014. (Cité en pages viii, 14 et 15.)
Annexe A
Simulateurs de Cloud
computing
ans un système distribué, il existe des enjeux à résoudre tels que la gestion
D des ressources et l’ordonnancement des applications car, ces tâches sont com-
pliquées et il n’existe pas une solution optimale pour répondre à ces issues. D’autre
part, dans l’environnement d’un système distribué comme Cloud, il est difficile d’ef-
fectuer les différents scénarios avec différents nombres de ressources et d’utilisateurs
afin d’évaluer la performance des algorithmes de partage de charge, Broker, gestion
des ressources, etc. Lorsque on veut évaluer les scénarios de manière répétable et
contrôlable, cela est parfois impossible à cause de l’issue du coût et de la gestion.
Afin de résoudre cette issue, les chercheurs utilisent des simulateurs pour effectuer
leur scénarios avant de les effectuer au sein d’un système distribué réel. Plusieurs
simulateurs de Cloud Computing sont actuellement en développement. En voici une
liste non exhaustive, décrivant les caractéristiques de chacun d’entre eux.
expose la configuration des fonctionnalités liées aux hôtes (ex : nombre de machines,
leurs spécifications), les politiques d’ordonnancement de Broker, les applications (
ex : nombre de tâches et leurs besoins), les VMs , et le nombre d’utilisateurs.
Il a été développé dans le laboratoire CLOUDS de science et de génie dans le
département Informatique de l’Université de Melbourne, en Australie. Il fournit des
classes de base pour décrire les centres de données, les machines virtuelles, les ap-
plications, les utilisateurs, les ressources informatiques et les politiques de gestion
des diverses parties du système (par exemple, l’ordonnancement et l’approvisionne-
ment). Ces composants peuvent être mis en place pour les utilisateurs pour évaluer
de nouvelles politiques, les algorithmes d’ordonnancement, la cartographie, etc. Le
Cloud est une boı̂te à outils de simulation complexe à l’aide duquel la plupart des
scénarios de Cloud peuvent être construites par une simple extension ou de rempla-
cement des classes et de codage du scénario souhaité.
CloudSim est une solution prête à l’emploi pour définir les paramètres et simu-
ler afin d’obtenir des résultats. Étant une bibliothèque, CloudSim exige d’écrire le
programme en Java à l’aide de ses composants pour composer le scénario souhaité
et de recueillir les résultats de l’analyse de la performance et de la sécurité 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 possède toutes les sous-couches en ce qui concerne les principaux
composants tels que les capteurs de nuages, les centres de données, etc. [35]. L’uti-
lisation de CloudSim permet de modéliser les centres de données, la répartition de
la machine virtuelle en utilisant un VMScheduler, la consommation d’énergie et le
comportement du réseau. D’autres outils de simulation qui étendent la puissance
de CloudSim sont : CloudSimEx, WorkflowSim, SimpleWorkflow, RealCloudSim,
CloudReports, CloudAuction, CloudMIG Xpress, CloudAnalyst [12].
A.2. EMUSIM 113
A.2 EMUSIM
GroudSim est un simulateur basé sur des événements, il a été proposé par Oster-
mann et al. [47] pour des applications scientifiques sur les environnements de grille
et de Cloud basé sur un noyau discret d’évènement indépendant pour la simulation
évolutive. Il fournit un ensemble complet de fonctionnalités pour les scénarios de
simulation complexes à partir des exécutions d’emploi simples sur les ressources
informatiques louées à des coûts de calcul, et la charge des ressources. Les simu-
lations peuvent être paramétrées et sont facilement extensibles par des paquets de
distribution de probabilité pour les défaillances qui se produisent normalement dans
des environnements complexes. Il est principalement concentré sur le IaaS, mais il
est facilement extensible pour soutenir des modèles supplémentaires tels que PaaS,
DaaS (Data as a Service) et TaaS (Text as a Service).
Simulateur CloudSim :
Développement et
expérimentation
Dans cette partie, nous allons voir comment simuler une application distribuée
au sein d’un Cloud. Chaque Cloud est constitué des Datacenters. On trouve dans
chaque Datacenter, des hôtes et chaque hôte héberge les VMs. Pour faire la simu-
lation, il faut définir une classe qui contient la fonction Main(), dans laquelle, on
définit les paramètres de notre Cloud comme le nombre de Datacenter, des hôtes, et
les caractéristiques de chaque hôte 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. Modélisation du Cloud 118
Étape 1 : Les tâches acceptées sont disposées dans une file d’attente.
Étape 2 : La première tâche dans la file d’attente est lancée sur la machine vir-
tuelle donnée.
Étape 4 : Si la file d’attente est vide, le Broker vérifie pour une éventuelle tâche.
Étape 6 : Fin.
Étape 1 : Les tâches acceptées sont disposées dans une file d’attente.
Étape 3 : Si la file d’attente est vide, vérifier pour une éventuelle tâche.
Étape 5 : Fin.
Figure B.2 – Effets des politiques d’ordonnancements sur l’exécution des tâches :
(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.
ملخص
الحوسبة السحابية هي تكنولوجيا الحوسبة والتخزين الناشئة التي تعمل على التوطيد بسرعة كبيرة في تطوير ونشر عدد
جدولة المهام وتخصيص الموارد في الحوسبة السحابية أنظمة تحظى باهتمام متزايد مع.متزايد من التطبيقات الموزعة
، نقترح ثالث استراتيجيات للجدولة وتخصيص الموارد، في عمل هذه األطروحة.ارتفاع الشعبية في الحوسبة السحابية
استراتيجية الجدولة الثانية تركز على،استراتيجية الجدولة األولى تعمل على أساس تكرار البيانات لسير التطبيقات العلمية
مقترحاتنا تعمل على.تجميع المهام و االستراتيجية األخيرة من جدولة المهام وتخصيص الموارد تختص بالبيانات الكبيرة
. و تقليل التكلفة اإلجمالية الستخدام الموارد، الحد من حركة البيانات للتطبيقات العلمية،تقليل متوسط زمن إ ستجابة المهام
البيانات، تجميع المهام، التطبيقات العلمية، تخصيص الموارد، جدولة المهام، الحوسبة السحابية:كلمات البحث
.الكبيرة