Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

30
DRAFT © OCTO 2011 Retour d’expérience Hadoop MapReduce comme grille de calcul Marc Bojoly, architecte senior OCTO Technology, [email protected]

description

 

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

Page 1: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

© OCTO 2011

DRAFT

Retour d’expérienceHadoop MapReduce comme grille de calcul

Marc Bojoly, architecte senior OCTO Technology, [email protected]

Page 2: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

2@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

Page 3: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

3@OCTO 2011

Conclusion

En un mot…..

…c’est moins performant qu’une grille de calcul

Page 4: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

4@OCTO 2011

Happy hour !

Page 5: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

5@OCTO 2011

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

Page 6: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

6@OCTO 2011

Agenda

Le cas d’étude : la VARLe code Hadoop et GridGain de ce

POCLes mesures pour comparerLes résultatsLes optimisationsExplications

Page 7: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

7@OCTO 2011

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 €

Prix d’achat

10% de (mal)chanceD’avoir plus de 25€ de perte

Page 8: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

8@OCTO 2011

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

Page 9: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

© OCTO Technology 2010

Un calcul intensif…adapté au Map/Reduce

0

1

2

VAR à 77%

Map Reduce

SimulationCalcule les prix correspondants3 prix sont retournés par chaque noeud

Librairie

Paramètres d’entrée

Regroupe tous les prix et identifie les 9*33%=2 plus faiblesIdentifie le plus haut parmi ces 2 : il s’agit de la VAR à 77%

9

Page 10: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

10@OCTO 2011

Le match : Gridgain versus Hadoop

GridGain Conçu comme une pure grille

de calcul Basée sur le pattern

Map/Reduce Open Source

Hadoop Conçu comme un framework

de calcul distribué, scalable et fiable

Basée sur le pattern 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

Page 11: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

11@OCTO 2011

Le moteur de calcul

Optimisation

Potentiellement~10 000

opérations +,-,*,/

Variable 1E3 à 1E9

Page 12: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

12@OCTO 2011

Algorithme

Split

Aperçu de Gridgain

Map

(…)

(…)

Page 13: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

13@OCTO 2011

Aperçu de GridGain

Reduce

Page 14: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

14@OCTO 2011

Aperçu de Hadoop

Map

Adapter pourComputeVar()

Split

N tirages par process

Page 15: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

15@OCTO 2011

Aperçu de Hadoop

Reduce

Page 16: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

16@OCTO 2011

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

Page 17: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

17@OCTO 2011

Exemple d’analyse explicative avec Hive

INSERT OVERWRITE LOCAL DIRECTORY "HiveOutput" ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' select cp.s0, cp.price from cp order by cp.price;'

Hello World : on retrouve les formules de Black-and-Sholes…

Page 18: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

18@OCTO 2011

Résultat sur GridGain hors du cas d’analyse

1 DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM., 4 threads simultanés

Les données ne sont pas stockées pour analyse

Page 19: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

19@OCTO 2011

« 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

2 machines et 6 processus

Temps optim combineTemps standard

Page 20: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

20@OCTO 2011

Conservation des paramètres + résultats pour analyse

1 machine physique avec 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.

Page 21: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

21@OCTO 2011

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.

Page 22: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

22@OCTO 2011

Algorithme sur Hadoop (1/2)

Extraction de la VAR avec l’aide du tri par clé Utilisation de la

fonction de tri des clés Données triées par

scénario puis par prix croissant

Plusieurs tirages peuvent donner le même prix

scenario id;percentile size;call price

La clé intermédiaire

Donnée en sortie

1;10;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252

123.11293496630553 120.0 0.05 0.214.414516512987014")

Page 23: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

23@OCTO 2011

Hadoop : Implémentation 1

Job Hadoop

Map : compute

Reduce: idempotent

Job Hive

Analyse des données

Client : lecture du fichier trié par prix

Extraction du percentile

1;10;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252

123.11293496630553 120.0 0.05 0.214.414516512987014")

Page 24: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

24@OCTO 2011

Algorithme sur Hadoop (1/2)

Extraction de la VAR par le Reducer

Parallélisation : un 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

scenario id;percentile size;call price

La clé intermédiaire

Donnée en entrée du reducer1;10;0.513775910851316 ( "252 84.31301373924966120.0

0.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252

123.11293496630553 120.0 0.05 0.214.414516512987014")

Page 25: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

25@OCTO 2011

Hadoop : Implémentation 2

Job Hadoop

Map : compute

Reduce: idempotent

Job Hive

Analyse des données

Job Hadoop

Map : 0

N Reducers: extraction du percentile

1;10;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252

123.11293496630553 120.0 0.05 0.214.414516512987014")1;11;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252

123.11293496630553 120.0 0.05 0.214.414516512987014")

FirstPartitionner

Page 26: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

26@OCTO 2011

Optimiser Hadoop : optimiser les accès disques

Optimisation de paramètres Plus de mémoire

(mapred.child.java.opts) Traiter des lots plus importants

(io.file.buffer.size,io.sort.mb, io.sort.factor,)

Lire et écrire des blocs plus importants sur HDFS (dfs.block.size)

Optimisations mineures Comparer sans désérialiser :

1,19x plus rapide

#core-site.xmlio.file.buffer.size=131072#hdfs-site.xmldfs.block.size=134217728#mapred-site.xmlmapred.child.java.opts=-Xmx384mio.sort.mb=250io.sort.factor=100

Page 27: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

27@OCTO 2011

Hadoop dépasse GridGain sur les hauts volumes

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.

Page 28: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

28@OCTO 2011

Conclusion : des comparaisons… parfois musclée

Page 29: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

29@OCTO 2011

Conclusion : fonctionnalités Hadoop / GridGain

Hadoop GridGain

Designed to large DataSets Yes (distributed FS) Not included

Nb. Of reducers N 1

Programming model map(k, v, collector<k, v> output)map(key, value, collector<k, v> output)reduce(k, v, collector<k, v> output)

r GridJobAdapter ( v reduce() )r Reduce(List<GridJobResult>)

Between Map and Reduce SortCombinePartition

NA

Serialization Custom Java.serialisation

Interface Yes (Web) Partly (JMX)

Programming Model

Locality Enforced Possible

Un critère de choix principal Si cela tient en mémoire => GridGain Sinon => Hadoop et optimiser les accès disques

Page 30: Hadoop HPC, calcul de VAR sur Hadoop vs GridGain

30@OCTO 2011

Questions ?