Presentation of our master project "Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordinateurs".
Resolving FlowShop problem with an exact method by programing a parallel application the find the right solution using framework hadoop and java to perform a parallel evaluation of branch and bound algorithm
2. Université des sciences et de la technologie
Houari Boumediene
Soutenance Master Réseaux et Systèmes Distribués
Parallélisation d'algorithmes de graphes avec
MapReduce sur un cluster d'ordinateurs
Parallélisation d'algorithmes de graphes avec
MapReduce sur un cluster d'ordinateurs
Département d'informatique
Présenté par :
BENHADJ DJILALI Hadjer
AIT AMEUR Ouerdia Lydia
Proposé par :
MEHDI-SILHADI Malika
2
3. Plan :Plan :
Le modèle MapReduce
Branch and Bound
Flow Shop de permutation
Conception et implémentation d'un B&B sur hadoop Mapeduce
Tests et résultats
Conclusion et perspective
Le Framework Hadoop
3
Contexte et problématique
Défis et contraintes rencontrées
4. 4
Contexte etContexte et
problématique :problématique :
On assiste actuellement à l'apparition de gros
volumes de données structurées et surtout non
structurées sur le web et dans les entreprises, on
parle de BigData, pour les analyser d'une façon
efficace et rapide Google a proposé un modèle
appelé MapReduce. Deux opérations map et reduce
permettant de paralléliser le traitement font sur des
données de grande taille et distribuées sur les
nœuds d'un cluster. Ce modèle a été ensuite adapte
par beaucoup d'entreprises ayant des volumes
importants de données à analyser pour sa flexibilité
et ça facilite d'utilisation. C'est aussi devenu la
technologie la plus utilisée sur le cloud.
La question ici est de voir si ce modèle pourrait bien être utilise pour le cas
des applications qui sont orientes calcul. Particulièrement On s'intéresse
ici a la parallélisation d'un algorithme d'optimisation exacte appelé Branch
and Bound et qui est base sur une structure d'arbre appelé arbre de
recherche afin d‘énumérer toutes les solutions de l'espace de recherche.
cet algorithme a été largement étudié dans la littérature et puiseurs
stratégies de parallélisation ont été proposées et implémentées pour
divers types d'architectures parallèles (clusters, grilles, GPUs). Ici on
s'intéresse a l'adaptation de ces stratégies traditionnelles pour une
exécution sur un cluster Mapreduce hadoop pour la résolution du problème
d'optimisation combinatoire flow shop de permutation.
5. Le modèleLe modèle MapReduce:MapReduce:
5
Clien
t
Job
MapReduc
e
Partie de
job Partie de
job
Données
en entrée
Données
en sortie
Map
Map
Map
Reduc
e
Reduc
e
Le client soumit un
job MapReduce
MapReduce décompose le
job en Map et Reduce
opérations
7. 7
Le Framework Hadoop :Le Framework Hadoop :
Calcul
(MapReduce)
Stockage
(HDFS)
Nœud
maître
Nœud
esclave
Calcul
(MapReduce)
Stockage
(HDFS)
Responsable
d’ organiser le calcul
qui devrait être
planifier sur les
nœuds esclaves
Responsable de
partitionner les
données entre les
nœuds esclaves
et de garder
trace de leur
localisation
Rajouter aux
nœuds esclaves
plus de stockage
et de capacité
de traitement
Nœud
esclave
Nœud
esclave
Calcul
(MapReduce)
Calcul
(MapReduce)
Stockage
(HDFS)
Stockage
(HDFS)
Architecture de hadoop :
8. 8
Le Framework Hadoop :Le Framework Hadoop :
Program
me
client
Soumission du job JobTrace
r
NameNod
e
Map()
Blo
cBlo
cBlo
cBlo
c
TaskTracerDataNode
M1
M2 TaskTrace
r
TaskTrac
er
M3
Lecture
TaskTrac
er
R1
R2
DataNode
TaskTrac
er
Lectur
e
Reduce
()
DFS données
de sortie
DFS données
d’entrée
Phase Map Phase
Fichier
1
Fichier
2
Exécution d’un job MapReduce sur
Hadoop:
9. Branch and Bound :Branch and Bound :
9
L’algorithme Branch and Bound est un algorithme de graphe d’une structure
d’arbre.
L’algorithme Branch and Bound est l’une des méthodes les plus efficaces pour la
résolution exacte des problèmes d’optimisation combinatoire.
Il effectue une énumération implicite de l’espace de recherche ce qui réduit
considérablement le temps de calcul nécessaire pour explorer l’ensemble de
l’espace de recherche
Il se base sur 3 opérations :
Séparation
Evaluation
Elagage
La borne supérieure représente le coût de la meilleure solution trouvée actuellement,
elle est initialisée soit a plus l'infini pour un problème de minimisation ou à une bonne
solution trouvée par une heuristique afin de gagner plus de temps en permettant
l‘élagage des noeuds inintéressant dés le début de la recherche.
La borne inférieure représente le cout d’un nœud son évaluation.
10. 10
Branch and Bound :Branch and Bound :
11
00
11
22
11
44
11
77
11
66
11
44
11
55
1818 1919 2020
1919
Elagage :Elagage : Elaguer un nœud qui possède une
borne
Séparation :Séparation : Séparer le problème en sous
problèmes
Nœud non générés et non explorés
Solution complète
11
66
Parcours par largeur
Parcours par
profondeur
11. 11
Branch and Bound :Branch and Bound :
Branch and Bound parallèle les modèles les plus
utilisés :
Modèle multiparamètrique
parallèle
Modèle parallèle de l’exploration
de l’arbre
Modèle d’évaluation parallèle
des limites
12. 12
Branch and Bound :Branch and Bound :
Contribution
:
Nous avons implémenté un Branch and Bound séquentiel avec
deux stratégies de parcours : par largeur et par profondeur.
On a parallélisé les deux stratégies de parcours suivant le
modèle parallèle de l’exploration de l’arbre synchrone et
asynchrone avec Mapreduce sous hadoop dans un
environnement distribué (cluster) que nous détaillerons par la
suite.
Adaptation de B&B avec MapReduce :
13. Flow Shop de permutation :Flow Shop de permutation :
MachinMachin
ee
11
MachinMachin
ee
22
MachinMachin
ee
MM
MachinMachin
ee
33
Job1
Job2
Job3
.
.
.
.
.
.
.
JobN
Tout les jobs doivent passer sur toute les machines de 1 à m avec le même ordre de
passage.
Une machine ne peut traiter qu'une seule tâche à la fois.
L’espace de recherche de la / les solution est n!.
Les solutions sont des permutation de taille N.
13
14. Flow Shop de permutation :Flow Shop de permutation :
14
La borne inférieure :
Nous avons utilisé la borne inférieure de B.J. Legwag et Al qui se base sur la solution
optimale de Jackson Mitten.
15. Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop Mapeduce:sur hadoop Mapeduce:
15
N
Input
HDFS
Maitre
Les esclaves
Division de travail :
16. 16
K KK KK
Lancer K Map qui
s’exécute en parallèle
Lancer K Map qui
s’exécute en parallèle
Lancer K Map qui
s’exécute en parallèle
Lancer K Map qui
s’exécute en parallèle
Lancer K Map qui
s’exécute en parallèle
N Map qui s’exécute en parallèle
Réception des données et lacement des Map pour les esclaves :
Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop Mapeduce:sur hadoop Mapeduce:
17. 17
11 22 33 NN44
Clé/Racine Clé/Racine Clé/Racine Clé/Racine Clé/Racine
Sous arbre de
recherche 4
Sous arbre de
recherche 2
Sous arbre de
recherche 3
Sous arbre de
recherche 1
Sous arbre de
recherche N
………………..
………………..
Sous arbres de
recherches :
Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop Mapeduce:sur hadoop Mapeduce:
18. 18
Nombre
de Job
N
Nombre de machine M
Racine /Clé
Feuilles
Ordonnancement
partiel
Permutation de niveau 1
Permutation de
niveau 2
Sous arbre
:
Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop Mapeduce:sur hadoop Mapeduce:
19. 1919
Mise
À
jours
Mise à jour
de niveau k
Nœuds de niveau k
Feuilles, nœuds
de niveau N
Parcours par profondeur :
Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop MapReduce:sur hadoop MapReduce:
20. 202020
Parcours par largeur :
Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop Mapeduce:sur hadoop Mapeduce:
21. 21
Défis et contraintes rencontrées :Défis et contraintes rencontrées :
Problèmes internes liée a l’architectures de hadoop des pannes de certaine
composant.
Hadoop utilise des types de données simple propre a lui qui rend difficile la
manipulation des clés et des valeurs.
La non-inter fonctionnalité de certaines objet entre les versions de hadoop.
Hadoop ne possède pas de mécanisme pour gérer des variable globale qui
vont être utiliser par tous les mappeurs pour cette raison on à utiliser un fichier
partagé pour la mise a jours.
Hadoop ne laisse pas la main sur la taches de divisons de donnés entre les
esclaves.
Hadoop ne fait l’équilibre de charge entre les nœuds esclaves qui chôme et qui
travail encore il ne y’a pas un moyen de redistribuée les données pour les
esclaves qui chôme.
La taille d’un bloc de hadoop et 64 /128 MB ce qui n’est pas adapté au calcul
simple de petite taille de données pour cela on a généré des fichiers.
La configuration de hadoop.
22. 22
Tests et Résultats :Tests et Résultats :
Outils et environnements de
travail :
Nous avons travaillé avec Hadoop d’apache.
Nous avons utilisé Ide Eclipse pour le développement en langage java.
Nous avons fait les tests sur nos machines local cluster SingleNode.
Nous avons fait les tests dans le cluster IBN Badis où on a un maitre et 4
esclaves.
Nous avons utilisé des benchmarks artificiels extraits des benchmarks de E.
Taillard.
25. 25
Tests et Résultats (3) :Tests et Résultats (3) :
Taille de
benchmark
Makespan Permutation
Temps
d’exécution
(ms)
6 – 5 profondeur 612 5, 3, 1, 0, 2, 4 8047
6 – 5 largeur 612 5, 3, 1, 0, 2, 4 3543
7 – 5 profondeur 665 5,4,2,6,3,1,0 9493
7 – 5 largeur 665 5,4,2,6,3,1,0 3715
8 – 5 profondeur 704 2,5,0,3,1,7,4,6 11752
8 - 5 largeur 704 2,5,0,3,1,7,4,6 4707
Test dans un cluster IBN Badis :
26. Conclusion et perspective :Conclusion et perspective :
26
Malgré les défis et contraintes cités précédemment notre implémentation a bien marché. On
n’a pas pu exécuter la grande instance de E.Taillard car 4 nœuds n'est pas suffisant.
Madame la présidente, mes dames les membres du Jury. Nous souhaiterons commencer cette présentation en vous remerciant d'avoir bien voulu venir participer a notre soutenance pour l’obtention d’un diplôme master réseaux et systèmes distribués.
Notre étude a porté sur « Parallélisation d’algorithmes de graphes avec MapReduce sur un cluster d’ordinateurs »
Mme la présidente, mes dames les membres du Jury notre démonstration sera comme suit :
Map :
Transforme
Regroupe
Reduce :
Agrégat
Un shéma qui illustre le modèle programmmation MapReduce.
Y’a plusieurs implémentation de MapReduce parmit elle le Framework hadoop d'appach
Le framework Hadoop est :
Une solution open-source d’ Apache
Prend en charge des applications distribuées de données volumineuses
Faciliter le stockage et traitement des grandes ensembles de données structurées et non structurées et/ou en croissance rapide
Implémente un modèle de programmation simple
Disponibilité et évolutivité élevée
Tolérance de panne
Distribuée, avec une centralisation
Les nœuds du cluster sont la plus grande partie de la puissance de calcul et de stockage du système
Écrit dans le langage Java
Hadoop Distributed File System
Adaptés aux besoins de MapReduce en lectures et écritures
Degré élevé de réplication des données (3 fois par défaut)
Composants : NameNode et DataNodes
Connaissance des emplacements réseau des DataNodes
NameNode :
Stocke les informations relatives aux fichiers
Unique dans le cluster
Gère l’accès aux fichiers systèmes
Gère la réplication dans le cas de panne de DataNode
DataNode :
Stocke les blocs de données sur le HDFS
Effectue la création, suppression, réplication des blocs sous l’instruction du NameNode
JobTracer :
Réception des tâches à exécuter, des données en entrée et du répertoire de sortie
Planification de l’exécution des tâches sur les machines TaskTracer
Réception des résultats
TaskTracer :
Réception des tâches à exécuter de la part du jobTracer
Exécution des opérations Map et Reduce sur les blocs de données stocké sur le HDFS
En communication constante avec le jobTracer
Un schéma gloable
Séparation :
séparer le problème on des sous problèmes.
Evaluation :
La fonction d’évaluation est spécifique à chaque problème. Dans notre cas d’étude on calcule une borne inférieure pour évaluer le nœud
Elagage :
Elagage permet de élaguer un sous ensemble issue d’un nœud de espace de recherche.
Le flow-shop est un problème d’ordonnancement d’atelier, NP-Difficile.
Flow shop est définit par M machines et N job a ordonnancer avec 2 contraintes contrainte de gamme et de ressource.
Sa résolution s’agit de trouver la permutation (ordonnancement) qui a un temps d'exécution (Makespan) optimale.
C’est un problème combinatoire de complexité factoriel qui prend beaucoup de temps de calcules pour résoudre le problème.
Une représentation du problème est donnée par une matrice
dire qu'une solution est representee par une permutation de taille n=nombre de jobs et l'espace de recherche n !
Pour pouvoir évaluer les nœuds on a calculer la borne inférieure. Nous avons appliquer la méthode de B.J. Legwag et Al qui se base sur le théorème de Johnson et Lenstra et Al et Jackson et Mitten.
Il s’agit de construite tous les couples de machines possible et calculé le temps de sortie en utilisant le théorème de Johnson en rajoutons rik, qjl de la partie fixé déjà positionné
Complexité de la borne est est m² * nlogn <n!
On génére N fichier d’entré chaque fichier contient un chiffre 0,1,2,3 …. N ses chiffres représente les racines des sous arbres de recherches.
Les fichiers sont stockée dans hdsf le maitre hadoop va divisé les fichier entre les esclaves , chacun des esclaves va avoir un nombre de fichier pour chacun d’aux va crée un map dont la clé et le chiffre contenue dans le fichier.
Dans ce cas la on a N sous arbres de recherches qui sont explorée en parallèle.
Arbre de recherche
Niveau 1 c’est une position qui fixé.
Niveau 2 position de la permutation sont fixé.
Feuilles permutation de niveau N tous les positions sont fixé.
Les niveau de 1 a N-1 sont des ordonnancement partiels.
Nous avons implémenté deux stratégies de parcours par profondeur et parcours par largeur.
Dans la mise a jours de niveau K le nœud mis a jours sa propre borne supérieure a celle contenue dans le fichier partagée.
À l’arrivé aux nœuds feuilles on fait la mise a jours de la borne supérieure , on compare le makespan avec la borne supérieure du problème écrite dans le fichier.
Si il est inférieure on mis a jours le fichier on écrivant la valeur du makespan dans le fichier comme une borne supérieure du problème , sinon on mis a jours la borne supérieure du mappeur avec celle contenue du fichier.
Parcours par largeur : on généré tous les nœuds d’un même niveau a la foies et on les évaluer au même temps.
La panne des compasants
Nous avons fait les test sur nous pc local cluster a un seul nœud et sur le cluster de criest cluster de 5 noeud 1 maître et 4 exclaves
On commencent par différents borne supérieures on a le même résultat ce qui valide que notre algorithme avec les deux méthodes de parcours est correcte.
On a eu le même résultat dans l’exéution dans le signlenode de même que le cluster de cerist
Test en local
On a presque le même temps d’exécution entre les deux méthodes de parcours.
Test sur le cluster
On remarque que le temps d’exécution en largeurs est plus rapide sur le cluster que en local ,
Contrairement au profondeur on remarque que le temps augment un petite peu cela revient la concurrence d’accès au fichier de mise a jours partagé.