SPERLI
SPERLI stands for Simple Parallel Execution over Remote Links Interface. A job is a set of ranks, each a process on a listed machine, that send each other messages with a tag. It is part of Hilde's standard library. Source of the language: github.com/heikozim/hilde.
- Every connection is TLS 1.3 with a certificate on both sides; a rank joins with a token the launcher signed. The keys of a job are composite signatures (ML-DSA-44 with Ed25519).
- The launcher
hilde-launcher, orhilde run -n N --hosts FILE programme, starts the ranks on the machines of a list, with checkpoints and restarts if asked for. - Collectives: barrier, broadcast, reduce, allreduce, gather and scatter.
- Checkpoints with signed COMMIT files, so a job can resume.
- The wire protocol is documented in English and German, with test vectors.
- Errors of a job have codes from H1601.
- A C layer, libsperli, and a thin Go package over it with cgo, with a benchmark and an example.
The repository has two examples: the sum of a table of 3,000,000 rows over the ranks of a job, in Hilde and in Go, and latency and bandwidth between two ranks over TLS 1.3.
See also MIRCO.