Chapel Users Guide (WIP)¶
Overview¶
This Users Guide is written with the goal of providing an intuitive and example-oriented introduction to the Chapel programming language without feeling the need to be overly pedantic or to worry about defining every corner case in the language.
Note
Pardon Our Dust
This users guide is a work-in-progress. We are writing it in a breadth-first manner in order to cover features that are more unique to Chapel sooner. If you’re not already using the master branch of the documentation (which tracks real-time GitHub development), you may find that it contains a more complete set of sections. We welcome feedback and requests on the guide as we go.
The Chapel Users Guide is divided into four main sections:
Base Language¶
This is the core of Chapel and what remains when all features in support of parallelism and locality are removed.
- Hello world: simple console output
- Variable Declarations
- Basic Types: booleans, numbers, and strings
- Literal Values for Basic Types
- Constant Declarations
- Type Aliases
- config Declarations: command-line overrides
- Casts: explicit type conversions
- for-loops: structured serial iteration
- Zippered Iteration
(more to come…)
Task Parallelism¶
These are Chapel’s lower-level features for creating parallel explicitly and synchronizing between them.
(more to come…)
Data Parallelism¶
These are Chapel’s higher-level features for creating parallelism more abstractly using a rich set of data structures.
(more to come…)
Locality¶
These are Chapel’s features for describing how data and tasks should be mapped to the target architecture for the purposes of performance and scalability.
(more to come…)