Batch simulations¶
Array run (Parallel runs) can be set using the curly braces around the target parameter. There are two special characters indicating either an explicit vector of values (ampersand, &) or numpy style range with step as the third value (vertical bar, |).
For instance, to run 3 separate simulationswith scale=1
, scale=2
and scale=3
, the parameter scale should be set to:
… scale … … {1&2&3} …
This parallel run will use the number of processes (threads) that is set using the number_of_process
parameter, e.g. if number_of_process=3
, then each of the 3 simulations runs in their own threads. However, if number_of_process=2
, two processes run first the simulation for scale=1
, and scale=2
. The third simulation with scale=3
will start when the first of the two simulations are completed.
The array_run could also be set in range with defined step:
… scale … … {1|5|1} …
This parallel run will use four simulations with scale=1
, scale=2
, scale=3
and scale=4
. Note the numpy style vector excluding the last index.
When two or more parameters are set to use array runs, CxSystem can run the parallel runs either as multi-dimensional runs or independent runs. For example: suppose a simulation is to be performed for scale {1&2&3}
with init_vms
set to {0,1}
. If multidimension_array_run
flag is set to 1, the following 6 simulations will be run separately:
{scale=1, init_vms=0}, {scale=1, init_vms=1}, {scale=2, init_vms=0}, {scale=2, init_vms=1}, {scale=3, init_vms=0}, {scale=3, init_vms=1}
When multidimension_array_run flag
is set to 0, however, the array_run pattern is different and 5 simulations will be run in parallel:
{scale=1}, {scale=2}, {scale=3}, {init_vms=0}, {init_vms=1}
One might want to run each of the parallel simulations several times, e.g. to observe an effect of random initialization on a particular parameter set.
For this purpose the trials_per_config
should be set to the desired number of runs per configuration.