
PhD Student at the University of Washington, youtuber Mastodon: @oflatt@discuss.systems
- Tweets206
- Following71
- Followers212
- Likes365

ALT In this paper, we provide an implementation of par that has nearly zero cost. Specifically, we show how to compile the expression par(f , g) so that, dynamically, a scheduler may choose between two behaviors for par: either it spawns a thread and f () and g() are executed in parallel, or it executes f () and g() sequentially. Our compiler and dynamic scheduler then work together to automatically manage parallelism, offering the following performance guarantees. (1) Work-efficiency: the total overhead of all calls to par is nearly zero. In particular, the total cost of spawning threads should be small, e.g., 1% of total processor time. Additionally, if the scheduler chooses not to execute a call par(f , g) in parallel, then the cost is no more expensive than the cost of executing f () and g() sequentially. (2) Span-efficiency: the theoretical parallelism of the execution is preserved.















