
In this work, I describe the MCP abstraction and the salient details of Akaros. For this reason, an important part of Akaros is the provisioning, allocation, and preemption of resources, and the MCP must be able to handle having a resource revoked at any moment. Data centers typically have a mix of high-priority applications and background batch jobs, where the demands of the high-priority application can change over time. The MCP is built on the idea of separating cores from threads: the operating system grants spatially partitioned cores to the MCP, and the application schedules its threads on those cores. The primary feature of Akaros is a new process abstraction called the "Many-Core Process" (MCP) that embodies transparency, application control of physical resources, and performance isolation.

Given the recent resurgence of interest in parallel computing as well as the increasing importance of data center applications, what changes can we make to operating system abstractions to support parallel programs?Īkaros is a research operating system designed for single-node, large-scale SMP and many-core architectures. These applications require high, predictable performance and low latency, and they are important enough to warrant engineering effort at all levels of the software stack.

This characterization is true not only for traditional scientific computing, but also for high-priority data center applications that run on parallel processors.

High-performance, parallel programs want uninterrupted access to physical resources.
