Regent is a language for implicit dataflow parallelism.
Regent discovers dataflow parallelism in sequential code by computing a dependence graph over tasks, like the one below. Tasks execute as soon as all dependencies are satisfied, and can be distributed automatically over a cluster of (possibly heterogeneous) machines.
Because execution follows the original sequential semantics of the code, Regent programs are easy to read and understand. Just read the code top-to-bottom, as if it were written in a traditional sequential language. The dependence graph above is produced when the task main executes below.