Sieve C++ Parallel Programming System: Difference between revisions

Content deleted Content added
Line 1:
{{notability|date=March 2013}}
The '''Sieve C++ Parallel Programming System''' is a [[C++]] [[compiler]] and parallel runtime designed and released by [[Codeplay]] that aims to simplify the [[Parallel Computing|parallelization]] of code so that it may run efficiently on multi-processor or multi-core systems. It is an alternative to other well-known parallelisation methods such as [[OpenMP]], the [[RapidmindRapidMind]] Development Platform]] and [[Intel Threading Building Blocks]] (TBB).
 
==Introduction==
Sieve is a C++ compiler that will take a section of serial code, which is annotated with sieve markers, and parallelize it automatically. The programmer wraps code they wish to parallelise inside a [[lexical scope]], which is tagged as 'sieve'. Inside this scope, referred to commonly as a 'sieve block', certain rules apply [http://www.codeplay.com/downloads_public/sievepaper-2columns-normal.pdf]:
 
* All [[Side effect (computer science)|side-effects]] within the sieve block are delayed until the end of the scope.
* Side-effects are defined to be any modifications to data declared outwith the sieve block scope.
Line 33 ⟶ 32:
 
==Determinism==
 
Determinism is an unusual feature of the Sieve System. If executing a parallel Sieve program on a multi core machine yields a bug, the bug will not disappear when run 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 has the advantage of eliminating [[race conditions]], one of the most common bugs in [[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.