SlideShare une entreprise Scribd logo
1  sur  42
Henri Tremblay
Responsable R&D
Performance et calcul parallèle
OCTO Technology
Démontrer que la
programmation parallèle doit
désormais faire partie de la
panoplie standard du
développeur moderne
2
La fin de la loi de Moore ?
Énoncée par Gordon Moore, co-fondateur d’Intel en 1965
Doublement du nombre de transistors sur une puce tous les 2 ans

Encore techniquement vraie mais la fréquence n’augmente plus depuis 2005.

Les fondeurs ont changés d’architecture pour augmenter la puissante des processeur :
multi cœurs.

3
Loi des rendements décroissants
Loi datant de 1768, énoncée par David Ricardo :
En augmentant la quantité utilisée d’un facteur, celle de l’autre
restant fixe, on obtient une quantité supplémentaire de
produits de moins en moins grande

VS

4
Évolution des architectures
CPU : multicoeurs
• La course au Hertz est finie
• Le nombre de cœurs est en constance
augmentation

GPU : des centaines de cœurs
• Surpuissant… en parallèle

5
Pourquoi paralléliser ?

Utilisation CPU : 13%
6
Bonus: C’est écologique!
Intel
X5560 (2.8 GHz, 4 cores, 95 watts)
vs
X5660 (2.8 GHz, 6 cores, 95 watts)
Même nombre de Watt
50% plus de puissance
Si on ignore la loi de Amdahl…
7
Loi d’Amdahl
La fraction du
temps d'exécution
qui ne peut tirer
profit de
l'amélioration
limite le gain de
performance global,
quelle que soit la
valeur de
l'amélioration de la
composante.

8
9
Complexité: Race condition

10
Complexité: Double-checked locking

11
Complexité: Contention

12
Démo 1: Le code

13
14
Exemple .Net: Séquentiel

15
Exemple : .Net à l’ancienne

16
Exemple : .Net Moderne

17
Exemple : Java 8
Arrays.stream(rows)
.parallel().forEach(row -> {
for (int j = 0; j < matBCols; j++) {
double temp = 0;
for (int k = 0; k < matACols; k++) {
temp += row.rowA[k] * matB[k][j];
}
row.rowResult[j] = temp;
}
});

18
Patterns
 Map / Reduce
 Fork / Join
 Actor
 Dataflow
 Software Transactional Memory (STM)
 Functional programming
 Atomic references
19
Exemple: STM
Passé (synchronized)

Présent (atomic)

Future (STM)

20
Quelques frameworks
 Java








