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