Lee: I believe you said that with your benchmarking code achieved good speedup when run as separate JVMs that were each running a single thread, even before making the changes to the implementation of reverse found by Marshall. I confirmed that on my own machine as well.
Have you tried running your real application in a single thread in a JVM, and then run multiple JVMs in parallel, to see if there is any speedup? If so, that would again help determine whether it is multiple threads in a single JVM causing the slowdown, or something to do with the hardware or OS that is the limiting factor. Andy On Dec 11, 2012, at 4:37 PM, Lee Spector wrote: > > On Dec 11, 2012, at 1:06 PM, Marshall Bockrath-Vandegrift wrote: >> So I think if you replace your calls to `reverse` and any `conj` loops >> you have in your own code, you should see a perfectly reasonable >> speedup. > > Tantalizing, but on investigation I see that our real application actually > does very little explicitly with reverse or conj, and I don't actually think > that we're getting reasonable speedups (which is what led me to try that > benchmark). So while I'm not sure of the source of the problem in our > application I think there can be a problem even if one avoids direct calls to > reverse and conj. Andy's recent tests also seem to confirm this. > > BTW benchmarking our real application (https://github.com/lspector/Clojush) > is a bit tricky because it's riddled with random number generator calls that > can have big effects, but we're going to look into working around that. > Recent postings re: seedable RNGs may help, although changing all of the RNG > code may be a little involved because we use thread-local RNGs (to avoid > contention and get good multicore speedups... we thought!). > > -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