220 likes | 388 Views
Parallel Processing Final Presentation CILK. Eliran Ben Moshe Neriya Cohen. What is Cilk ?. G eneral-purpose  programming language designed for multithreaded parallel computing . The C++  incarnation is called Cilk Plus .
E N D
Parallel ProcessingFinal PresentationCILK Eliran Ben Moshe Neriya Cohen
What is Cilk? • General-purpose programming language designed for multithreaded parallel computing. • TheC++ incarnation is called Cilk Plus. • The programmer should be responsible for exposing the parallelism, identifying elements that can safely be executed in parallel. • The run-time environment, particularly the scheduler, decides during execution how to actually divide the work between processors.
Cilk- How it Began? • The Cilk language has been developed since 1994 at the MIT Laboratory for Computer Science. • In July 2009, Intel Corporation acquired Cilk Arts, the Cilk++ technology and the Cilk trademark. • In 2010, Intel released a commercial implementation in its compilers combined with some data parallel constructs with the name Intel Cilk Plus.
Cilk Keywords • Spawn • Sync • Inlet • Abort
A Simple Example int fib (int n) { if (n<2) return (n); else { int x,y; x = fib(n-1); y = fib(n-2); return (x+y); } } cilkint fib (int n) { if (n<2) return (n); else { intx,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); } }
Work & Span • Work ()- The total amount of processor time required to complete the program is the sum of all the numbers. • Span (
Performance • Parallelism - the average amount of work per step along the span.