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.