Regent is a language for implicit task-based parallelism.
Regent automatically discovers parallelism in programs composed of tasks, or functions. Tasks execute sequentially. Behind the scenes, Regent looks at the arguments to tasks, along with the ways tasks touch their arguments (read, write, etc.) to determine which tasks can execute in parallel. That means you can write code like this:
And Regent will automatically discover that this parallelism is available:
Interested in learning more? Install Regent and checkout the tutorials.