Sieve C++ Parallel Programming System: Difference between revisions

Content deleted Content added
SmackBot (talk | contribs)
m Standard headings &/or gen fixes. using AWB
m Typo fixing , typos fixed: dissapear → disappear, be be → be using AWB
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). In order to parallelize this loop, a special 'Iterator' class may be be used in place of a standard integer looping counter. There are 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].
Line 33:
==Determinism==
 
Determinism is an interesting feature of the Sieve System. If executing a parallel Sieve program on a multi core machine yields a bug, the bug will not dissapeardisappear when ran on a single core to aid [[debugging]][http://www.codeplay.com/downloads_public/sievepaper-2columns-normal.pdf][http://www.cl.cam.ac.uk/~al407/research/papers/eupar07.pdf]. This is a huge step forward for parallel computer software, as it eliminates [[Race Conditions]] which are one of the most common bugs to arise from [[concurrent programming]]. The removal of the need to consider [[concurrency control]] structures within a sieve block can speed up development time and results in safer code.
 
==Supported Systems==