Comparing strategies for lightweight threading based on continuations
A lightweight and efficient mechanism for user-space threads is an important building block for parallel and concurrent language implementations. It is particularly advantageous when the compiler has an internal representation for the threading primitives that can enable optimization of the scheduling code. In our Parallel ML (PML) compiler (part of the Manticore project), we have taken an approach based on supporting reified continuations in the intermediate language. This approach has allowed us to build efficient work-stealing, user-level threading, and other mechanisms for parallel and concurrent programming.
There are several predominant strategies for implementing lightweight threading based on continuations. Much of the current understanding of their performance trade-offs are based on cross-language and cross-compiler comparisons, simulations and theoretical analysis, or direct measurements performed nearly 30 years ago.
We have implemented four of these strategies for lightweight threading in our compiler: contiguous stacks, segmented stacks, linked frames, and linked closures. These implementations provide an apples-to-apples comparison of the different approaches. This talk will give a report on the status of our efforts to understand the empirical characteristics of these implementation strategies.
Sat 29 Sep
|13:30 - 14:15|
|14:15 - 15:00|