Previous | Next --- Slide 32 of 64
Back to Lecture Thumbnails

Regarding the 'Abstraction vs. Implementation' discussion we had in class, Cilk makes a case of abstracting away the implementation detail of pthreads and cores. According to their FAQ (point 3 of 'Why do I want dynamic load-balancing? Isn't static scheduling good enough?'), their aim is to let programmers write "processor-oblivious code, i.e., code that is independent of the number of threads/cores/processors it should execute on". Nowadays, only a very small minority of general-use programs are written with the underlying architecture in mind; instead of thinking on the instruction level, we let the compiler worry about those. I think this abstraction of processor-agnostic coding will become much more prevalent with the increasing popularity of multi-core and multi-processor (more than 4 or 8) devices in our everyday life.