Legion
A task-based programming model and runtime
Area: Programming models and runtimes
CASS member: S4PST
Description
Legion is an implicitly parallel task-based programming model and runtime. The key features of Legion are: implicit parallelism (users do not to schedule computations and data movement), a flexible sublanguage for data partitioning (allowing simple expression of complex communication patterns), and separation of the expression of the computation from how it is mapped into the machine. Together, these features make it more productive to modify existing code (to add or remove computations), to port programs to new machines (which generally requires only writing a new mapping), and reasoning about correctness. Legion is also designed to be compositional, and a growing set of Legion libraries provide support for accelerating Python, deep learning, data analysis, and simulation.
Target audience
Developers of scientific and data analysis codes, particularly people who desire a higher-level interface to programming supercomputers than traditional bulk-synchronous models.