On 30.12.2008, at 22:24, Mark H. wrote:

> On Dec 30, 9:18 am, Mibu <mibu.cloj...@gmail.com> wrote:
>> In an ideal world, standard functions like map, sort, reduce, filter,
>> etc. would know when to parallelize on their own, or even better, the
>> compiler will do it for them.
>
> The former is easier than the latter ;-)  Even the smartest
> autoparallelizing compilers rely on manual annotations to expose lack
> of sequential dependencies in loops, but a function's API can
> guarantee that parallelism and let the function's implementation do
> the heavy lifting.

Manual intervention is required not only for the identification of  
dependencies, but also for telling the compiler where parallelization  
makes sense for gaining efficiency. It is often said that pure  
functional programs have the advantage of being autoparallelizable  
because there are no hidden dependencies, but there still isn't any  
decent autoparallelizing compiler for any functional language at the  
moment. One of the reasons is that performance analysis is still very  
difficult. Perhaps one day we will have parallel JIT compilers for  
this, but that's not for tomorrow.

> incredibly frustrating for users (trust me).  This means it's better
> to have simpler compilers and smarter libraries.

Definitely!

Konrad.



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