Integrating External Resources with a Task-Based Programming Model

Publication image

Accessing external resources (e.g., loading input data, checkpointing snapshots, and out-of-core processing) can have a significant impact on the performance of applications. However, no existing programming systems for high- performance computing directly manage and optimize external accesses. As a result, users must explicitly manage external accesses alongside their computation at the application level, which can result in both correctness and performance issues.

We address this limitation by introducing Iris, a task-based programming model with semantics for external resources. Iris allows applications to describe their access requirements to external resources and the relationship of those accesses to the computation. Iris incorporates external I/O into a deferred execution model, reschedules external I/O to overlap I/O with computation, and reduces external I/O when possible. We evaluate Iris on three microbenchmarks representative of important workloads in HPC and a full combustion simulation, S3D. We demonstrate that the Iris implementation of S3D reduces the external I/O overhead by up to 20×, compared to the Legion and the Fortran implementations.

Authors

Zhihao Jia (Stanford University)
Sean Treichler (NVIDIA)
Galen Shipman (Los Alamos National Laboratory)
Noah Watkins (UC Santa Cruz)
Carlos Maltzahn (UC Santa Cruz)
Patrick McCormick (Los Alamos National Laboratory)
Alex Aiken (Stanford University)

Publication Date

Uploaded Files