Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Chapel (programming language)

From Wikipedia, the free encyclopedia
Parallel programming language
Chapel
ParadigmObject-oriented
Partitioned global address space
Parallel programming
Designed byDavid Callahan, Hans Zima, Brad Chamberlain, John Plevyak
DeveloperHewlett Packard Enterprise (previouslyCray Inc.)
First appeared2009; 16 years ago (2009)
Stable release
2.6.0 / September 18, 2025; 2 months ago (2025-09-18)
Typing disciplinestatic
inferred
Platformmultiplatform, includingAmazon Web Services,HPE Cray EX
OSMac OS,Linux,POSIX,Windows (withCygwin),NetBSD
LicenseApache License 2.0
Filename extensions.chpl
Websitechapel-lang.org
Influenced by
Ada,C#,[1]C,Fortran,C++,Java,HPF,ZPL,Cray MTA /XMT extensions to C and Fortran.[2]

Chapel, theCascade High Productivity Language, is aparallel programming language that was developed byCray,[3] and later byHewlett Packard Enterprise which acquired Cray. It was being developed as part of the Cray Cascade project, a participant inDARPA'sHigh Productivity Computing Systems (HPCS) program, which had the goal of increasingsupercomputer productivity by 2010. It is being developed as anopen source project, under version 2 of theApache license.[4]

The Chapel compiler is written inC andC++ (C++14). The backend (i.e. the optimizer) isLLVM, written in C++. Python 3.7 or newer is required for some optional components such Chapel’s test system and c2chapel, a tool to generate Cbindings for Chapel. By default Chapel compiles to binary executables, but it can also compile to C code, and then LLVM is not used. Chapel code can be compiled to libraries to be callable from C, or Fortran or e.g. Python also supported. Chapel supportsGPU programming through code generation for NVIDIA and AMD graphics processing units.[5]

Goals

[edit]

Chapel aims to improve the programmability ofparallel 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 anddata structure implementation details.

The language designers aspire for Chapel to bridge the gap between currenthigh-performance computing (HPC) programming practitioners, who they describe as Fortran, C or C++ users writingprocedural code using technologies likeOpenMP andMPI 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]

Features

[edit]

Chapel supports amultithreaded parallel programming model at a high level by supporting abstractions fordata parallelism,task parallelism, andnested parallelism. It enables optimizations for thelocality of data and computation in the program via abstractions for data distribution anddata-driven placement of subcomputations. It allows forcode reuse and generality throughobject-oriented concepts andgeneric programming features. For instance, Chapel allows for the declaration oflocales.[6]

While Chapel borrows concepts from many preceding languages, its parallel concepts are most closely based on ideas fromHigh Performance Fortran (HPF),ZPL, and theCray MTA's extensions toFortran andC.

See also

[edit]

Notes

[edit]
  1. ^"Chapel spec (Acknowledgments)"(PDF). Cray Inc. 2015-10-01. Retrieved2016-01-14.
  2. ^abChamberlain, Bradford L."A Brief Overview of Chapel"(PDF). Cray Inc. Retrieved22 April 2015.
  3. ^Lightfoot, David E. (2006).Modular programming languages: 7th Joint Modular Languages Conference. Springer. p. 20.ISBN 978-3-540-40927-4.
  4. ^"Chapel license information".chapel-lang.org. RetrievedNovember 15, 2015.
  5. ^"Chapel Technote: GPU Programming". Hewlett Packard Enterprise. 2023-09-28. Retrieved2023-11-03.
  6. ^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_37.ISBN 978-3-642-22332-7.

References

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

Further reading

[edit]

External links

[edit]
General
Levels
Multithreading
Theory
Elements
Coordination
Programming
Hardware
APIs
Problems
Free
Discontinued
Proprietary
Retrieved from "https://en.wikipedia.org/w/index.php?title=Chapel_(programming_language)&oldid=1317373332"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp