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

Reply via email to