Regent: A High-Productivity Programming Language for HPC with Logical Regions

被引:48
|
作者
Slaughter, Elliott [1 ]
Lee, Wonchan [1 ]
Treichler, Sean [1 ]
Bauer, Michael [2 ]
Aiken, Alex [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
[2] NVIDIA Res, Santa Clara, CA USA
关键词
Regent; Legion; logical regions; task-based runtimes;
D O I
10.1145/2807591.2807629
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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.
引用
收藏
页数:12
相关论文
共 50 条