I think it makes sense to consider cache-coherency and message passing to be on opposite ends of a spectrum, where with message-passing you're explicitly providing the communication protocol and giving more control, and in cache-coherent architectures you're relying on the CPU to do it for you. I always thought clojure's perspective on immutability and STM was the best solution for a shared-memory cache-coherent architecture and not totally relevant for a message-passing one.
The other interesting thing about cache-coherency is it breaks down around 100 cores. Consider if 5% of your cpu time was spent in cache-misses and hardware-level communication, that puts you at 95% concurrency, which according to Amdahl's law asymptotes at a 20x speedup. At 100 cores is at 17x already. http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/AmdahlsLaw.svg/648px-AmdahlsLaw.svg.png It makes me think we need to ditch cache-coherency and control the hardware more closely, and have some knobs to trade control for performance. x86 and JVM are inherently shared-memory architectures. On Sun, Apr 28, 2013 at 10:57 AM, Manuel Paccagnella < manuel.paccagne...@gmail.com> wrote: > > > Il giorno domenica 28 aprile 2013 15:28:03 UTC+2, Lee ha scritto: > >> >> On Apr 28, 2013, at 12:34 AM, Timothy Baldridge wrote: >> >> > E-mail thread had less to do with issues of Clojure per se, but more >> with issues the JVM had running on a 48-way machine. Or am I missing >> something? >> > >> > IIRC the Azul people played with Clojure a bit, I wonder if their >> suped-up JVM allows Clojure to perform any better. >> >> Whatever the root cause (and I'm not sure that that has been fully >> clarified), the bottom line is that Clojure users may not be able to get >> reasonable speedups from using large-core-count machines, even on problems >> that would seem to be well suited to it (large grain, fully independent >> tasks), and even when using the best methods for launching the tasks that >> anyone in the community can suggest. >> >> > This is an interesting perspective. Are you saying that currently Clojure > doesn't offer adequate tools to take full advantage of parallel execution > on multi-core machines? This clearly contradicts what Stuart Halloway > said<http://thinkrelevance.com/blog/2008/07/30/clojure> > : > > Clojure's emphasis on immutability and support for software transactional >> memory make it a viable option for taking advantage of massively parallel >> hardware >> > > And repeated <http://vimeo.com/10896148> on > numerous<http://uberconf.com/conference/denver/2010/06/session?id=18166> > occasions <http://anyvite.com/events/home/qteotq5dhz> elsewhere. I'm not > saying you are wrong, I'm genuinely interested in understanding a bit more > about this. I've taken a look to David Liebke > presentation<https://www.youtube.com/watch?v=ZampUP6PdQA>and tried to wrap my > head around reducers, so I know it's not a simple > domain. But if what you say is correct, then one of the main selling point > of Clojure would be (right now) a bogus one. Or, in other words, we would > have a powerful tool to write more robust, simple and comprehensive systems > that simplifies a lot *concurrency*, but that still don't have tools to > take full advantage of large scale *parallelism*. > > >> -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 unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.