Lee~ Doug Lea (of java.util.Concurrent fame) designed a framework called Fork/Join which is made to separate the idea of work from threads so that things can be parallelized out as much as possible. I don't know clojure that well, but would guess that it has some support for it and that you would see the best parallel fan out if you use the framework instead of explicitly managing your thread counts like this.
Matt On Wed, Aug 4, 2010 at 2:51 PM, Lee Spector <lspec...@hampshire.edu> wrote: > > On Aug 4, 2010, at 2:37 PM, Armando Blancas wrote: > > > Sorry, you had mentioned 1.1. The hint should be #^Callable > > Making this change, along with Mark's suggested change to burn-via-futures > (except that I had to change the inner dorun to doall), I get the results > below. It doesn't look to me like there's any difference with the explicit > thread pool. > > -Lee > > > 16 cores: > > 4 sequential burns: "Elapsed time: 2005.169 msecs" > 4 sequential burns: "Elapsed time: 1471.785 msecs" > 4 sequential burns: "Elapsed time: 1289.797 msecs" > 4 burns via pmap: "Elapsed time: 524.613 msecs" > 4 burns via pmap: "Elapsed time: 506.69 msecs" > 4 burns via pmap: "Elapsed time: 457.318 msecs" > 4 burns via futures: "Elapsed time: 439.053 msecs" > 4 burns via futures: "Elapsed time: 428.6 msecs" > 4 burns via futures: "Elapsed time: 469.888 msecs" > 4 burns via agents: "Elapsed time: 487.441 msecs" > 4 burns via agents: "Elapsed time: 472.364 msecs" > 4 burns via agents: "Elapsed time: 475.687 msecs" > 4 burns via a thread pool: "Elapsed time: 496.032 msecs" > 4 burns via a thread pool: "Elapsed time: 475.124 msecs" > 4 burns via a thread pool: "Elapsed time: 451.277 msecs" > 16 sequential burns: "Elapsed time: 6192.356 msecs" > 16 sequential burns: "Elapsed time: 6255.118 msecs" > 16 sequential burns: "Elapsed time: 6341.482 msecs" > 16 burns via pmap: "Elapsed time: 963.27 msecs" > 16 burns via pmap: "Elapsed time: 933.341 msecs" > 16 burns via pmap: "Elapsed time: 963.068 msecs" > 16 burns via futures: "Elapsed time: 959.335 msecs" > 16 burns via futures: "Elapsed time: 909.289 msecs" > 16 burns via futures: "Elapsed time: 945.639 msecs" > 16 burns via agents: "Elapsed time: 948.955 msecs" > 16 burns via agents: "Elapsed time: 887.656 msecs" > 16 burns via agents: "Elapsed time: 965.753 msecs" > 16 burns via a thread pool: "Elapsed time: 902.119 msecs" > 16 burns via a thread pool: "Elapsed time: 942.239 msecs" > 16 burns via a thread pool: "Elapsed time: 968.304 msecs" > 48 sequential burns: "Elapsed time: 17280.549 msecs" > 48 sequential burns: "Elapsed time: 16962.004 msecs" > 48 sequential burns: "Elapsed time: 17222.746 msecs" > 48 burns via pmap: "Elapsed time: 2856.71 msecs" > 48 burns via pmap: "Elapsed time: 2751.755 msecs" > 48 burns via pmap: "Elapsed time: 2517.552 msecs" > 48 burns via futures: "Elapsed time: 2471.599 msecs" > 48 burns via futures: "Elapsed time: 2488.509 msecs" > 48 burns via futures: "Elapsed time: 2497.917 msecs" > 48 burns via agents: "Elapsed time: 2532.471 msecs" > 48 burns via agents: "Elapsed time: 2492.998 msecs" > 48 burns via agents: "Elapsed time: 2475.815 msecs" > 48 burns via a thread pool: "Elapsed time: 2491.58 msecs" > 48 burns via a thread pool: "Elapsed time: 2483.124 msecs" > 48 burns via a thread pool: "Elapsed time: 2475.017 msecs" > > > 48 cores: > > > > > > > -- > Lee Spector, Professor of Computer Science > School of Cognitive Science, Hampshire College > 893 West Street, Amherst, MA 01002-3359 > lspec...@hampshire.edu, http://hampshire.edu/lspector/ > Phone: 413-559-5352, Fax: 413-559-5438 > > Check out Genetic Programming and Evolvable Machines: > http://www.springer.com/10710 - http://gpemjournal.blogspot.com/ > > -- > 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<clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- 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