Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming Paperback – Aug 18 2013
|New from||Used from|
Frequently Bought Together
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
Techniques for Multicore and Multithreaded Programming
About the Author
Simon Marlow has been a prominent figure in the Haskell community formany years. He is the author of large parts of the Glasgow HaskellCompiler, including in particular its highly regarded mulitcoreruntime system, along with many of the libraries and tools thatHaskell programmers take for granted. Simon also contributes to thefunctional programming research community, and has a string of paperson subjects ranging from garbage collection to language design. Inrecent years Simon's focus has been on making Haskell an idealprogramming language for parallel and concurrent applications, both bydeveloping new programming models and building a high-qualityimplementation.
Simon spent 14 years at Microsoft's Research laborotory in Cambridge,before taking a break in Spring 2013 to work on this book. Hecurrently works at Facebook UK.
What Other Items Do Customers Buy After Viewing This Item?
Most Helpful Customer Reviews on Amazon.com (beta)
The book consists of two parts:
I) Parallelism. I enjoyed reading this part very much, because I have almost no experience in using multiple CPUs to speed up computations. Conclusion: with Haskell it is almost ridiculously easy, as compared to -say- MPI.
II) Concurrency. I have substantial of experience, in many languages, including Erlang. Well, concurrency is still hard, even with Haskell. It is definitely a virtue of the book, that it _does_not_pretend_otherwise_. But perhaps it is more manageable now, see for yourself.
For me, this book was the final argument that Haskell has matured to be (probably the most) versatile tool for software development.
This is The Book that sold me on Haskell for concurrent and parallel programming. Sure, I've read several articles on the benefits of functional languages for programming in the multi-core world, but that didn't really sink in until I saw how elegant it could be in a functional language.
In brief, the main benefits I got from reading this this book were:
* Surveyed parallel programming (in Haskell)
* Surveyed concurrent programming (in Haskell)
* Saw the elegance of the approaches for myself
* Learned about laziness gotchas in parallel contexts
* Learned a bit about what's next and left to improve
* Learned what modules to turn to and watch when in need
I hope I never have to look at OpenCL or CUDA C++ again for parallel programming. The way Repa/Accelerate handles this is beautiful.
The chapters on concurrent programming showed me how much having concurrency primitives built into a language change async programming. Having forkIO to run subsequent computations and a scheduler in the run-time make it very convenient.
In sum, I highly recommend this book. 10/10, one of my top 10 books of 2013.
For Kindle readers: the code samples display wonderfully. No need to squint - the fonts were well chosen.
As stated by the author in the preface, you can get most out of the book if you already know how to write functional Haskell programs and how to use monads, etc. Then the first part of the book will teach you how to make your pure codes run extremely fast (and it is really easy to do so in Haskell), whereas the second part of the book will teach you how to structure the pieces of your programs together to form a real world application.
For those who still do not have the prerequisites to benefit most from the book, I think a good place to start would be the book Real World Haskell (which is already a bit dated). The current book treats the topics of chapters 24, 28 and parts of chapter 25 of Real World Haskell in much more details, with lots of modern additions.
For that, I would suggest "Learn You A Haskell" or "Real World Haskell."
However, this book is absolutely amazing for parallel + concurrent programming. The book looks thin, but it's packed with technical insight and details.
Look for similar items by category
- Books > Computers & Technology > Hardware > Parallel Processing Computers
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering