SlideShare ist ein Scribd-Unternehmen logo
1 von 27
1
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
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
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.
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
6
Le modèleLe modèle MapReduce:MapReduce:
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
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:
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
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
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
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 :
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
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.
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
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
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
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:
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:
202020
Parcours par largeur :
Conception et implémentationConception et implémentation d'und'un
B&BB&B sur hadoop Mapeduce:sur hadoop Mapeduce:
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
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.
Tests et Résultats :Tests et Résultats :
Taille de
benchmark
Borne
supérieure
Makespa
n
Permutation
6 – 5 profondeur 1278/614/612 612 5, 3, 1, 0, 2, 4
6 – 5 largeur 1278/614/612 612 5, 3, 1, 0, 2, 4
7 – 5 profondeur 1278/667/665 665 5,4,2,6,3,1,0
7 – 5 largeur 1278/667/665 665 5,4,2,6,3,1,0
8 – 5 profondeur 1278/706/704 704 2,5,0,3,1,7,4,6
8 - 5 largeur 1278/706/704 704 2,5,0,3,1,7,4,6
23
Test de validation :
24
Tests et Résultats :Tests et Résultats :
Taille de
benchmark
Makespan Permutation
Temps
d’exécution
(ms)
6 – 5 profondeur 612 5, 3, 1, 0, 2, 4 6919
6 – 5 largeur 612 5, 3, 1, 0, 2, 4 8428
7 – 5 profondeur 665 5,4,2,6,3,1,0 8463
7 – 5 largeur 665 5,4,2,6,3,1,0 8375
8 – 5 profondeur 704 2,5,0,3,1,7,4,6 9452
8 - 5 largeur 704 2,5,0,3,1,7,4,6 /
Test dans un cluster singlenode :
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 :
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.
Merci pourMerci pour
votrevotre
attentionattention
Des questions
27

Weitere ähnliche Inhalte

Ähnlich wie Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordinateurs

Bluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestoneServices
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Cy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoopCy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoopCERTyou Formation
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataArrow Group
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptxbely26
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016Julien BLAIZE
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Hamza Ben Marzouk
 
D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
D’un modèle d'IA dans un notebook à un service temps réel : architecturons ! D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
D’un modèle d'IA dans un notebook à un service temps réel : architecturons ! Marie-Alice Blete
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big DataAmal Abid
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadooppkernevez
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduceMathieu Dumoulin
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfsalmanakbi
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfYounesOuladSayad1
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 

Ähnlich wie Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordinateurs (20)

Bluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantes
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Cy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoopCy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoop
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
Hug janvier 2016 -EDF
Hug   janvier 2016 -EDFHug   janvier 2016 -EDF
Hug janvier 2016 -EDF
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptx
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
D’un modèle d'IA dans un notebook à un service temps réel : architecturons ! D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big Data
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduce
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
 
Apache giraph
Apache giraphApache giraph
Apache giraph
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 

Mehr von Hadjer BENHADJ DJILALI

Présentation du concours de développement de jeux vidéo Algeria Game challenge
Présentation du concours de développement de jeux vidéo Algeria Game challengePrésentation du concours de développement de jeux vidéo Algeria Game challenge
Présentation du concours de développement de jeux vidéo Algeria Game challengeHadjer BENHADJ DJILALI
 
Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...
Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...
Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...Hadjer BENHADJ DJILALI
 
Qualité de Service dans les Réseaux Mobiles Ad Hoc
Qualité de Service   dans les  Réseaux Mobiles Ad HocQualité de Service   dans les  Réseaux Mobiles Ad Hoc
Qualité de Service dans les Réseaux Mobiles Ad Hoc Hadjer BENHADJ DJILALI
 

Mehr von Hadjer BENHADJ DJILALI (6)

Présentation du concours de développement de jeux vidéo Algeria Game challenge
Présentation du concours de développement de jeux vidéo Algeria Game challengePrésentation du concours de développement de jeux vidéo Algeria Game challenge
Présentation du concours de développement de jeux vidéo Algeria Game challenge
 
Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...
Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...
Forwarding Group Multicast Protocol (FGMP) for Multihop, Mobile Wireless Netw...
 
Qualité de Service dans les Réseaux Mobiles Ad Hoc
Qualité de Service   dans les  Réseaux Mobiles Ad HocQualité de Service   dans les  Réseaux Mobiles Ad Hoc
Qualité de Service dans les Réseaux Mobiles Ad Hoc
 
Grille de calule
Grille de caluleGrille de calule
Grille de calule
 
Réseaux Mobiles
Réseaux MobilesRéseaux Mobiles
Réseaux Mobiles
 
MobDHop
MobDHopMobDHop
MobDHop
 

Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordinateurs

  • 1. 1
  • 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
  • 6. 6 Le modèleLe modèle MapReduce:MapReduce:
  • 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.
  • 23. Tests et Résultats :Tests et Résultats : Taille de benchmark Borne supérieure Makespa n Permutation 6 – 5 profondeur 1278/614/612 612 5, 3, 1, 0, 2, 4 6 – 5 largeur 1278/614/612 612 5, 3, 1, 0, 2, 4 7 – 5 profondeur 1278/667/665 665 5,4,2,6,3,1,0 7 – 5 largeur 1278/667/665 665 5,4,2,6,3,1,0 8 – 5 profondeur 1278/706/704 704 2,5,0,3,1,7,4,6 8 - 5 largeur 1278/706/704 704 2,5,0,3,1,7,4,6 23 Test de validation :
  • 24. 24 Tests et Résultats :Tests et Résultats : Taille de benchmark Makespan Permutation Temps d’exécution (ms) 6 – 5 profondeur 612 5, 3, 1, 0, 2, 4 6919 6 – 5 largeur 612 5, 3, 1, 0, 2, 4 8428 7 – 5 profondeur 665 5,4,2,6,3,1,0 8463 7 – 5 largeur 665 5,4,2,6,3,1,0 8375 8 – 5 profondeur 704 2,5,0,3,1,7,4,6 9452 8 - 5 largeur 704 2,5,0,3,1,7,4,6 / Test dans un cluster singlenode :
  • 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.

Hinweis der Redaktion

  1. 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 :
  2. Map : Transforme Regroupe Reduce : Agrégat Un shéma qui illustre le modèle programmmation MapReduce.
  3. 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
  4. Un schéma gloable
  5. 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.
  6. 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 !
  7. 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!
  8. 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.
  9. Dans ce cas la on a N sous arbres de recherches qui sont explorée en parallèle.
  10. 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.
  11. 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.
  12. 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.
  13. La panne des compasants
  14. 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
  15. Test en local On a presque le même temps d’exécution entre les deux méthodes de parcours.
  16. 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é.