Content deleted Content added
No edit summary |
m Disambiguating links to General-purpose computing on graphics processing units (link changed to General-purpose computing on graphics processing units (software)) using DisamAssist. |
||
(39 intermediate revisions by 28 users not shown) | |||
Line 1:
{{Short description|Parallel programming language}}
{{Infobox programming language
| logo size = 180px
| screenshot = ▼
| scope =
| latest preview date = <!-- {{start date and age|2013|10|17}} --> | platform = multiplatform, including [[Amazon Web Services]], [[HPE Cray EX]]
}}
'''Chapel''', the '''Cascade High Productivity Language''', is a [[parallel programming language]] that was developed by [[Cray]]
The Chapel compiler is written in [[C (programming language)|C]] and [[C++]] ([[C++14]]). The backend (i.e. the optimizer) is [[LLVM]], 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 C [[language binding|bindings]] 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 supports [[General-purpose computing on graphics processing units (software)|GPU programming]] through code generation for NVIDIA and AMD graphics processing units.<ref name="GPUProgamming">{{cite web|title=Chapel Technote: GPU Programming|url=https://chapel-lang.org/docs/technotes/gpu.html|date=2023-09-28|access-date=2023-11-03|publisher=Hewlett Packard Enterprise}}</ref>
==Goals==
Chapel aims to improve the programmability of [[parallel computer]]s 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 [[
==Features==
Chapel supports a [[
{{Cite conference
| author1 = Bongen Gu
Line 40 ⟶ 44:
| author3 = Yoonsik Kwak
| title = Communication and Computation Overlap through Task Synchronization in Multi-locale Chapel Environment
|
| editor = James J. Park, Laurence T. Yang and Changhoon Lee
| pages = 285–292
| publisher = Springer-Verlag
|
| date = June 28–30, 2011
| ___location = Loutraki, Greece
Line 53 ⟶ 57:
While Chapel borrows concepts from many preceding languages, its parallel concepts are most closely based on ideas from [[High Performance Fortran]] (HPF), [[ZPL (programming language)|ZPL]], and the [[Cray MTA-2|Cray MTA]]'s extensions to [[Fortran]] and [[C (programming language)|C]].
==
{{Portal|Free and open-source software}}
* [[Coarray Fortran]]
Line 68 ⟶ 72:
==Further reading==
*{{cite news |title=Why Chapel for Parallel Programming? |date=August 6, 2014 |first=Rich |last=Brueckner |work=InsideHPC |url=http://insidehpc.com/2014/08/chapel-parallel-programming/ |
*{{cite
*{{cite book |editor=Padua, David |title=Encyclopedia of Parallel Computing |volume=
*Panagiotopoulou, K.; Loidl, H. W. (2016). [https://ieeexplore.ieee.org/document/7530055/ "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|
* {{GitHub|chapel-lang/chapel}}
* [http://99-bottles-of-beer.net/language-chapel-1215.html 99 bottles of beer in Chapel]
Line 90 ⟶ 94:
[[Category:2009 software]]
[[Category:Free software projects]]
[[Category:Statically typed programming languages]]
|