Multiprocessing

If you want to scan a wider range of conditions then Crispulator.jl's multiprocessing capabilities can come in handy. Say you wanted to re-run one of the experiments from the paper, e.g. Fig 11, we need to scan a decent number of conditions to generate the data. Accelerating this process by allowing the simulation to run on many cores at once can help make it more feasible. We can do this by supplying Julia with the -p flag followed by an integer of the number of additional cores we want to use.

julia -p 1 run.jl exp growth_sensitivity_library.jl growth_sensitivity_lib.csv
[ Info: Activating simulation environment
[ Info: Instantiating environment
[ Info: Loading simulation framework
[ Info: Using 2 threads
[ Info: Loading analysis code
[ Info: Running growth_sensitivity_library.jl and saving output in growth_sensitivity_lib_30393bd_dirty.csv
[ Info: Constructing CSV
[ Info: Done

So in this case we'll be using 1+1 cores to run the simulation. Naturally, on a big workstation/HPC you can scale up much more.

Warning

Crispulator.jl can start to gobble up a lot of RAM with many cores. I would try increasing by one or two to see how the memory usage scales prior to trying to use all cores with the -p auto flag.

The output will be saved to the provided filename (with a suffix describing the state of the git repository).