1 / 20

Parallel Processing Final Presentation CILK

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 .

benita
Download Presentation

Parallel Processing Final Presentation CILK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parallel ProcessingFinal PresentationCILK Eliran Ben Moshe Neriya Cohen

  2. 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.

  3. 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.

  4. Cilk Keywords • Spawn • Sync • Inlet • Abort

  5. 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); } }

  6. Work & Span • Work ()- The total amount of processor time required to complete the program is the sum of all the numbers. • Span (

  7. Performance • Parallelism - the average amount of work per step along the span.

  8. Stealing

  9. Stealing

  10. Example – Quick Sort

  11. Serial Recursion

  12. Parallel Recursion

More Related