On 22 Dec 2010, at 09:28, Tim Daly wrote:
Clojure works well for concurrency but does not really address
the parallel question well. For that I've turned to MPI.
I am working on using MPI from Clojure.
That's a topic I am very interested in as well, although unfortunately
I never find the time to really do something. Some random thoughts
based on what I did look at in the past:
1) Parallel computing vs. distributed computing: these are two
different levels of complexity in my opinion. Parallel computing in a
shared-memory environment (e.g. fork/join style) is a much simpler
problem than parallel computing on distributed-memory systems, where
you have to take care of distributing data among the machines and try
to minimize data exchange in addition to balancing CPU load. There are
some interesting approaches in Clojure's par branch for the first
problem. The second one deserves to be tackled as well, but we should
use another label than "parallel" to reduce confusion.
2) MPI via Java - which one do you plan to use?
3) Exchanging data between nodes: as far as I know many Clojure data
types, in particular closures, are not serializable yet.
4) Efficient data exchange between nodes: it would be nice to able to
profit from MPI's efficiency for large homogeneous data sets (read:
arrays) in Clojure as well. Java arrays should be easy to handle
efficiently, but Clojure code tends to avoid them. Perhaps primitive-
type vectors could be transferred as arrays as well?
5) High-level layer: MPI is much too low-level for daily use. For
distributed programming in Clojure, I'd like to have a higher-level
model which abstracts away the synchronization issues that lead to
deadlocks, race conditions, and ultimately a miserable life for
programmers. There are some good ideas in the PGAS languages that
would perhaps work fine in a Clojure context as well.
These are some links others might find interesting.
At first glance this looks promising - they are on my "to watch" list.
Thanks!
Konrad.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en