Content deleted Content added
→Features: Fixe typo Tags: Reverted Mobile edit Mobile web edit |
m Disambiguating links to General-purpose computing on graphics processing units (link changed to General-purpose computing on graphics processing units (software)) using DisamAssist. |
||
(6 intermediate revisions by 6 users not shown) | |||
Line 2:
{{Infobox programming language
| name = Chapel
| logo =
| logo size = 180px
| screenshot =
| screenshot caption =
Line 11 ⟶ 12:
| designer = David Callahan, Hans Zima, Brad Chamberlain, John Plevyak
| developer = [[Hewlett Packard Enterprise]] (previously [[Cray|Cray Inc.]])
| latest release version = 2.
| latest release date = {{Start date and age|2024|
| latest preview version =
| latest preview date = <!-- {{start date and age|2013|10|17}} -->
Line 27 ⟶ 28:
| wikibooks =
}}
'''Chapel''', the '''Cascade High Productivity Language''', is a [[parallel programming language]] that was developed by [[Cray]],<ref>{{cite book |title=Modular programming languages: 7th Joint Modular Languages Conference |url=https://archive.org/details/modularprogrammi00ligh |url-access=limited |first=David E. |last=Lightfoot |year=2006 |isbn=978-3-540-40927-4 |page=[https://archive.org/details/modularprogrammi00ligh/page/n27 20]|publisher=Springer }}</ref> and later by [[Hewlett Packard Enterprise]] which acquired Cray. It was 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 2010. It is being developed as an [[open-source software|open source]] project, under version 2 of the [[Apache license]].<ref>{{cite web |title=Chapel license information |url=http://chapel-lang.org/license.html |work=chapel-lang.org |access-date=November 15, 2015}}</ref>
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==
Line 37 ⟶ 38:
==Features==
Chapel supports a [[multithreading (computer architecture)|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-
{{Cite conference
| author1 = Bongen Gu
Line 93 ⟶ 94:
[[Category:2009 software]]
[[Category:Free software projects]]
[[Category:Statically typed programming languages]]
|