So here's what we came up with that clearly demonstrates the problem. Lee provided the code and I tweaked it until I believe it shows the problem clearly and succinctly.
I have put together a .tar.gz file that has everything needed to run it, except lein. Grab it here: clojush_bowling_benchmark.tar.gz Then run, for instance: /usr/bin/time -f %E lein run clojush.examples.benchmark-bowling and then, when that has finished, edit src/clojush/examples/benchmark_bowling.clj and uncomment ":use-single-thread true" and run it again. I think this is a succinct, deterministic benchmark that clearly demonstrates the problem and also doesn't use conj or reverse. We don't see slowdowns, but I cannot get any better than around 2x speedup on any hardware with this benchmark. I hope this helps people get to the bottom of things. -Josiah On Sun, Dec 16, 2012 at 4:54 PM, Lee Spector <lspec...@hampshire.edu> wrote: > > On Dec 14, 2012, at 10:41 PM, cameron wrote: > > Until Lee has a representative benchmark for his application it's > difficult to tell if he's > > experiencing the same problem but there would seem to be a case for > changing the PersistentList > > implementation in clojure.lang. > > We put together a version of our application in which we just replaced all > of the random calls with deterministic functions (returning either > constants or deterministic functions of their arguments). > > What we saw was a maximum speedup of less than x2 on a 48 core machine, > which was interesting in part because the determinism meant that only a > tiny subset of our code was being executed (because all of the Push > programs in the population were identical and used only a single Push > instruction). So I think that this may indeed help us to hone in on the > problem. > > Before we share that code, however, we should make sure that the > evaluations that are being done concurrently are sufficiently long-running, > and maybe tweak a couple of other things. I think we'll have a chance to do > that early in the week and we'll share the results/code when we do. > > Thanks, > > -Lee > > -- > 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 > -- 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