On 29 Apr 2011, at 16:09, Toon Verwaest wrote: > You shouldn't write "do" loops that start at the beginning and go until the > end. You should just say that you want the calculation done and that your > intent is that you have visited everything. And then of course you might have > dependencies etc... but the idea is generally, don't say how to do it, just > declare what you want as a result. > > Of course, it doesn't immediately match what we are used to doing: telling > the computer how we want things done; but you can't really say that you have > to tell the computer more about parallelization. It's exactly the opposite. Well, it is not that easy. You have to include enough information intro the program, and you have to break it down in a way that allows parallelism. For instance, you need to tell the machine that your operators are associative or commutative to enable optimizations and reordering. And there seem to be approaches for instance to infer parallel solutions like prefix-sum algorithms[1] but that is also restricted to certain applications. Nothing general, no holly grail or silver bullet.
Best regards Stefan [1] Prefix Sums and Their Applications. Guy E. Blelloch -- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525
