I think the suggestion from the OP is to change the computational
executor pool in Agent from an Executors to a ForkJoinPool to get
better scalability.  Indeed, the work Doug has been in doing is in
response to many libs using fork/join as an alternative to Executors
to schedule lightweight computational tasks, GPars in Groovy and Scala
actors being the obvious examples.  We're using fork/join similarly in
our processing engine at Revelytix (in Clojure).

The benefit of using fork/join in this scenario is to eliminate the
possible bottleneck of a single entry queue for all agent task
executions, which is an inherent part of using Executors.  On chunkier
tasks or smaller core counts (the original design space for
Executors), this is not an issue, but I believe the pool under agent
send (but probably not send-off) would be a good match.  The pool
under send-off (and future) is probably not as good for this as it is
assumed to be IO-bound and may block, which fork/join does not
generally like.  We have used the fork/join ManagedBlocker api to get
around this in some cases though.

If someone wanted to work on it, the changes seem isolated to
Agent.java so this is a very tractable problem.

I think that David Liebke's f/j work has largely been to look at using
f/j for parallel execution over data structures ala pmap, which is an
entirely different problem (but also one of great interest).


On Jan 29, 7:34 pm, Stuart Sierra <the.stuart.sie...@gmail.com> wrote:
> There was some excellent work on ForkJoin in Clojure by David Liebke and
> others last year, but it never made it into the main Clojure branch. It's
> waiting for someone else to finish it. Search the wiki and mailing list for
> notes.
>
> -S

-- 
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