That&#x27;s good feedback. Although I&#x27;m considering mostly distributed systems, where full reproducability is not possible. 
For single-threaded, deterministic programs (discrete event simulations) where performance is not a measurement point, you can do it with VMs. 
The nicest thing would be to be able to parameterize experiments. Not just re-run them, but change the parameters for different runs.