Cutting out the middleman: OS-level support for x10 activities


In the X10 language, computations are modeled as lightweight threads called activities. Since most operating systems only offer relatively heavyweight kernel-level threads, the X10 runtime system implements a user-space scheduler to map activities to operating-system threads in a many-to-one fashion. This approach can lead to suboptimal scheduling decisions or synchronization overhead. In this paper, we present an alternative X10 runtime system that targets OctoPOS, an operating system designed from the ground up for highly parallel workloads on PGAS architectures. OctoPOS offers an unconventional execution model based on i-lets, lightweight self-contained units of computation with (mostly) run-to-completion semantics that can be dispatched very efficiently. We are able to do a 1-to-1 mapping of X10 activities to i-lets, which results in a slim runtime system, avoiding the need for user-level scheduling and its costs. We perform microbenchmarks on a prototype many-core hardware architecture and show that our system needs fewer than 2000 clock cycles to spawn local and remote activities.

DOI: 10.1145/2771774.2771775

Extracted Key Phrases

4 Figures and Tables

Cite this paper

@inproceedings{Mohr2015CuttingOT, title={Cutting out the middleman: OS-level support for x10 activities}, author={Manuel Mohr and Sebastian Buchwald and Andreas Zwinkau and Christoph Erhardt and Benjamin Oechslein and Jens Schedel and Daniel Lohmann}, booktitle={X10@PLDI}, year={2015} }