https://github.com/pnnl/lamellar
Lamellar is an asynchronous tasking runtime for HPC systems developed in RUST
https://github.com/pnnl/lamellar
hpc pgas runtime rust
Last synced: about 1 year ago
JSON representation
Lamellar is an asynchronous tasking runtime for HPC systems developed in RUST
- Host: GitHub
- URL: https://github.com/pnnl/lamellar
- Owner: pnnl
- License: other
- Created: 2020-11-12T00:37:45.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-03T00:49:51.000Z (about 1 year ago)
- Last Synced: 2025-04-12T05:14:03.920Z (about 1 year ago)
- Topics: hpc, pgas, runtime, rust
- Homepage:
- Size: 21.5 KB
- Stars: 18
- Watchers: 10
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
README
Lamellar - Rust HPC runtime
=================================================
Lamellar is an asynchronous tasking runtime for HPC systems developed in RUST
(Crates.io: https://crates.io/crates/lamellar)
(Main runtime repository: https://github.com/pnnl/lamellar-runtime)
SUMMARY
-------
Lamellar is an investigation of the applicability of the Rust systems programming language for HPC as an alternative to C and C++, with a focus on PGAS approaches.
Lamellar provides several different communication patterns to distributed applications.
First, Lamellar allows for sending and executing active messages on remote nodes in a distributed environments.
The runtime supports two forms of active messages:
The first method works with Stable rust and requires the user the register the active message by implementing a runtime exported trait (LamellarAM) and calling a procedural macro (\#[lamellar::am]) on the implementation.
The second method only works on nightly, but allows users to write serializable closures that are transfered and exectued by the runtime without registration
It also exposes the concept of remote memory regions, i.e. allocations of memory that can read/written into by remote nodes.
Lamellar relies on network providers called Lamellae to perform the transfer of data throughout the system.
Currently two such Lamellae exist, one used for single node development ("local"), and another based on the Rust OpenFabrics Interface Transport Layer (ROFI) (https://github.com/pnnl/rofi)
REPOS
------
Runtime: https://github.com/pnnl/lamellar-runtime
Benchmarks: https://github.com/pnnl/lamellar-benchmarks
Rofi: https://github.com/pnnl/rofi
Rofi-sys: https://github.com/pnnl/rofi-sys
STATUS
------
Lamellar is still under development, thus not all intended features are yet
implemented.
CONTACTS
--------
Ryan Friese - ryan.friese@pnnl.gov
Roberto Gioiosa - roberto.gioiosa@pnnl.gov
Mark Raugas - mark.raugas@pnnl.gov
## License
This project is licensed under the BSD License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
This work was supported by the High Performance Data Analytics (HPDA) Program at Pacific Northwest National Laboratory (PNNL),
a multi-program DOE laboratory operated by Battelle.