SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Concurrent and Multicore Haskell
Concurrent Haskell ,[object Object],[object Object],[object Object]
A simple example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Imperative  code!? ,[object Object],[object Object],[object Object],[object Object]
What’s an MVar? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Coding with MVars ,[object Object],[object Object],[object Object],[object Object],[object Object]
FIFO channels (Chan) ,[object Object],[object Object],[object Object],[object Object]
Smokin’ performance ,[object Object],[object Object],[object Object],[object Object],Language Seconds GHC 6.70 Erlang 7.49 Scala 53.35 C / NPTL 56.74 Ruby 1890.92
Runtime ,[object Object],[object Object],[object Object],[object Object],[object Object]
Time for a change ,[object Object],[object Object]
Purity and parallelism
Concurrent vs parallel ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pure laziness ,[object Object],[object Object],[object Object],[object Object]
Laziness is the  default ,[object Object],[object Object],[object Object],[object Object]
A simple use of  seq ,[object Object],[object Object],[object Object],[object Object],[object Object]
par ,[object Object],[object Object],[object Object]
Our favourite whipping boy ,[object Object],[object Object],[object Object],[object Object],[object Object]
Parallel strategies ,[object Object],[object Object],[object Object],[object Object]
Algorithm + evaluation ,[object Object],[object Object],[object Object]
Head normal form ,[object Object],[object Object],[object Object]
Weak  head normal form ,[object Object],[object Object],[object Object],[object Object],[object Object]
Combining strategies ,[object Object],[object Object],[object Object],[object Object],[object Object]
Strategies at work ,[object Object],[object Object],[object Object],[object Object],[object Object]
True or false? ,[object Object],[object Object],[object Object]
Limit studies ,[object Object],[object Object],[object Object],[object Object]
So ... true or false? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Current research ,[object Object],[object Object],[object Object],[object Object],[object Object]
Parallelism is hard ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Current state of the art ,[object Object],[object Object],[object Object],[object Object],[object Object]
Nested data parallelism ,[object Object],[object Object],[object Object]
NPH automation ,[object Object],[object Object],[object Object]
Current status ,[object Object],[object Object],[object Object],[object Object]
Fixing threaded programming
Concurrency is hard ,[object Object],[object Object],[object Object]
Transactional memory ,[object Object],[object Object],[object Object],[object Object]
Atomic execution ,[object Object],[object Object],[object Object],[object Object]
How does retry occur? ,[object Object],[object Object],[object Object]
Composability ,[object Object],[object Object],[object Object]
Early abort ,[object Object],[object Object],[object Object]
Choosing an alternative ,[object Object],[object Object],[object Object],[object Object],[object Object]
STM and IPC ,[object Object],[object Object],[object Object],[object Object],[object Object]
A useful analogy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manual / auto tradeoffs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Brief recap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Real World Haskell: Lecture 2
Real World Haskell: Lecture 2Real World Haskell: Lecture 2
Real World Haskell: Lecture 2
Bryan O'Sullivan
 
Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Real World Haskell: Lecture 5
Real World Haskell: Lecture 5
Bryan O'Sullivan
 
Real World Haskell: Lecture 3
Real World Haskell: Lecture 3Real World Haskell: Lecture 3
Real World Haskell: Lecture 3
Bryan O'Sullivan
 
High-Performance Haskell
High-Performance HaskellHigh-Performance Haskell
High-Performance Haskell
Johan Tibell
 
Real World Haskell: Lecture 4
Real World Haskell: Lecture 4Real World Haskell: Lecture 4
Real World Haskell: Lecture 4
Bryan O'Sullivan
 
Haskell retrospective
Haskell retrospectiveHaskell retrospective
Haskell retrospective
chenge2k
 

Was ist angesagt? (20)

Real World Haskell: Lecture 2
Real World Haskell: Lecture 2Real World Haskell: Lecture 2
Real World Haskell: Lecture 2
 
Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Real World Haskell: Lecture 5
Real World Haskell: Lecture 5
 
Real World Haskell: Lecture 3
Real World Haskell: Lecture 3Real World Haskell: Lecture 3
Real World Haskell: Lecture 3
 
Practical Functional Programming Presentation by Bogdan Hodorog
Practical Functional Programming Presentation by Bogdan HodorogPractical Functional Programming Presentation by Bogdan Hodorog
Practical Functional Programming Presentation by Bogdan Hodorog
 
Regular expressions in Python
Regular expressions in PythonRegular expressions in Python
Regular expressions in Python
 
