
What's the state of concurrency in Haskell? If Erlang's main strength is light-weight parallelism, can something like that be done in Haskell? Are there good examples of useful code employing GHC concurrency features one can play with? Cheers, Alexy

Yes, I'm curious too. For example, it would be great if we could change a function that uses map almost automatically to a function that does the map in parallel. Ofcourse it should be in the IO monad, so maybe mapM would be a better choice to start with. -chris On 25 Jan, 2007, at 21:13 , Alexy Khrabrov wrote:
What's the state of concurrency in Haskell? If Erlang's main strength is light-weight parallelism, can something like that be done in Haskell?
Are there good examples of useful code employing GHC concurrency features one can play with?
Cheers, Alexy _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Chris Eidhof on 2007-01-25 22:04:18 +0100:
Yes, I'm curious too. For example, it would be great if we could change a function that uses map almost automatically to a function that does the map in parallel. Ofcourse it should be in the IO monad, so maybe mapM would be a better choice to start with.
http://www.haskell.org/ghc/docs/latest/html/users_guide/lang-parallel.html

deliverable:
What's the state of concurrency in Haskell? If Erlang's main strength is light-weight parallelism, can something like that be done in Haskell?
http://haskell.org/haskellwiki/Libraries_and_tools/Concurrency_and_paralleli... http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.ht...
Are there good examples of useful code employing GHC concurrency features one can play with?
http://shootout.alioth.debian.org/gp4/benchmark.php?test=chameneos&lang=all ;) -- Don

Well, I'm a bit suspicious if the top references on Haskell concurrency are either research papers or compiler manual sections. How about some good ol' bundles of them codes to peruse and take example from? E.g., dining philosophers? Cheers, Alexy

deliverable:
Well, I'm a bit suspicious if the top references on Haskell concurrency are either research papers or compiler manual sections. How about some good ol' bundles of them codes to peruse and take example from? E.g., dining philosophers?
The point was that there are *lots* of examples out there :) Typing 'concurrency' into the http://haskell.org wiki search box gives me: http://www.haskell.org/haskellwiki/Concurrency_demos http://www.haskell.org/haskellwiki/Concurrency_demos/Zeta http://www.haskell.org/haskellwiki/Shootout/Cheap_concurrency http://www.haskell.org/haskellwiki/Concurrency_demos/Two_reader_threads http://www.haskell.org/haskellwiki/Libraries_and_tools/Concurrency_and_paral... ... A book chapter on concurrency in Haskell with software transactional memory appeared just a few weeks ago: http://research.microsoft.com/~simonpj/tmp/beautiful.ps And of course the very fast examples on the shootout: http://shootout.alioth.debian.org/gp4/benchmark.php?test=chameneos&lang=ghc&id=0 http://shootout.alioth.debian.org/gp4/benchmark.php?test=message&lang=all Another good resource for simple concurrency tutorials is the 'Awkward Squad': http://research.microsoft.com/%7Esimonpj/Papers/marktoberdorf Enjoy! Concurrency in Haskell is both fun and rich, since we have: explicit lightweight threads: http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.ht... symmetric multiprocessor support: http://www.haskell.org/ghc/dist/current/docs/users_guide/sec-using-smp.html implicit parallelism: http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Parallel-Stra... software transactional memory: http://www.haskell.org/haskellwiki/Software_transactional_memory locks: http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent-MV... concurrent channels: http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent-Ch... transparently parallel arrays: http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell user level threads and scheduling: http://www.seas.upenn.edu/~lipeng/homepage/unify.html And more! As usual, http://haskell.org is the place to start. Regards, Don
participants (4)
-
Alec Berryman
-
Alexy Khrabrov
-
Chris Eidhof
-
dons@cse.unsw.edu.au