In P , multiple parallelism layers are implemented: a ne-grained layer to bene t from shared memory, an intermediate layer to bene t from fast communication within a group of nodes, and a coarse-grained layer to interconnect multiple groups of nodes. Fine-grained parallelism is performed with OpenMP 119 in almost every single routine. en, to go beyond a single compute node, P does not use the usual single program/multiple data (SPMD) paradigm. A task-based parallelism framework is implemented with the ZeroMQ library. 120 e single-node instance runs a compute process as well as a task server process, while helper programs can be spawned asynchronously on di erent (heterogeneous) machines to run a distributed calculation. e helper programs can connect via ZeroMQ to the task server at any time, and contribute to a running calculation. As the ZeroMQ library does not take full advantage of the low latency hardware present in HPC facilities, the helper programs are parallelized also with the message passing interface 121 (MPI) for fast communication among multiple client nodes, typically for fast broadcasting of large data structures.