Sieve C++ Parallel Programming System: Difference between revisions

Content deleted Content added
See also: fixed wikilink to Alias analysis
Line 27:
The compiler will implicitly add a splitpoint above the for loop construct body, as an entry point. Similarly one will be added after as an exit point.
 
In the Sieve System, only local variables to the sieve block scope may have dependencies. However, these dependencies must not cross splitpoints; they will generate compiler warnings(cite) {{fact}}. In order to parallelize this loop, a special 'Iterator' class may be used in place of a standard integer looping counter. ThereIt areis safe for parallelization, and the programmer is free to create new Iterator classes at will[http://codeplaysoftware.typepad.com/codeplay/2007/05/loop_carried_de.html]. In addition to these Iterator classes, the programmer is free to implement classes called 'Accumulators' which are used to carry out reduction operations.
 
The way the Iterator classes are implemented opens up various means for scalability. The Sieve Parallel Runtime employs dynamic [[speculative execution]] when executing on a target platform. This can yield very good speedups, however running on a single core machine can incur overheads[http://www.codeplay.com/technology/sievebenchmarks.html].