Prepare early
Start eligible provider work before Python reaches the original call, then recheck the temporal contract before observation.
MSc Individual Project · Imperial College London
Pysolate separates each logical run from the physical work that serves it. Eligible Host work may start earlier, and unchanged runtime state may be reused, while control flow, permissions, mutable state, workspace and output remain per run.
One separation, two mechanisms
The Host changes when eligible work starts or which unchanged pages are reused. It does not merge logical runs.
Start eligible provider work before Python reaches the original call, then recheck the temporal contract before observation.
Map one pre-initialised image into private instances. Writes create disposable private dirty pages.
Measured evidence
The measurements locate workload-specific crossover regions rather than universal thresholds.
Independent reads as provider delay increases from 25 to 75 to 200 ms. The 25 ms boundary interval includes zero.
Full-lifecycle time crosses at two instances; after-run proportional set size at four.
With a 1.5 s provider operation and 1.4 s of source still to arrive, Pysolate completes 1.405 s sooner than whole-file serial once analyser capacity is ready.
When Pysolate and EAGER start the same read, their gains against their own serial treatments differ by 14.2 ms. Ordinary Python computation remains in program order in Pysolate.
Image copy-on-write reduces following-request latency from 154.5 ms to 1.22 ms and four-slot retained PSS from 2,049.6 MiB to 237.7 MiB.
What changes; what stays per run
Project artifacts
The dissertation contains the system model, implementation, controlled experiments, a Shimmy application, discussion and limitations. The live deck includes presenter-controlled mechanism animations.