Programming parallell systems vs parallell computers

4 points by globalrev ↗ HN
There is so much talk about concurrency and parallelism these days.

Well Erlang is made for concurrent systems right? Not multiple cores.

Clojure

Scala

What other languages are made for programming concurrency? And are they made for concurrent systems or multiple cores?

What are the differentiating requirements between such languages?

4 comments

[ 2.6 ms ] story [ 17.7 ms ] thread
you forgot to mention GPU's :-)
Languages that leverage shared state in their concurrency model are made for concurrent processors. Languages or frameworks that do not are made for concurrent systems.
clojure disagrees? http://clojure.org/state
Based on that page, I'd say Clojure is pretty well suited to scale over multiple machines. It's not an either/or thing; Erlang can work just as well on one machine as on ten. The point, though, is that something which can run on several machines at once is always more robust than something which can only run on several cores at once.

The downside to the share-nothing model (which, as you pointed out, Clojure uses) is that it potentially reduces the speed of communication between processes on the same system. I don't think this is a problem in most cases, but it is a consideration.