Languages
- 1994, Threaded-C, Massachusetts Institute of Technology
The Parallel Continuation Machine (PCM) was the runtime support for Threaded-C. It was a C-based package that provided continuation-passing-style threads on Thinking Machines Corporation’s Connection Machine Model CM-5 Supercomputer and used work stealing as a general scheduling policy to improve the load balance and locality of the computation. This language is not to be confused with the Threaded-C for EARTH from McGill University and the University of Delaware. PCM is briefly mentioned in the history of Cilk on Benefits of http://supertech.csail.mit.edu/cilk/manual-5.3.2.pdf.
- 1995, Cilk, Massachusetts Institute of Technology
The first implementation of Cilk (http://supertech.csail.mit.edu/cilk) was a direct descendent of PCM/Threaded-C. Cilk fixed the difficulty of programming continuation tasks and came up with methods to tailor task allocation to caches without knowing the size of the caches with cache-oblivious algorithms. Cilk is an extension of C that supports very efficient fork/join parallelism. Its space efficiency is discussed in http://supertech.csail.mit.edu/papers/cilkjpdc96.pdf. FFTW (http://www.fftw.org) is an example of a cache-oblivious algorithm.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access