Enabling Primitives for Compiling Parallel Languages [chapter]

Seth Copen Goldstein, Klaus Erik Schauser, David Culler
1996 Languages, Compilers and Run-Time Systems for Scalable Computers  
This paper presents three novel language implementation primitives-lazy threads,stacklets, and synchronizers-and shows how they combine to provide a parallel call at nearly the efficiency of a sequential call. The central idea is to transform parallel calls into parallel-ready sequential calls. Excess parallelism degrades into sequential calls with the attendant efficient stack management and direct transfer of control and data, unless a call truly needs to execute in parallel, in which case it
more » ... l, in which case it gets its own thread of control. We show how these techniques can be applied to distribute work efficiently on multiprocessors.
doi:10.1007/978-1-4615-2315-4_12 fatcat:yw2j6h4zo5fvfh7hxtiwqwszjm