Java 8: Parallel collections
Java 7 & JSR166: Fork / Join (java.util.concurrent)
Java 6: Future (java.util.concurrent)
GPars (http://www.gpars.org)
Akka (http://akka.io/)
Clojure STM (http://clojure.org/refs)
Multiverse (http://multiverse.codehaus.org)

 .Net
 .Net 4 (namespace System.Threading.Tasks)
21
22
Approximation de PI

≈4p/n
p

3,14159265
3589793238
4626433832
795…
23
Batman equation
 Calcul de l’aire par un
algorithme de Monte-Carlo:

48,42

24
Batman equation: Séquentiel

25
Batman equation: Parallèle

26
GPGPU : Adapté au parallélisme de masse
 Exploiter la puissance de calcul des GPUs pour le traitement de
tâches massivement parallèles

 Adapté aux algorithmes parallélisables
 Peu adapté au traitement rapide de tâches séquentielles
Nvidia Tesla K20X





2688 cœurs – 3950 Gflops
4450 $
235 W
1,12 $ / Gflop

Xeon E7-8870





10 cœurs – 96 Gflops
4616 $
130 W
48, 08 $ / GFlop
27
GPGPU : Architecture « orientée débit »
Changement de paradigme
 Low-latency pour le CPU
 Orienté débit pour le GPU

Traitement des tâches dans l’ordre
 Basé sur le modèle SIMD
 Génération en masse de threads pour
traiter la même instruction

28
GPGPU : Les facteurs limitants
La multiplication des branches détériore les performances
 Les unités de calculs d’une branche doivent attendre les autres
 Sous-utilisation matérielle

Limitation matérielle
 Transfert de données entre les
mémoires CPU et GPU

29
Quelques frameworks GPU
 C/C++
 OpenCL
 Cuda

 C#
 GPU.NET (http://www.tidepowerd.com)

 Java
 Aparapi (http://code.google.com/p/aparapi)
 Rootbeer (https://github.com/pcpratts/rootbeer1)

 Scala
 ScalaCL (http://code.google.com/p/scalacl)
30
Batman equation: GPU

31
Autres utilisations
 Plusieurs étapes de validation
 Plusieurs calculs à faire
 Toutes les boucles que vous rencontrez!

32
Implémentation naïve
http-worker-1
http-worker-2

…

Thread
Swapping

http-worker-n

Calcul
Monte-Carlo
33
Implémentation parallèle
http-worker-1
http-worker-2

Thread pool
pool-worker-1

…

pool-worker-2

http-worker-n

Calcul
Monte-Carlo
34
Monte Carlo: 1 utilisateur
Séquentiel

Parallèle

35
Monte Carlo: 50 utilisateurs
Séquentiel

Parallèle

36
37
Faut s’y mettre
38
Y’a pas le choix
39
Conclusion

C’est de
plus en
plus
simple
40
Questions
http://perfug.github.io/

+Henri
@henritremblay
htr@octo.com

http://brownbaglunch.fr
41
Démo
Sur GitHub

 Pour récupérer le projet
 git clone git://github.com/henri-tremblay/parallel-lab.git

 Pour compiler (tout est dans vanillapull)
 mvn install

 Pour exécuter
 mvn –pl webapp –Dspring.profiles.active=${mode}

• mode = vanilla | mono | naive | executor | pool |
akka

 Pour bencher


mvn –pl gatling gatling:execute -Dgatling.simulationClass=PricingSimulation

42

Contenu connexe

En vedette

Storage strategy and tsm roadmap
Storage strategy and tsm roadmapStorage strategy and tsm roadmap
Storage strategy and tsm roadmapIBM Danmark
 
Greenplum- an opensource
Greenplum- an opensourceGreenplum- an opensource
Greenplum- an opensourceRosy Mani
 
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQMassively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQInMobi Technology
 
Graphics Processing Unit - GPU
Graphics Processing Unit - GPUGraphics Processing Unit - GPU
Graphics Processing Unit - GPUChetan Gole
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)self employed
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)Amal R
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit pptSandeep Singh
 
La veille de Red Guy du 17.07.13 - la vie privée
La veille de Red Guy du 17.07.13 - la vie privéeLa veille de Red Guy du 17.07.13 - la vie privée
La veille de Red Guy du 17.07.13 - la vie privéeRed Guy
 

En vedette (20)

Jug gpgpu
Jug gpgpuJug gpgpu
Jug gpgpu
 
Massively Parallel Architectures
Massively Parallel ArchitecturesMassively Parallel Architectures
Massively Parallel Architectures
 
Storage strategy and tsm roadmap
Storage strategy and tsm roadmapStorage strategy and tsm roadmap
Storage strategy and tsm roadmap
 
Example Application of GPU
Example Application of GPUExample Application of GPU
Example Application of GPU
 
Greenplum- an opensource
Greenplum- an opensourceGreenplum- an opensource
Greenplum- an opensource
 
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQMassively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
 
GPU Computing
GPU ComputingGPU Computing
GPU Computing
 
Graphics Processing Unit - GPU
Graphics Processing Unit - GPUGraphics Processing Unit - GPU
Graphics Processing Unit - GPU
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit ppt
 
Calculs sur GPU
Calculs sur GPUCalculs sur GPU
Calculs sur GPU
 
La veille de Red Guy du 17.07.13 - la vie privée
La veille de Red Guy du 17.07.13 - la vie privéeLa veille de Red Guy du 17.07.13 - la vie privée
La veille de Red Guy du 17.07.13 - la vie privée
 
DIVERSITE 2.0 = nicolas nadal sir paris 2.0
DIVERSITE 2.0 = nicolas nadal sir paris 2.0DIVERSITE 2.0 = nicolas nadal sir paris 2.0
DIVERSITE 2.0 = nicolas nadal sir paris 2.0
 
Indices hematimetricos
Indices hematimetricosIndices hematimetricos
Indices hematimetricos
 
Couler du beton
Couler du betonCouler du beton
Couler du beton
 
Ppt mcni - gooplan
Ppt   mcni - gooplanPpt   mcni - gooplan
Ppt mcni - gooplan
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Parques Logísticos del Sur
Parques Logísticos del SurParques Logísticos del Sur
Parques Logísticos del Sur
 
Arnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de Motorola
Arnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de MotorolaArnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de Motorola
Arnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de Motorola
 

Similaire à Vivre en parallèle - Softshake 2013

Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solutionCynapsys It Hotspot
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...Paris Open Source Summit
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsPhilippeBrogi
 
Les secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquenceLes secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquenceOCTO Technology
 
large scale multiprocessors et leurs application scientifique
large scale multiprocessors et leurs application scientifique large scale multiprocessors et leurs application scientifique
large scale multiprocessors et leurs application scientifique Abdelkrim Bournane
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurablesPeronnin Eric
 
Graphics card as computation engine
Graphics card as computation engineGraphics card as computation engine
Graphics card as computation enginevalery brasseur
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
AWS Enterprise Day | Paris - Afternoon Session
AWS Enterprise Day | Paris - Afternoon SessionAWS Enterprise Day | Paris - Afternoon Session
AWS Enterprise Day | Paris - Afternoon SessionAmazon Web Services
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpGaëtan Trellu
 
Cours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptCours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptwafawafa52
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Microsoft
 
Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...
Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...
Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...labsud
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotiqueMicrosoft
 
La mise en place d’une infrastructure informatique performante ne s’invente ...
La mise en place  d’une infrastructure informatique performante ne s’invente ...La mise en place  d’une infrastructure informatique performante ne s’invente ...
La mise en place d’une infrastructure informatique performante ne s’invente ...CYCEO INFORMATIQUE
 
Architecture et programmation des circuits CPLD et des FPGA
Architecture et programmation des circuits CPLD et des FPGAArchitecture et programmation des circuits CPLD et des FPGA
Architecture et programmation des circuits CPLD et des FPGAChiheb Ouaghlani
 

Similaire à Vivre en parallèle - Softshake 2013 (20)

Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
 
Les secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquenceLes secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquence
 
large scale multiprocessors et leurs application scientifique
large scale multiprocessors et leurs application scientifique large scale multiprocessors et leurs application scientifique
large scale multiprocessors et leurs application scientifique
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurables
 
Paug renderscript-mars-2013
Paug renderscript-mars-2013Paug renderscript-mars-2013
Paug renderscript-mars-2013
 
Graphics card as computation engine
Graphics card as computation engineGraphics card as computation engine
Graphics card as computation engine
 
Cell process
Cell processCell process
Cell process
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
AWS Enterprise Day | Paris - Afternoon Session
AWS Enterprise Day | Paris - Afternoon SessionAWS Enterprise Day | Paris - Afternoon Session
AWS Enterprise Day | Paris - Afternoon Session
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dump
 
Cours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptCours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.ppt
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...
Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...
Présentation imprimante 3d FDM par le Fablab Labsud Montpellier / Jean Philip...
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
La mise en place d’une infrastructure informatique performante ne s’invente ...
La mise en place  d’une infrastructure informatique performante ne s’invente ...La mise en place  d’une infrastructure informatique performante ne s’invente ...
La mise en place d’une infrastructure informatique performante ne s’invente ...
 
Architecture et programmation des circuits CPLD et des FPGA
Architecture et programmation des circuits CPLD et des FPGAArchitecture et programmation des circuits CPLD et des FPGA
Architecture et programmation des circuits CPLD et des FPGA
 

Plus de Henri Tremblay

DevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern JavaDevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern JavaHenri Tremblay
 
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?Henri Tremblay
 
Confoo 2018: Être pragmatique
Confoo 2018: Être pragmatiqueConfoo 2018: Être pragmatique
Confoo 2018: Être pragmatiqueHenri Tremblay
 
DevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programmingDevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programmingHenri Tremblay
 
Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028Henri Tremblay
 
Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017Henri Tremblay
 
Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017Henri Tremblay
 
JavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programmingJavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programmingHenri Tremblay
 
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup GroupJava 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup GroupHenri Tremblay
 
Confoo 2016: Initiation aux tests de charge
Confoo 2016: Initiation aux tests de chargeConfoo 2016: Initiation aux tests de charge
Confoo 2016: Initiation aux tests de chargeHenri Tremblay
 
Generics and Lambdas cocktail explained - Montreal JUG
Generics and Lambdas cocktail explained  - Montreal JUGGenerics and Lambdas cocktail explained  - Montreal JUG
Generics and Lambdas cocktail explained - Montreal JUGHenri Tremblay
 
Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Henri Tremblay
 
Microbenchmarking with JMH
Microbenchmarking with JMHMicrobenchmarking with JMH
Microbenchmarking with JMHHenri Tremblay
 
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUGLambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUGHenri Tremblay
 
Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)Henri Tremblay
 
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...Henri Tremblay
 

Plus de Henri Tremblay (17)

DevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern JavaDevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern Java
 
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
 
Confoo 2018: Être pragmatique
Confoo 2018: Être pragmatiqueConfoo 2018: Être pragmatique
Confoo 2018: Être pragmatique
 
DevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programmingDevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programming
 
Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028
 
Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017
 
Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017
 
JavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programmingJavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programming
 
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup GroupJava 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
 
Confoo 2016: Initiation aux tests de charge
Confoo 2016: Initiation aux tests de chargeConfoo 2016: Initiation aux tests de charge
Confoo 2016: Initiation aux tests de charge
 
Generics and Lambdas cocktail explained - Montreal JUG
Generics and Lambdas cocktail explained  - Montreal JUGGenerics and Lambdas cocktail explained  - Montreal JUG
Generics and Lambdas cocktail explained - Montreal JUG
 
Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!
 
Perf university
Perf universityPerf university
Perf university
 
Microbenchmarking with JMH
Microbenchmarking with JMHMicrobenchmarking with JMH
Microbenchmarking with JMH
 
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUGLambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
 
Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)
 
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
 

Vivre en parallèle - Softshake 2013

Notes de l'éditeur

  1. Pourquoi ça vous tombe dessus là toute de suite: À cause de la loi de Moore!Henri:« Démontrer que la programmation parallèle doit désormais … »C’est une technologie mature et omniprésente. Elle ne doit plus être ignorée comme solution possible à vos problèmes de développement par peur de complexité.Évidemment, il y a encore des écueils, mais depuis quelques années, la complexité a été largement réduite.Mais commençons pas le début: Pourquoi ça vous tombe dessus là tout de suite?« Petit aparté: Toute présentation sur la programmation parallèle se doit de parler de la loi de Moore. Nous ne dérogerons pas à la règle donc, je reprends »