What is Chapel?
Chapel is a programming language designed for productive parallel computing at scale.
Why Chapel? Because it simplifies parallel programming through elegant support for:
- distributed arrays that can leverage thousands of nodes' memories and cores
- a global namespace supporting direct access to local or remote variables
- data parallelism to trivially use the cores of a laptop, cluster, or supercomputer
- task parallelism to create concurrency within a node or across the system
- productive: code tends to be similarly readable/writable as Python
- scalable: runs on laptops, clusters, the cloud, and HPC systems
- fast: performance competes with or beats C/C++ & MPI & OpenMP
- portable: compiles and runs in virtually any *nix environment
- open-source: hosted on GitHub, permissively licensed
New to Chapel?
As an introduction to Chapel, you may want to...- watch an overview talk or browse its slides
- read a blog article or book chapter
- download the release
- browse sample
programs or performance highlights like these:
- view other resources to learn how to trivially write distributed programs like this:
use CyclicDist; // use the Cyclic distribution library
config const n = 100; // use --n=<val> when executing to override this default
forall i in {1..n} dmapped Cyclic(startIdx=1) do
writeln("Hello from iteration ", i, " of ", n, " running on node ", here.id);
What's Hot?
- Chapel 1.22 is now available—download your copy today!
- Browse presentations from PuPPy, PAW-ATM'19, CLSAC'19, NIST, and others
- Read recent papers from FGCS, HICSS, ICIDCA, HPCS, CCGrid, and others
- Watch talks from HPCKP'19, ACCU 2017, CHIUW 2017, and others on YouTube
- Also see: What's New?