The Prognostic Lab | Computer Science Department | University of Pittsburgh
About
Pisces is a co-kernel architecture designed to
allow multiple specialized OS/R instances to execute concurrently on
the same local node. Pisces enables the decomposition of a node's
hardware resources (CPU cores, memory blocks, and I/O devices) into
partitions that are fully managed by independent OS kernels/system
software stacks. Using Pisces, a local compute node can initialize
multiple Lightweight Kernel instances (based on the Kitten LWK) as co-kernel enclaves executing alongside an
unmodified Linux host OS. Furthermore, by leveraging Palacios support,
virtual machine instances can be created on top of these co-kernels as
well.
|
Architecture
The Pisces framework dynamically decomposes a
node’s hardware resources into multiple isolated partitions, each capable of
supporting a fully independent and isolated OS environment. Each OS instance is
referred to as an enclave and is dynamically constructed based on the
runtime requirements of an application.
In order to avoid modifications to the host Linux environment,
Pisce relies on the ability to offline resources in modern
Linux kernels. The offline functionality allows a system administrator to remove a
given resource from Linux’s allocators and subsystems while still leaving
the resource physically accessible. By off-lining resources, pisces partitions
Hardware
by dynamically removing resources such as CPU cores, memory blocks and PCI
devices from a running Linux kernel. Once a resource has been off-lined, a
running co-kernel is allowed to assume direct control over it. In this way,
both Linux and Pisces co-kernels are able to manage discontiguous sets of
resources explicitly assigned to them.
Some of the design features provided by Pisces:
- Elimination of cross OS dependencies.
- Internalized management of I/O.
- Cross enclave communication limited to explicit user-level shared memory segments.
- Usage of virtualization techniques to provide missing OS features.
Currently, Pisces supports co-kernel architectures based on the Kitten Lightweight Kernel
and Palacios Virtual Machine Monitor.
|
|
(1) Enclave Resource Assignment
|
|
|
Download Pisces
Checkout the source code: git clone https://gitlab.prognosticlab.org/prognosticlab/pisces.git
Browse the Git repository
|
|
|
Instructions
|
|
|
Related Publications
HPDC |
[2015] |
(pdf) |
J. Ouyang, B. Kocoloski, J. Lange and K. Pedretti, Achieving Performance Isolation with Lightweight Co-Kernels, Proceedings of the 24th International ACM Symposium on High Performance Parallel and Distributed Computing, (HPDC 2015) |
|
ROSS |
[2015] |
(pdf) |
B. Kocoloski, J. Lange, H. Abbasi, D. Bernholdt, T. Jones, J. Dayal, N. Evans, M. Lang, J. Lofstead, K. Pedretti, P. Bridges, System-Level Support for Composition of Applications,
Proceedings of the 5th International Workshop on Runtime and Operating Systems for Supercomputers, (ROSS 2015)
|
|