Hadoop HPC, calcul de VAR sur Hadoop vs GridGain
Upcoming SlideShare
Loading in...5
×
 

Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

on

  • 1,760 views

 

Statistics

Views

Total Views
1,760
Views on SlideShare
1,113
Embed Views
647

Actions

Likes
2
Downloads
12
Comments
0

1 Embed 647

http://hugfrance.fr 647

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Hadoop HPC, calcul de VAR sur Hadoop vs GridGain Hadoop HPC, calcul de VAR sur Hadoop vs GridGain Presentation Transcript

  • Retour d’expérience Hadoop MapReduce comme grille de calcul Marc Bojoly, architecte senior OCTO Technology, mbojoly@octo.com© OCTO 2011
  • Pourquoi une telle idée? C‘est un pattern - peu répandu- mais cité dans la littérature  Hadoop the Definitive guide  Highly Scalable Blog Les grilles de calculs manipulent également beaucoup de données  Pour accéder aux données nécessaires au calcul  Pour agréger les résultats des différents noeuds Hadoop est efficace pour paralléliser les traitements et offre simultanément des outils pour analyser d’énormes quantités de données@OCTO 2011 2
  • ConclusionEn un mot….. …c’est moins performant qu’une grille de calcul@OCTO 2011 3
  • Happy hour !@OCTO 2011 4
  • Oui mais encore…. C’est moins performant qu’une grille de calcul… ….sauf dans certains cas particuliers Objectifs de la présentation  Vous indiquez lesquels  Vous donner quelques chiffres  Vous permettre d’argument négativement si quelqu’un vous propose une idée similaire@OCTO 2011 5
  • Agenda Le cas d’étude : la VAR Le code Hadoop et GridGain de ce POC Les mesures pour comparer Les résultats Les optimisations Explications@OCTO 2011 6
  • La Value At Risk VAR : une mesure de la perte maximale possible, durant une période de temps donnée avec une probabilité maximale fixée 75 € 10% de (mal)chance D’avoir plus de 25€ de perte Prix d’achat@OCTO 2011 7
  • Simuler pour calculer la VAR de produits complexes Simulation de prix  Lorsque l’historique n’est pas disponible • On simule le prix des produits simples (actions, taux d’intérêt) pour lesquels on a un historique • On utilise le modèle de Black and Sholes pour calculer le prix actuel de l’action Le calcul de Monte-Carlo  Pourquoi ça marche ? • Un calcul précis à partir de tirage aléatoire ! • Basé mathématiquement sur la loi des grands nombres  Hello World : le calcul de Pi@OCTO 2011 8
  • Un calcul intensif…adapté au Map/Reduce Map Reduce Regroupe tous les prix et Simulation identifie les 9*33%=2 plus Calcule les prix correspondants faibles 3 prix sont retournés par Identifie le plus haut parmi ces 2Paramètres chaque noeud d’entrée : il s’agit de la VAR à 77% 0 1 VAR à 77% 2 Librairie© OCTO Technology 2010 9
  • Le match : Gridgain versus Hadoop GridGain  Hadoop  Conçu comme une pure grille  Conçu comme un framework de calcul de calcul distribué, scalable et  Basée sur le pattern fiable Map/Reduce  Basée sur le pattern  Open Source Map/Reduce  Open Source Les règles du jeu  Même noyau de calcul  Exécuté sur la même « grille »  Un à 2 portables (DEL Latitude E6510 avec un code i7 quad core avec 4 GB de RAM)  Comparaison sur un cas d’utilisation nécessitant d’utiliser le disque@OCTO 2011 10
  • Le moteur de calcul Variable 1E3 à 1E9 Potentiellement ~10 000 opérations +,-,*,/ Optimisation@OCTO 2011 11
  • Aperçu de Gridgain Split(…) Map(…) Algorithme @OCTO 2011 12
  • Aperçu de GridGain Reduce@OCTO 2011 13
  • Aperçu de Hadoop Split Map N tirages par process Adapter pour ComputeVar()@OCTO 2011 14
  • Aperçu de Hadoop Reduce@OCTO 2011 15
  • Un cas d’utilisation à l’avantage d’Hadoop Objectifs  Réaliser le calcul de façon parallèle  Traiter ensuite les résultats dans la grille de façon colocalisée Cas d’utilisation  Calcul de la VAR comme précédemment  Collecte des résultats de calcul intermédiaires  Analyse avec Hadoop pour expliquer la VAR Implémentations  GridGain calcule puis écrit ses données dans un fichier  Hadoop calcule de façon standard dans HDFS@OCTO 2011 16
  • Exemple d’analyse explicative avec HiveINSERT OVERWRITE LOCALDIRECTORY "HiveOutput" ROWFORMAT DELIMITED FIELDSTERMINATED BY t selectcp.s0, cp.price from cporder by cp.price; Hello World : on retrouve les formules de Black-and-Sholes…@OCTO 2011 17
  • Résultat sur GridGain hors du cas d’analyse Les données ne sont pas stockées pour analyse 1 DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM., 4 threads simultanés@OCTO 2011 18
  • « combine » rejetée pour les besoins d’analyse Un seul reducer sur Gridgain  C’est un goulet d’étranglement Le calcul de la VAR permet de ne pas envoyer toutes les données  Combine : ne renvoyer de chaque nœud que 10% du volume total  Mais on ne sait plus expliquer Quelques résultats Temps standard Temps optim combine@OCTO 2011 2 machines et 6 processus 19
  • Conservation des paramètres + résultats pour analyse1 machine physique avec 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.@OCTO 2011 20
  • GridGain : 1 s., avec données 40 s., Hadoop >= 40 s.1 machine virtuelle avec 2 GB de RAM et 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.@OCTO 2011 21
  • Algorithme sur Hadoop (1/2) Extraction de la VAR La clé intermédiaire avec l’aide du tri par scenario id;percentile size;call price clé  Utilisation de la fonction de tri des clés Donnée en sortie  Données triées par scénario puis par prix 1;10;0.513775910851316 ( "252 84.31301373924966 120.0 0.05 0.2 croissant 0.513775910851316", "252 103.39569385168355 120.0 0.05 0.2 4.181165705822988", "252 123.11293496630553 120.0 0.05 0.2 14.414516512987014")  Plusieurs tirages peuvent donner le même prix@OCTO 2011 22
  • Hadoop : Implémentation 1 Job Hadoop Map : compute Reduce: idempotent1;10;0.513775910851316 ( "252 84.31301373924966 120.0 0.05 0.2 Job Hive 0.513775910851316", "252 103.39569385168355 120.0 0.05 0.2 4.181165705822988", "252 14.414516512987014") 123.11293496630553 120.0 0.05 0.2 Analyse des données Client : lecture du fichier trié par prix Extraction du percentile @OCTO 2011 23
  • Algorithme sur Hadoop (1/2) La clé intermédiaire Extraction de la VAR par le Reducer scenario id;percentile size;call price Donnée en entrée du reducer Parallélisation : un 1;10;0.513775910851316 ( "252 0.513775910851316", "252 4.181165705822988", "252 14.414516512987014") 84.31301373924966 120.0 103.39569385168355 120.0 123.11293496630553 120.0 0.05 0.05 0.05 0.2 0.2 0.2 reducer par simulation  Utilisation d’un partitionner par identifiant de simulation  Utilisation d’un comparateur par identifiant de simulation ET prix de l’option  Le reducer lit la taille du percentile et extrait la Nième valeur par ordre croissant@OCTO 2011 24
  • Hadoop : Implémentation 2 Job Hadoop Map : compute Reduce: idempotent FirstPartitionner1;10;0.513775910851316 ( "252 84.31301373924966 120.0 0.05 0.2 0.513775910851316", "252 103.39569385168355 120.0 0.05 0.2 4.181165705822988", "252 123.11293496630553 120.0 0.05 0.2 14.414516512987014") Job Hive 1;11;0.513775910851316 ( "252 84.31301373924966 120.0 0.05 0.2 0.513775910851316", "252 4.181165705822988", "252 103.39569385168355 120.0 123.11293496630553 120.0 0.05 0.05 0.2 0.2 Analyse des données 14.414516512987014") Job Hadoop Map : 0 N Reducers: extraction du percentile @OCTO 2011 25
  • Optimiser Hadoop : optimiser les accès disques Optimisation de paramètres  Plus de mémoire (mapred.child.java.opts) #core-site.xml  Traiter des lots plus importants io.file.buffer.size=131072 (io.file.buffer.size,io.sort.mb, io. #hdfs-site.xml dfs.block.size=134217728 sort.factor,) #mapred-site.xmlmapred.child.java.opts=-  Lire et écrire des blocs plus Xmx384m io.sort.mb=250 importants sur HDFS io.sort.factor=100 (dfs.block.size) Optimisations mineures  Comparer sans désérialiser : 1,19x plus rapide@OCTO 2011 26
  • Hadoop dépasse GridGain sur les hauts volumes1 machine virtuelle avec 2 GB de RAM et 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.@OCTO 2011 27
  • Conclusion : des comparaisons… parfois musclée@OCTO 2011 28
  • Conclusion : fonctionnalités Hadoop / GridGain Hadoop GridGainDesigned to large DataSets Yes (distributed FS) Not includedNb. Of reducers N 1 map(k, v, collector<k, v> output) r GridJobAdapter ( v reduce() )Programming model map(key, value, collector<k, v> output) r Reduce(List<GridJobResult>) reduce(k, v, collector<k, v> output)Between Map and Reduce Sort NA Combine PartitionSerialization Custom Java.serialisationInterface Yes (Web) Partly (JMX)Programming ModelLocality Enforced Possible Un critère de choix principal  Si cela tient en mémoire => GridGain  Sinon => Hadoop et optimiser les accès disques @OCTO 2011 29
  • Questions ?@OCTO 2011 30