Regent
- 15 November 2015
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
Abstract
We present Regent, a high-productivity programming language for high performance computing with logical regions. Regent users compose programs with tasks (functions eligible for parallel execution) and logical regions (hierarchical collections of structured objects). Regent programs appear to execute sequentially, require no explicit synchronization, and are trivially deadlock-free. Regent's type system catches many common classes of mistakes and guarantees that a program with correct serial execution produces identical results on parallel and distributed machines. We present an optimizing compiler for Regent that translates Regent programs into efficient implementations for Legion, an asynchronous task-based model. Regent employs several novel compiler optimizations to minimize the dynamic overhead of the runtime system and enable efficient operation. We evaluate Regent on three benchmark applications and demonstrate that Regent achieves performance comparable to hand-tuned Legion.Keywords
Funding Information
- National Nuclear Security Administration (DE-NA0002373-1)
- National Science Foundation (0960306)
- U.S. Department of Energy (DE-AC52-06NA25396)
This publication has 27 references indexed in Scilit:
- Language support for dynamic, hierarchical data partitioningPublished by Association for Computing Machinery (ACM) ,2013
- TerraPublished by Association for Computing Machinery (ACM) ,2013
- Subregion Analysis and Bounds Check Elimination for High Level ArraysLecture Notes in Computer Science, 2011
- StarPU: a unified platform for task scheduling on heterogeneous multicore architecturesConcurrency and Computation: Practice and Experience, 2010
- A type and effect system for deterministic parallel JavaPublished by Association for Computing Machinery (ACM) ,2009
- Parallel Programmability and the Chapel LanguageThe International Journal of High Performance Computing Applications, 2007
- MetaML and multi-stage programming with explicit annotationsTheoretical Computer Science, 2000
- The design, implementation, and evaluation of JadeACM Transactions on Programming Languages and Systems, 1998
- Lua—An Extensible Extension LanguageSoftware: Practice and Experience, 1996
- CHARM++ACM SIGPLAN Notices, 1993