Difference between revisions of "Parallel"

From HaskellWiki
Jump to navigation Jump to search
(→‎Getting started: just link to research section)
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  +
__NOTOC__
Parallelism and Concurrency in Haskell
 
   
 
'''Parallelism and Concurrency in Haskell'''
== Getting started ==
 
   
 
Haskell supports both pure parallelism and explicit concurrency. How would you like to begin?
 
Haskell supports both pure parallelism and explicit concurrency. How would you like to begin?
   
 
# Speed up your code by making it run on multicore:
 
# Speed up your code by making it run on multicore:
#: Start with Control.Parallel ('''pseq''', '''par''') and refine with Strategies
+
#: Start with Control.Parallel ('''par''', '''pseq''') and refine with Strategies
  +
#: ''Find out more about [[Parallelism|parallelism basics]]''
 
# Manage simultaneous IO actions (eg. multiple connections on a web server)
 
# Manage simultaneous IO actions (eg. multiple connections on a web server)
 
#: Start with Concurrent Haskell ('''forkIO''', '''MVar''')
 
#: Start with Concurrent Haskell ('''forkIO''', '''MVar''')
  +
#: ''Find out more about [[Concurrency|concurrency basics]]''
 
# Work with clusters or do distributed programming
 
# Work with clusters or do distributed programming
  +
#: Learn about concurrency first, then try using [[Applications_and_libraries/Network#Libraries|network protocol libraries]] like HTTP or zeromq.
#: Distributed programming is still ongoing [[Parallel/Research|research]].
 
  +
#: Meanwhile look out for [[Parallel/Research|ongoing research]] into distributed Haskell.
#: In the meantime, you could use the Haskell MPI bindings, which use Concurrent Haskell and the MPI library.
 
   
 
== Community ==
 
== Community ==
   
  +
* Ask questions on [[Mailing lists|Haskell Cafe]]
* The [https://groups.google.com/group/parallel-haskell parallel-haskell mailing list]
+
* See what [https://groups.google.com/group/parallel-haskell parallel-haskell] researchers and developers are working on
  +
* Get the latest from the [[Parallel GHC Project]]
 
* Follow [http://twitter.com/#!/parallelhaskell @parallelhaskell] on Twitter [[image:Twitter-mini.png]]
 
* Follow [http://twitter.com/#!/parallelhaskell @parallelhaskell] on Twitter [[image:Twitter-mini.png]]
 
* StackOverflow on Haskell [http://stackoverflow.com/questions/tagged/haskell%2bparallel parallelism] and [http://stackoverflow.com/questions/tagged/haskell%2bconcurrency concurrency]
 
* StackOverflow on Haskell [http://stackoverflow.com/questions/tagged/haskell%2bparallel parallelism] and [http://stackoverflow.com/questions/tagged/haskell%2bconcurrency concurrency]
   
 
== News ==
 
== News ==
  +
  +
* 2012-04-20 [http://www.well-typed.com/blog/65 Parallel Haskell Digest 9]
  +
* 2012-03-02 [http://www.well-typed.com/blog/64 Parallel Haskell Digest 8]
  +
* 2011-12-24 [http://www.well-typed.com/blog/62 Parallel Haskell Digest 7]
  +
* 2011-11-21 [http://www.haskell.org/pipermail/haskell-cafe/2011-November/097008.html Job Opportunity at Parallel Scientific]
   
 
== Tools ==
 
== Tools ==
   
* [http://research.microsoft.com/en-us/projects/threadscope Threadscope] - parallel programs not getting faster? Use the Threadscope debugger and watch sparks fly.
+
* [[ThreadScope]] - parallel programs not getting faster? Use the Threadscope debugger and watch sparks fly.
 
* Comprehensive list of [[Applications_and_libraries/Concurrency_and_parallelism|Parallelism and Concurrency libraries]]
 
* Comprehensive list of [[Applications_and_libraries/Concurrency_and_parallelism|Parallelism and Concurrency libraries]]
   
 
== Documentation ==
 
== Documentation ==
   
  +
* [[Parallel/Glossary|Glossary]]
 
* [[Parallel/Reading|Parallel Haskell reading]]
 
* [[Parallel/Reading|Parallel Haskell reading]]
  +
* [[Parallel/Research|Current research]]
* [[Research papers/Parallelism and concurrency|Research papers on parallelism and concurrency]]
 
 
=== Tips and tutorials ===
 
 
* [[Performance/Concurrency|Concurrency performance]]
 
   
 
[[Category:Parallel]]
 
[[Category:Parallel]]

Revision as of 06:56, 26 April 2012


Parallelism and Concurrency in Haskell

Haskell supports both pure parallelism and explicit concurrency. How would you like to begin?

  1. Speed up your code by making it run on multicore:
    Start with Control.Parallel (par, pseq) and refine with Strategies
    Find out more about parallelism basics
  2. Manage simultaneous IO actions (eg. multiple connections on a web server)
    Start with Concurrent Haskell (forkIO, MVar)
    Find out more about concurrency basics
  3. Work with clusters or do distributed programming
    Learn about concurrency first, then try using network protocol libraries like HTTP or zeromq.
    Meanwhile look out for ongoing research into distributed Haskell.

Community

News

Tools

Documentation