ka, I ran some more tests, including partition-work and your version
of fac. I also ran some code from http://shootout.alioth.debian.org in
both C and Java.

On these 10-element sequences, partition-work seems to be a few tens
of milliseconds slower than partition-all. It does look generally
useful though; I'll run some more tests with it.

Your version of fac doesn't change the performance characteristics on
the Mac much: two cores are almost twice as fast as one, but three or
four result in single-digit percentage gains. My fac was 8% faster on
four cores instead of two. Yours was 1% faster. I also tried with a 12-
element sequence to try to ensure that all the cores had the same
amount of work. In that situation, four and two were even closer.

I ran the Java versions of the Mandelbrot and spectral norm benchmarks
from the above-linked site, as those appeared to keep all the cores
busy. Java versions of both run nearly twice as fast on the Mac Pro as
my dual-core laptop, which is in line with expected results on a
trivially parallel problem (the laptop is slightly faster per-core).

The problem here seems to be Clojure-specific. There's some sort of
overhead here that keeps the CPUs busy (top reports 390%), but very
little extra desirable work is actually getting done. If this is
indeed a Clojure problem, I'm happy to try to help track it down. I'm
not very familiar with the profiling and monitoring tools for the JVM,
so a pointer in the right direction there would be appreciated.

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