Skip to main content

Legion: Programming Distributed Heterogeneous Architectures

Alex Aiken ( Stanford University )
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.

Speaker bio

Alex Aiken is the Alcatel-Lucent Professor of Computer Science at Stanford. Alex received his Bachelors degree in Computer Science and Music from Bowling Green State University in 1983 and his Ph.D. from Cornell University in 1988. Alex was a Research Staff Member at the IBM Almaden Research Center (1988-1993) and a Professor in the EECS department at UC Berkeley (1993-2003) before joining the Stanford faculty in 2003. His research interest is in areas related to programming languages. He is an ACM Fellow, a recipient of ACM SIGPLAN's Programming Languages Achievement Award and Phi Beta Kappa's Teaching Award, and a former chair of the Stanford Computer Science Department.




Share this: