I have a hunch that Stefan is referring to the PhD thesis of Charlotte
Herzeel without giving names. As far as I understood from my discussions
with her (and her talks), it generally doesn't really pay off to
automatically parallelize on branches. You get minimal speedups (1% at
best).
I tend to agree with Stefan / Michael / Guy Steele... Maybe you don't
need much, but the mapreduce style is the minimum requirement to give
the language enough "wiggle room" to automatically parallelize stuff.
But it DOES require you to restructure your application in a slightly
more declarative fashion.
cheers,
Toon
On 04/29/2011 04:55 PM, Alexandre Bergel wrote:
Hi Stefan,
I though about your email. I do not understand why automatic parallelization is
not the way to go. In my opinion, the computer has much more knowledge about
the programmer about where side effects appear and where to cut or split a
computation.
Actually, if I want to be provocative, I would say that parallelization cannot
be effective without being automatic. For a similar reason that the compiler
will always know better than me how to properly allocate registers.
I feel it would be cheaper for me to buy a faster computer than to learn how to
program in a multi-core fashion.
Cheers,
Alexandre
However, as I understand it, it's entirely up to user to write code
exploiting parallel Process explicitly right ?
Sure, you have to do: n times: [ [ 1 expensiveComputation. ] fork ].
I don't belief in holy grails or silver bullets.
Automatic parallelization is something nice for the kids, like Santa Clause or
the Easter Bunny...