Litcius/Paper detail

IRIS: A Portable Runtime System Exploiting Multiple Heterogeneous Programming Systems

Jungwon Kim, Seyong Lee, Beau Johnston, Jeffrey S. Vetter

202138 citationsDOIOpen Access PDF

Abstract

Across embedded, mobile, enterprise, and high performance computing systems, computer architectures are becoming more heterogeneous and complex. This complexity is causing a crisis in programming systems and performance portability. Several programming systems are working to address these challenges, but the increasing architectural diversity is forcing software stacks and applications to be specialized for each architecture. As we show, all of these approaches critically depend on their runtime system for discovery, execution, scheduling, and data orchestration. To address this challenge, we believe that a more agile and proactive runtime system is essential to increase performance portability and improve user productivity. To this end, we have designed and implemented IRIS: a portable runtime system exploiting multiple heterogeneous programming systems. IRIS can discover available resources, manage multiple diverse programming systems (e.g., CUDA, Hexagon, HIP, Level Zero, OpenCL, OpenMP) simultaneously in the same execution, respect data dependencies, orchestrate data movement proactively, and provide for user-configurable scheduling. Our evaluation on three architectures, ranging from Qualcomm Snapdragon to a Summit supercomputer node, shows that IRIS improves portability across a wide range of diverse heterogeneous architectures with negligible overhead.

Topics & Concepts

Computer scienceSoftware portabilityRuntime systemProgramming paradigmScheduling (production processes)Distributed computingComputer architectureOverhead (engineering)Embedded systemOperating systemProgramming languageOperations managementEconomicsParallel Computing and Optimization TechniquesCloud Computing and Resource ManagementDistributed and Parallel Computing Systems
IRIS: A Portable Runtime System Exploiting Multiple Heterogeneous Programming Systems | Litcius