Folding Unfolded - Polyglot FP for Fun and Profit - Haskell and Scala - Part 2
Folding Unfolded - Polyglot FP for Fun and Profit - Haskell and Scala - Part 2Folding Unfolded - Polyglot FP for Fun and Profit - Haskell and Scala - Part 2
Folding Unfolded - Polyglot FP for Fun and Profit - Haskell and Scala - Part 2
 
Python
PythonPython
Python
 
High-Performance Haskell
High-Performance HaskellHigh-Performance Haskell
High-Performance Haskell
 
Introduction to Python - Part Two
Introduction to Python - Part TwoIntroduction to Python - Part Two
Introduction to Python - Part Two
 
Strings in python
Strings in pythonStrings in python
Strings in python
 
A brief introduction to lisp language
A brief introduction to lisp languageA brief introduction to lisp language
A brief introduction to lisp language
 
Real World Haskell: Lecture 4
Real World Haskell: Lecture 4Real World Haskell: Lecture 4
Real World Haskell: Lecture 4
 
OOP and FP
OOP and FPOOP and FP
OOP and FP
 
Function Applicative for Great Good of Palindrome Checker Function - Polyglot...
Function Applicative for Great Good of Palindrome Checker Function - Polyglot...Function Applicative for Great Good of Palindrome Checker Function - Polyglot...
Function Applicative for Great Good of Palindrome Checker Function - Polyglot...
 
Lisp
LispLisp
Lisp
 
Haskell retrospective
Haskell retrospectiveHaskell retrospective
Haskell retrospective
 
Python ppt
Python pptPython ppt
Python ppt
 
The Functional Programming Triad of Folding, Scanning and Iteration - a first...
The Functional Programming Triad of Folding, Scanning and Iteration - a first...The Functional Programming Triad of Folding, Scanning and Iteration - a first...
The Functional Programming Triad of Folding, Scanning and Iteration - a first...
 
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISP
 

Andere mochten auch

Consciousness Based Educ 2 A Deans
Consciousness Based Educ 2 A DeansConsciousness Based Educ 2 A Deans
Consciousness Based Educ 2 A Deans
AMTR
 
Trg Ebook Healthcare And Social Media
Trg Ebook Healthcare And Social MediaTrg Ebook Healthcare And Social Media
Trg Ebook Healthcare And Social Media
Jaci Russo
 
David Eisenberg Christchurch 8 Sep 2008
David Eisenberg Christchurch 8 Sep 2008David Eisenberg Christchurch 8 Sep 2008
David Eisenberg Christchurch 8 Sep 2008
twbishop
 
Web Marketing Week5
Web Marketing Week5Web Marketing Week5
Web Marketing Week5
cghb1210
 
SXSW 2010 Creative Inspiration
SXSW 2010 Creative InspirationSXSW 2010 Creative Inspiration
SXSW 2010 Creative Inspiration
Critical Mass
 
Montaje ask tx rx simple
Montaje ask tx rx simpleMontaje ask tx rx simple
Montaje ask tx rx simple
Amaury Méndez
 

Andere mochten auch (20)

The other side of functional programming: Haskell for Erlang people
The other side of functional programming: Haskell for Erlang peopleThe other side of functional programming: Haskell for Erlang people
The other side of functional programming: Haskell for Erlang people
 
Technologia Informacyjna - ćwiczenia, wyszukiwanie informacji, CC
Technologia Informacyjna - ćwiczenia, wyszukiwanie informacji, CCTechnologia Informacyjna - ćwiczenia, wyszukiwanie informacji, CC
Technologia Informacyjna - ćwiczenia, wyszukiwanie informacji, CC
 
Your Skin Is Not The Edge Of You
Your Skin Is Not The Edge Of YouYour Skin Is Not The Edge Of You
Your Skin Is Not The Edge Of You
 
Les tic a l'educació. una nova oportunitat per al canvi
Les tic a l'educació. una nova oportunitat per al canviLes tic a l'educació. una nova oportunitat per al canvi
Les tic a l'educació. una nova oportunitat per al canvi
 
Antibeeps
AntibeepsAntibeeps
Antibeeps
 
Konferencja PK Koszalin 2008 - Długi ogon wyszukiwania
Konferencja PK Koszalin 2008 - Długi ogon wyszukiwaniaKonferencja PK Koszalin 2008 - Długi ogon wyszukiwania
Konferencja PK Koszalin 2008 - Długi ogon wyszukiwania
 
Consciousness Based Educ 2 A Deans
Consciousness Based Educ 2 A DeansConsciousness Based Educ 2 A Deans
Consciousness Based Educ 2 A Deans
 
