Chapel (programming language)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Cray Chapel Logo.png
Paradigm Object-oriented
Partitioned global address space
Parallel programming
Designed by David Callahan, Hans Zima, Brad Chamberlain, John Plevyak
Developer Cray Inc.
First appeared 2009 (2009)
Stable release
1.18 / September 20, 2018; 7 months ago (2018-09-20)
Typing discipline static
Platform multiplatform
OS Mac OS, Linux, POSIX, Windows (with Cygwin)
License Apache 2
Filename extensions .chpl
Influenced by
Ada, C#,[1] C, Fortran, C++, Java, HPF, ZPL, Cray MTA / XMT extensions to C and Fortran.[2]

Chapel, the Cascade High Productivity Language, is a parallel programming language developed by Cray.[3] It is being developed as part of the Cray Cascade project, a participant in DARPA's High Productivity Computing Systems (HPCS) program, which had the goal of increasing supercomputer productivity by the year 2010. It is being developed as an open source project, under version 2 of the Apache license.[4]


Chapel aims to improve the programmability of parallel computers in general and the Cascade system in particular, by providing a higher level of expression than current programming languages do and by improving the separation between algorithmic expression and data structure implementation details.

The language designers aspire for Chapel to bridge the gap between current HPC programming practitioners, who they describe as Fortran, C or C++ users writing procedural code using technologies like OpenMP and MPI on one side, and newly graduating computer programmers who tend to prefer Java, Python or Matlab with only some of them having experience with C++ or C. Chapel should offer the productivity advances offered by the latter suite of languages while not alienating the users of the first.[2]


Chapel supports a multithreaded parallel programming model at a high level by supporting abstractions for data parallelism, task parallelism, and nested parallelism. It enables optimizations for the locality of data and computation in the program via abstractions for data distribution and data-driven placement of subcomputations. It allows for code reuse and generality through object-oriented concepts and generic programming features. For instance, Chapel allows for the declaration of locales.[5]

While Chapel borrows concepts from many preceding languages, its parallel concepts are most closely based on ideas from High Performance Fortran (HPF), ZPL, and the Cray MTA's extensions to Fortran and C.

See also


  1. ^ "Chapel spec (Acknowlegements)" (PDF). Cray Inc. 2015-10-01. Retrieved 2016-01-14.
  2. ^ a b Chamberlain, Bradford L. "A Brief Overview of Chapel" (PDF). Cray Inc. Retrieved 22 April 2015.
  3. ^ Lightfoot, David E. (2006). Modular programming languages: 7th Joint Modular Languages Conference. p. 20. ISBN 978-3-540-40927-4.
  4. ^ "Chapel license". Retrieved November 15, 2015.
  5. ^ Bongen Gu; Wikuan Yu; Yoonsik Kwak (June 28–30, 2011). "Communication and Computation Overlap through Task Synchronization in Multi-locale Chapel Environment". In James J. Park, Laurence T. Yang and Changhoon Lee (ed.). Future Information Technology, Part I: 6th International Conference. Loutraki, Greece: Springer-Verlag. pp. 285–292. doi:10.1007/978-3-642-22333-4&checksum=2f368965a4018fb8f195284f641951bd (inactive 2019-03-14). ISBN 978-3-642-22332-7. Retrieved August 17, 2011.


  • Chamberlain, Bradford L. (2011). "Chapel (Cray Inc. HPCS Language)". In Padua, David (ed.). Encyclopedia of Parallel Computing, Volume 4. Springer. ISBN 9780387097657.

Further reading

  • Brueckner, Rich (August 6, 2014). "Why Chapel for Parallel Programming?". InsideHPC. Retrieved 2015-03-23.
  • Dun, Nan; Taura, K. (2012). "An Empirical Performance Study of Chapel Programming Language". Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), 2012 IEEE 26th International. IEEE: 497–506. doi:10.1109/IPDPSW.2012.64. ISBN 978-1-4673-0974-5. Retrieved 2015-03-23.
  • Padua, David, ed. (2011). Encyclopedia of Parallel Computing. Volume 4. Springer Science & Business Media. pp. 249–256. ISBN 9780387097657.
  • Panagiotopoulou, K.; Loidl, H. W. (2016). "Transparently Resilient Task Parallelism for Chapel" Parallel and Distributed Processing Symposium Workshops (IPDPSW), 2016 IEEE International Symposium, Chicago, IL. doi: 10.1109/IPDPSW.2016.102 ISBN 978-1-5090-3682-0

External links

  • Official website
  • chapel on GitHub
  • 99 bottles of beer in Chapel
Retrieved from ""
This content was retrieved from Wikipedia :
This page is based on the copyrighted Wikipedia article "Chapel (programming language)"; it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA). You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA