Excellent. I am taking notes on Steele's talk and adding them
to the CiSP parallel section. In Clojure it might be possible
to dynamically change the number of processes. With the
bit-partition idea is might even be convenient.
There was some discussion about this topic after David Liebke's talk
at the conj about the prototype fork/join filter/map/etc work that
Rich did. The talk isn't out on video yet but slides are here:
http://incanter.org/downloads/fjclj.pdf
and I wrote up some of these notes here:
http://tech.puredanger.com/2010/10/25/conj-parallel/
There is a natural question when invoking a sequence operation over a
data set in parallel about what the natural granularity is and Rich's
implementation is currently using 32, which is already embedded in the
underlying data structure. He mentioned another obvious option would
be 1 as it allows the creator of the sequence to control the chunking
in the sequence directly. We also talked a little about Guy's talk
and idea of marking a function (in meta) as associative and
appropriate for use in a parallel reduce.
On Jan 16, 1:13 pm, Tim Daly<d...@axiom-developer.org> wrote:
Steele is advocating binaries trees as an way of
doing parallel computation. I think that this idea
is reasonable but might be more effectively applied
in Clojure.
The idea of "binary" could be expanded in a very
simple way to use log32 instead which is a natural
mapping to the Clojure data structures.
However, this might be too coarse for some computations.
I would propose a middle-course between these two ideas.
I suggest that there is a natural mapping between the
bit-partitioning of data structures in Clojure (see the
section on Bit-Partitioned Hash Tries in CiSP) and the
partitioning of a problem for parallel work.
If the bit-partitioning is variable as a function of
the "size of the work pieces" and "the number of
parallel processors", that is,
(partition chunksize processors)
then we can dynamically decide how to break up a
computation on a data structure.
Tim Daly
--
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