Granny is a system that enables the fine-grained management of multi-threaded and multi-process applications.
Granny executes unmodified OpenMP and MPI applications, and is able to take control over their execution in order to add/remove threads to the computation, or migrate processes across VMs with minimal overhead.
Granny executes threads and processes as Granules, a lightweight execution abstraction based on WebAssembly. To learn more about Granny, consider reading our NSDI'25 paper.
Granny build on top of the Faasm serverless runtime and its Faaslet abstraction, see Faasm's ATC'20 paper for more details. Granny's main contribution on top of Faasm is faabric, a library for distributed message passing, scheduling, and shared memory.
For more details on how to use Granny, we refer to the following:
- Faasm's Readme - for quick-start instructions.
- Granny Experiments - for end-to-end experiments with Granny.
Granny has been partially funded and developed under the umbrella of the CLOUDSKIN project, which has received funding from the European Union’s Horizon research and innovation programme under grant agreement No 101092646.