PALMOS: A Transparent, Multi-tasking Acceleration Layer for Parallel Heterogeneous Systems

Christos Margiolas, Michael F.P. O'Boyle

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

Accelerators, such as Graphic Processing Units (GPUs), are increasingly popular components of modern parallel systems. This move towards heterogeneity, however, has not progressed through all layers of system software. There is no transparent Operating System (OS) support for the management and sharing of accelerators between users and applications. Consequently, there is also no support for OS-level virtualization (containers) targeting heterogeneous software. This paper presents a secure, user-space virtualization layer that integrates the accelerator resources of a system with the standard multi-tasking and user-space virtualization facilities of commodity Linux OS. It targets heterogeneous commodity systems found in data center nodes and requires no modification to the OS, OpenCL or application. It eliminates high setup overhead, enables fine-grained sharing of mixed-vendor accelerator resources and provides resource and platform aware scheduling. The average throughput improvement across workloads and mixed-vendor platform configurations varies from 1.29x to 3.87x speedup over existing schemes. Our approach outperforms both vendor accelerator sharing facilities and message passing solutions.
Original languageEnglish
Title of host publicationProceedings of the 29th ACM on International Conference on Supercomputing
Place of PublicationNew York, NY, USA
Number of pages12
ISBN (Print)978-1-4503-3559-1
Publication statusPublished - 2015

Keywords / Materials (for Non-textual outputs)

  • data placement, gpu, heterogeneity, heterogeneous computing, opencl, resource management, virtualization


Dive into the research topics of 'PALMOS: A Transparent, Multi-tasking Acceleration Layer for Parallel Heterogeneous Systems'. Together they form a unique fingerprint.

Cite this