First-Class Operating System Management of Computational Accelerators

Our research investigates operating system mechanisms to manage hardware accelerator resources in a safe, fair, and protected manner while maintaining high performance. Programmable vector processors including general-purpose graphical processing units (GP-GPUs) and other accelerators for encryption, compression, media transcoding, pattern matching, parsing, etc. are increasingly ubiquitous in computer systems. For the sake of safety and fairness, such accelerators must be managed by the operating system, but for the sake of performance, they must be accessible directly from user-level applications, without OS intervention. The conflict between these goals is exacerbated by the opacity of proprietary library/driver/hardware interfaces. Our research seeks a balanced solution to these conflicting goals through:

  1. an operating system resource management architecture that allows direct user-level access in the common case, but intercedes in the existing accelerator access path when necessary to delay and re-order requests;
  2. a tool chain that uncovers hidden interface semantics required for resource management, together with a characterization of the information needed from vendors in the future;
  3. an integrated management and scheduling strategy across the full set of computational resources in a given system.

Publications:

Open-Source Software:

Project Members:

Michael L. Scott (PI), University of Rochester
Kai Shen (co-PI), University of Rochester
Mohammad Hedayati-Goudarzi, University of Rochester
Joesph Izraelevitz, University of Rochester

Alumni:

Konstantinos Menychtas, Google
Hammurabi Mendes, Davidson College

Support:

This project is supported by the National Science Foundation under Grant No. 1319417. Link to the award abstract.

Note:

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.