Trg Ebook Healthcare And Social Media
Trg Ebook Healthcare And Social MediaTrg Ebook Healthcare And Social Media
Trg Ebook Healthcare And Social Media
 
David Eisenberg Christchurch 8 Sep 2008
David Eisenberg Christchurch 8 Sep 2008David Eisenberg Christchurch 8 Sep 2008
David Eisenberg Christchurch 8 Sep 2008
 
Origens i consolidació del catalanisme
Origens i consolidació del catalanismeOrigens i consolidació del catalanisme
Origens i consolidació del catalanisme
 
Micro-Interactions
Micro-InteractionsMicro-Interactions
Micro-Interactions
 
Web Marketing Week5
Web Marketing Week5Web Marketing Week5
Web Marketing Week5
 
10 business models that rocked in 2010
10 business models that rocked in 201010 business models that rocked in 2010
10 business models that rocked in 2010
 
Badanie zapytań do wyszukiwarek internetowych - artykuł - Ewa Białek
Badanie zapytań do wyszukiwarek internetowych - artykuł - Ewa BiałekBadanie zapytań do wyszukiwarek internetowych - artykuł - Ewa Białek
Badanie zapytań do wyszukiwarek internetowych - artykuł - Ewa Białek
 
SXSW 2010 Creative Inspiration
SXSW 2010 Creative InspirationSXSW 2010 Creative Inspiration
SXSW 2010 Creative Inspiration
 
Wedgeofmisery V1b
Wedgeofmisery V1bWedgeofmisery V1b
Wedgeofmisery V1b
 
An Inside Look at Campaign 2008
An Inside Look at Campaign 2008An Inside Look at Campaign 2008
An Inside Look at Campaign 2008
 
Devg Tot Brn F Acad Exceln Lynch
Devg Tot Brn F Acad Exceln    LynchDevg Tot Brn F Acad Exceln    Lynch
Devg Tot Brn F Acad Exceln Lynch
 
Montaje ask tx rx simple
Montaje ask tx rx simpleMontaje ask tx rx simple
Montaje ask tx rx simple
 
Biblioteka-Slupsk-Ewa-Bialek
Biblioteka-Slupsk-Ewa-BialekBiblioteka-Slupsk-Ewa-Bialek
Biblioteka-Slupsk-Ewa-Bialek
 

Ähnlich wie BayFP: Concurrent and Multicore Haskell

Keynote joearmstrong
Keynote joearmstrongKeynote joearmstrong
Keynote joearmstrong
Sentifi
 
Os Worthington
Os WorthingtonOs Worthington
Os Worthington
oscon2007
 

Ähnlich wie BayFP: Concurrent and Multicore Haskell (20)

Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
The Art of Evolutionary Algorithms Programming
The Art of Evolutionary Algorithms ProgrammingThe Art of Evolutionary Algorithms Programming
The Art of Evolutionary Algorithms Programming
 
ParaSail
ParaSail  ParaSail
ParaSail
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelism
 
The Joy Of Functional Programming
The Joy Of Functional ProgrammingThe Joy Of Functional Programming
The Joy Of Functional Programming
 
Stay fresh
Stay freshStay fresh
Stay fresh
 
Keynote joearmstrong
Keynote joearmstrongKeynote joearmstrong
Keynote joearmstrong
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
 
Evolution of JDK Tools for Multithreaded Programming
Evolution of JDK Tools for Multithreaded ProgrammingEvolution of JDK Tools for Multithreaded Programming
Evolution of JDK Tools for Multithreaded Programming
 
Atlanta MLconf Machine Learning Conference 09-23-2016
Atlanta MLconf Machine Learning Conference 09-23-2016Atlanta MLconf Machine Learning Conference 09-23-2016
Atlanta MLconf Machine Learning Conference 09-23-2016
 
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
 
"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017
 
A Survey of Concurrency Constructs
A Survey of Concurrency ConstructsA Survey of Concurrency Constructs
A Survey of Concurrency Constructs
 
Concurrency Constructs Overview
Concurrency Constructs OverviewConcurrency Constructs Overview
Concurrency Constructs Overview
 
Bioinformatics v2014 wim_vancriekinge
Bioinformatics v2014 wim_vancriekingeBioinformatics v2014 wim_vancriekinge
Bioinformatics v2014 wim_vancriekinge
 
Os Worthington
Os WorthingtonOs Worthington
Os Worthington
 
Concurrent programming1
Concurrent programming1Concurrent programming1
Concurrent programming1
 
Rust presentation convergeconf
Rust presentation convergeconfRust presentation convergeconf
Rust presentation convergeconf
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

BayFP: Concurrent and Multicore Haskell