Legion: Programming Distributed Heterogeneous Architectures
Alex Aiken ( Stanford University )
- 16:00 21st January 2022 ( week 1, Hilary Term 2022 )Zoom
Programmers tend to think of parallel programming as a problem of dividing up computation, but increasingly the most important decisions involve the partitioning, placement and movement of data. Legion is a data-centric task-based programming model for the development of composable and portable software on distributed, heterogeneous architectures. The Legion model is built around two core features: a data model that allows users to dynamically describe the structure of program data and a suite of partitioning operators for describing the subsets of data used by tasks. Leveraging its detailed knowledge of program data, the Legion runtime uses dynamic dependence analysis to automatically infer implicit parallelism, data movement, and synchronization. A separate mapping interface decouples Legion programs from how they are scheduled onto individual machines, making Legion programs easy to port. We will give several examples of how Legion is used for accelerating both HPC and machine learning workloads at scale.