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

Reply via email to