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.