Monadic Composition for Deterministic, Parallel Batch Processing
Channel: Splash Conference 2017
Date: 30/10/2017

Ryan Scott, Omar Navarro-Leija, Ryan R. Newton, Joseph Devietti
Achieving determinism on real software systems remains difficult. Everyday code interacts with a wide array of nondeterministic sources including those internal to the system (OS system calls, CPU instructions, other processes), external to the system (time, date, network communication), and arising from software abstractions (concurrency, threaded execution, data races). Nondeterminism complicates many tasks, from achieving reliable software builds across systems, to creating reproducible scientific results. Existing approaches to enforcing determinism assume that source code is available or changing the operating system is possible. Several approaches have high overhead as runtime monitoring causes performance to suffer.