4 ms·
I ended up writing a simple distributed build system (https://github.com/azag0/caf https://github.com/azag0/caf, undocumented) that abstracts this away. (I use
by azag0 9y ago
I ended up writing a simple distributed build system (https://github.com/azag0/caf https://github.com/azag0/caf, undocumented) that abstracts this away. (I use it at a couple of clusters with different batch systems). You define tasks as directories with some input files and a command, which get hashed and define a unique identity. The build system then helps with distributing these tasks to other machines, execution, and collection of processed tasks.
Ultimately though, I rely on some common environment (such as a particular binary existing in PATH) that lives outside the build system and would need to be recreated by whoever who would like to reproduce the calculations. I never looked into abstracting that away with something like Docker.
(I plan to document the build system once it's at least roughly stable and I finish my Phd.)