![]() |
Realm
A distributed, event-based tasking library
|
"" "" "" "" "" "" "" "" "" ""
Realm is a distributed, event–based tasking runtime for building high-performance applications that span clusters of CPUs, GPUs, and other accelerators.
It began life as the low-level substrate underneath the Legion programming system but is now maintained as a standalone project for developers who want direct, fine-grained control of parallel and heterogeneous machines.
The runtime follows a data-flow execution model: tasks are launched asynchronously and start when their pre-condition events trigger. This design hides network and device latency, maximizes overlap, and gives programmers explicit control over when work becomes runnable.
For a deeper dive see the Realm white-paper published at PACT 2014:
https://cs.stanford.edu/~sjt/pubs/pact14.pdf
The full list of CMake toggles is documented inside CMakeLists.txt. Common switches include:
| Option | Default | Purpose |
|---|---|---|
REALM_ENABLE_CUDA | ON | Build CUDA backend |
REALM_ENABLE_HIP | ON | Build HIP/ROCm backend |
REALM_ENABLE_GASNETEX | ON on Linux | GASNet-EX network |
REALM_ENABLE_UCX | ON on Linux | UCX network |
REALM_ENABLE_MPI | OFF | MPI network |
REALM_LOG_LEVEL | WARNING | Compile-time log level |
TIP: combine
cmake -LAHorccmaketo explore every option.
Libraries, headers and CMake packages will be placed under include/realm, lib/, and share/realm/ so that external projects can consume Realm via
The easiest way to get started is to build the tutorials as part of your normal CMake build tree:
If you have installed Realm (e.g. via make install) you can also build an individual tutorial stand-alone:
Note • The tutorial directories only provide CMake build files. Traditional Makefiles are no longer shipped.
Tutorials currently available
-lg:prof and Legion ProfRealm and its modules share a common set of -ll:<flag> options to tune processor/memory counts at runtime:
Run any Realm executable with -hl:help (high-level) or -ll:help (low-level) to see everything that is available.
make docs or cmake --build . --target docs.tutorials/](tutorials) directory listed above.examples/](examples) and [benchmarks/](benchmarks).Please file an issue or pull request if something is missing or outdated.
We welcome contributions of all kinds – bug reports, documentation fixes, new features, and performance improvements.
ctest passes on your machine and with REALM_ENABLE_SANITIZER if possible.master (or the feature branch you were asked to use).See `CONTRIBUTING.md` for the full guidelines.
Realm is licensed under the Apache License 2.0 – see LICENSE.txt for details.
Commercial and academic use is free; attribution in papers and derivative works is appreciated.
Realm is developed and maintained by the Stanford Legion team with significant contributions from NVIDIA, Los Alamos, Livermore, Sandia, and many members of the broader HPC community.