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.


Reply via email to