Kestrel Runtime System

Enabling virtualization of heterogenous computing resources in the cloud.

 

BUILT FOR EASE-OF-USE
  • Container-based accelerator reservation
  • Virtualization with automatic accelerator allocation and scheduling
  • Simple APIs to invoke accelerators in applications
OPTIMIZED FOR PERFORMANCE
  • Fine-grained accelerator sharing
  • Data caching and data-transfer/computation overlapping
DESIGNED FOR PORTABILITY
  • Easy integration with distributed computing frameworks
  • Support heterogeneous systems with FPGAs and GPUs
BUILT-IN INTEGRATION WITH SPARK
  • With accelerated machine-learning library MLlib

Global Accelerator Manager
  • Global resource allocation within a cluster to optimize system throughput and accelerator utilization
Node Accelerator Manager
  • Virtualize accelerators across application tasks
  • Provide fine-grained accelerator sharing/isolation
Kestrel Runtime Performance

  • 10x code reduction with Spark + Kestrel-enabled accelerators, compared with distributed OpenCL-based implementations
  • 2.7x speedup for iterative computations with data pipelining and caching techniques
  • 1.7x cluster throughput improvement by providing fine-grained accelerator sharing among multiple applications