20
PARALLEL PROCESSING FINAL PRESENTATION CILK Eliran Ben Moshe Neriya Cohen

P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

Embed Size (px)

Citation preview

Page 1: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

PARALLEL PROCESSING

FINAL PRESENTATION

CILKEliran Ben MosheNeriya Cohen

Page 2: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

WHAT IS CILK? General-purpose programming

language designed for multithreaded parallel computing.

The C++ 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.

Page 3: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

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.

Page 4: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

CILK KEYWORDS

Spawn

Sync

Inlet

Abort

Page 5: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

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

int fib (int n) {if (n<2) return (n); else { int x,y; x = fib(n-1); y = fib(n-2); return (x+y); }}

cilk int fib (int n) { if (n<2) return (n); else { int x,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); }}

cilk int fib (int n) { if (n<2) return (n); else { int x,y; x = spawn fib(n-1); y = spawn fib(n-2); sync; return (x+y); }}

Page 6: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 7: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 8: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 9: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 10: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 11: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

WORK & SPAN Work ()- The total amount of processor time

required to complete the program is the sum of all the numbers.

Span (

Page 12: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

PERFORMANCE

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

Page 13: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

STEALING

Page 14: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

STEALING

Page 15: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

EXAMPLE – QUICK SORT

Page 16: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 17: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen
Page 18: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

SERIAL RECURSION

Page 19: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen

PARALLEL RECURSION

Page 20: P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen