skip to main content
10.1145/2807591.2807629acmconferencesArticle/Chapter ViewAbstractPublication PagesscConference Proceedingsconference-collections
research-article
Public Access

Regent: a high-productivity programming language for HPC with logical regions

Published:15 November 2015Publication History

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.

References

  1. High Performance Computing Center at Stanford University. http://hpcc.stanford.edu/.Google ScholarGoogle Scholar
  2. UPC language specification v1.2. upc.lbl.gov/docs/user/upc\_spec\_1.2.pdf, 2011.Google ScholarGoogle Scholar
  3. Mantevo project. https://mantevo.org/, Nov. 2014.Google ScholarGoogle Scholar
  4. The Open Community Runtime interface. https://xstackwiki.modelado.org/images/1/13/Ocr-v0.9-spec.pdf, 2014.Google ScholarGoogle Scholar
  5. T. G. Armstrong, J. M. Wozniak, M. Wilde, and I. T. Foster. Compiler techniques for massively scalable implicit task parallelism. In Supercomputing (SC), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Augonnet et al. StarPU: A unified platform for task scheduling on heterogeneous multicore architectures. Concurrency and Computation: Practice and Experience, 23:187--198, Feb. 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Bauer. Legion: Programming Distributed Heterogeneous Architectures with Logical Regions. PhD thesis, Stanford University, 2014.Google ScholarGoogle Scholar
  8. M. Bauer, J. Clark, E. Schkufza, and A. Aiken. Programming the memory hierarchy revisited: Supporting irregular parallelism in Sequoia. In Proceedings of the Symposium on Principles and Practice of Parallel Programming, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Bauer, S. Treichler, E. Slaughter, and A. Aiken. Legion: Expressing locality and independence with logical regions. In Supercomputing (SC), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Bauer, S. Treichler, E. Slaughter, and A. Aiken. Structure slicing: Extending logical regions with fields. In Supercomputing (SC), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Bocchino et al. A type and effect system for deterministic parallel Java. In OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. L. Bocchino, Jr., S. Heumann, N. Honarmand, S. V. Adve, V. S. Adve, A. Welc, and T. Shpeisman. Safe nondeterminism in a deterministic-by-default parallel language. POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. E. Burton. Consistent finite-volume discretization of hydrodynamics conservation laws for unstructured grids. Technical Report UCRL-JC-118788, Lawrence Livermore National Laboratory, Livermore, CA, 1994.Google ScholarGoogle Scholar
  14. W. Carlson, J. Draper, D. Culler, K. Yelick, E. Brooks, and K. Warren. Introduction to UPC and language specification. UC Berkeley Technical Report: CCS-TR-99-157, 1999.Google ScholarGoogle Scholar
  15. B. Chamberlain, S. Choi, S. Deitz, D. Iten, and V. Litvinov. Authoring user-defined domain maps in Chapel. 2011.Google ScholarGoogle Scholar
  16. B. Chamberlain et al. Parallel programmability and the Chapel language. Int'l Journal of HPC Apps., 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Chandra et al. Type inference for locality analysis of distributed data structures. In PPoPP, pages 11--22, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. P. Charles et al. X10: An object-oriented approach to non-uniform cluster computing. In OOPSLA, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Davison de St. Germain, J. McCorquodale, S. Parker, and C. Johnson. Uintah: a massively parallel problem solving environment. In High-Performance Distributed Computing, 2000. Proceedings. The Ninth International Symposium on, pages 33--41, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Z. DeVito, J. Hegarty, A. Aiken, P. Hanrahan, and J. Vitek. Terra: a multi-stage language for high-performance computing. PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. Edwards and C. Trott. Kokkos: Enabling performance portability across manycore architectures. In Extreme Scaling Workshop (XSW), 2013, pages 18--24, Aug 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. K. Fatahalian et al. Sequoia: Programming the memory hierarchy. In Supercomputing, November 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. R. Ferenbaugh. PENNANT: an unstructured mesh mini-app for advanced architecture research. Concurrency and Computation: Practice and Experience, 2014.Google ScholarGoogle Scholar
  24. R. Ierusalimschy, L. H. De Figueiredo, and W. Celes Filho. Lua - an extensible extension language. Softw., Pract. Exper., 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Joyner, Z. Budimlic, and V. Sarkar. Subregion analysis and bounds check elimination for high level arrays. In Compiler Construction, pages 246--265, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. H. Kaiser, T. Heller, B. Adelstein-Lelbach, A. Serio, and D. Fey. HPX: A task based programming model in a global address space. In Partitioned Global Address Space Programming Models, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. L. Kalé and S. Krishnan. CHARM++: A portable concurrent object oriented system based on C++. In Proceedings of OOPSLA'93, pages 91--108, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Lattner and V. Adve. LLVM: A compilation framework for lifelong program analysis & transformation. In Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04), Palo Alto, California, Mar 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Ren, J. Y. Park, M. Houston, A. Aiken, and W. Dally. A tuning framework for software-managed memory hierarchies. In Int'l Conference on Parallel Architectures and Compilation Techniques, pages 280--291, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. C. Rinard and M. S. Lam. The design, implementation, and evaluation of Jade. ACM Trans. Program. Lang. Syst., 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Snir, S. Otto, S. Huss-Lederman, D. Walker, and J. Dongarra. MPI-The Complete Reference. MIT Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. Taha and T. Sheard. MetaML and multi-stage programming with explicit annotations. Theoretical Computer Science, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Treichler, M. Bauer, and A. Aiken. Language support for dynamic, hierarchical data partitioning. In Object Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. J. M. Wozniak, T. G. Armstrong, M. Wilde, D. S. Katz, E. Lusk, and I. T. Foster. Swift/T: Large-scale application composition via distributed-memory dataflow processing. In Cluster, Cloud and Grid Computing (CCGrid), 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. K. Yelick et al. Titanium: A high-performance Java dialect. In Workshop on Java for High-Performance Network Computing, 1998.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Regent: a high-productivity programming language for HPC with logical regions

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            SC '15: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis
            November 2015
            985 pages
            ISBN:9781450337236
            DOI:10.1145/2807591
            • General Chair:
            • Jackie Kern,
            • Program Chair:
            • Jeffrey S. Vetter

            Copyright © 2015 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 15 November 2015

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            SC '15 Paper Acceptance Rate79of358submissions,22%Overall Acceptance Rate1,516of6,373submissions,24%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader