[Haskell-cafe] Can you do everything without shared-memory concurrency?

Albert Y. C. Lai trebla at vex.net
Fri Sep 12 11:41:16 EDT 2008

Sebastian Sylvan wrote:
> For correctness, maybe not, for efficiency, yes definitely!

In theory, decades of research and engineering went into shared memory 
on common hardware, so it should be faster.

In practice, you give shared memory to spoiled kids (and seldom 
encourage them to use other paradigms), and they have no incentive to 
decompose their problems. They just gratuitously share all variables and 
therefore need to lock everything. So it becomes slower.

If you think hard to decompose a problem, several possibilities occur:

- Some problems need shared memory badly.
- Most other problems need sharing so little that the way you use shared 
memory ends up simulating message passing.

I encourage you to re-think how often your problems land in the second 
case. Because we are all spoiled by shared memory, it may be hard to notice.

More information about the Haskell-Cafe mailing list