Monday, February 29, 2016
12:00 PM
209 Computer Studies Building
Michela Becchi
University of Missouri
Runtime Support for GPU Virtualization in Cluster and Cloud Environments
GPUs have been used to accelerate a wide variety of applications and are increasingly part of high-performance computing clusters. For example, the Titan supercomputer at Oak Ridge National Lab is equipped with over eighteen thousand Nvidia GPUs. However, the effective use of GPUs in shared environments is complicated by the fact that existing cluster management frameworks rely directly on GPU software stacks such as CUDA and OpenCL. These stacks were designed under the assumption that GPUs are used as dedicated accelerators and they offer limited support for inter-application concurrency. This limitation, in turn, can result in system underutilization and decreased performance.

In this talk, I will describe the design of virtualization technologies to allow for the efficient use of GPUs in shared environments, and I will discuss the integration of these mechanisms into a node-level runtime system. Our proposed system provides abstraction and sharing of GPUs, while allowing isolation between concurrent applications. We devise different kinds of sharing mechanisms, including time-sharing, space-sharing, and preemptive GPU sharing. A central component of our runtime is a memory manager that provides a virtual memory abstraction to the applications and improves the CPU-GPU data transfers. Our runtime is flexible in terms of scheduling policies, and allows dynamic (as opposed to programmer-defined) binding of applications to GPUs. In addition, our framework supports dynamic load balancing, dynamic upgrades and downgrades of GPUs, and automatically manages implicit and explicit synchronization within and across GPU applications. Our runtime can be deployed in combination with VM-based cloud computing services to allow virtualization of heterogeneous clusters, or in combination with HPC cluster resource managers to form an integrated resource management infrastructure for heterogeneous clusters.

Bio: Michela Becchi is an assistant professor in the Department of Electrical and Computer Engineering with joint appointments in Computer Science and the Informatics Institute of the University of Missouri. Her research interests are in parallel and high performance computing, algorithm design and acceleration, system software design, and networking systems. She received her M.S. and Ph.D. in Computer Engineering from Washington University in St. Louis in 2009, and a Laurea degree from Politecnico di Milano in 2000. She worked at NEC Laboratories in Princeton NJ and at IBM Research and Development GmbH in Boeblingen, Germany. She was the recipient of an NSF Early CAREER award in 2015, and of two Best Paper Awards at HPDC in 2011 and 2012.