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:
- 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
- a global namespace supporting direct access to local or remote variables
- GPU programming in a vendor-neutral manner using the same features as above
- distributed arrays that can leverage thousands of nodes' memories and cores
- 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 conventional HPC programming models
- portable: compiles and runs in virtually any *nix environment
- open-source: hosted on GitHub, permissively licensed
- production-ready: used in real-world applications spanning diverse fields
New to Chapel?
As an introduction to Chapel, you may want to...- watch an overview talk or browse its slides
- read a chapter-length introduction to Chapel
- learn about projects powered by Chapel
- read about GPU programming in Chapel, or watch a recent talk or demo about it
- check out performance
highlights like these:
- browse sample programs or learn how to write distributed programs like this one:
use CyclicDist; // use the Cyclic distribution library config const n = 100; // use --n=<val> when executing to override this default forall i in Cyclic.createDomain(1..n) do writeln("Hello from iteration ", i, " of ", n, " running on node ", here.id);
What's Hot?
- New interviews describe Chapel's use in aircfraft design and coral reef health
- Chapel 2.2 is out now! Read its release announcement or download a copy
- Check out this interview about Chapel published by HPCwire
- Catch up on recent highlights in our new quarterly newsletter
- Learn to program GPUs in Chapel from this HPE Dev Meetup talk and demos
- If you missed ChapelCon
'24 be sure to check out:
- Paul Sathre's excellent keynote talk [slides | video]
- Engin Kayrakloglu's blog article summarizing the event
- Brad Chamberlain's annual State of the Project talk
- Tutorial videos for Chapel and Arkouda
- Slide and video links for all of the submitted talks
- Doing science in Python and needing more speed/scale?
Maybe we can help?
- Also see: What's New?