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.

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.