simrun¶
The kinds of the run layer as task types of simrun.
simrun runs the tasks of a workflow on a cluster; this module registers the
thirteen kinds of python -m sbmlsim.run (sbmlsim.run) as its task types
sbmlsim.<kind>, entry points of the group simrun.task_types in the
pyproject.toml of sbmlsim, see the plugins of simrun. The settings of a task
are the spec of its kind, and plan is the plan of the kind, which simrun's
client calls before it submits a task.
A splittable kind (fit, identifiability, scan, sensitivity,
uncertainty) is split: simrun's workers compute its units with
sbmlsim.run.compute_unit and its merge merges them with sbmlsim.run.merge.
Every other kind (simulate, fisher, report, petab, adopt, factory,
credibility, release)
runs as the command
(simrun-exec runs it, {settings}, {out} and {input} filled by simrun)
python -m sbmlsim.run <kind> {settings} --out {out}/out
--summary {out}/summary.json --resume --input={input}
in which --resume lets a retry after an eviction continue the run it finds
and starts a run in an empty output.
A task writes the output of its run into its output port out, the directory
out/out of the task (OUTPUT), which a task downstream reads as the input
<task>.out, e.g. the fit of an identifiability analysis. The run, the command
of an unsplit task or the merge of a split one, also writes its summary to
out/summary.json, the summary of the task which simrun compare reads.
The resource hints are the maximum resident memory of a run on one worker
(/usr/bin/time -v, python 3.14 on linux, the HCTZ project
examples.hctz_fitting.project, --workers 1) times 1.5, rounded up to
0.5 GiB: the fit of the subset PK with 4 repeats 0.36 GiB, the scan dose
0.37 GiB, the sensitivity sobol 0.38 GiB, the uncertainty cl 0.38 GiB, the
simulation of the three experiments 0.38 GiB and the report of the fit with
its figures 0.48 GiB, so 1 GiB per worker for every kind. The build of a release (release) runs
the analyses of the release in its own processes and is hinted alike.
The kind verify is no task type: it compares the dumps of two environments, a
task type comes when a workflow needs it. The base memory is
the process of simrun's worker besides the processes of its units, 0.10 GiB
measured with this module imported, 0.5 GiB.
This module imports simrun; import sbmlsim and sbmlsim.run do not import
it, only simrun's loading of the entry points and the tests do.
simulate_plan
¶
Plan a simulation of the experiments of a project, see sbmlsim.run.plan.
fit_count_units
¶
Count the units of a planned fit, see sbmlsim.run.count_units.
fit_compute_unit
¶
Compute one unit of a fit, see sbmlsim.run.compute_unit.
identifiability_plan
¶
Plan a profile likelihood: its parameters and units.
identifiability_count_units
¶
Count the units of a planned profile likelihood, one per parameter.
identifiability_compute_unit
¶
Compute the profile of one parameter.
identifiability_merge
¶
Merge the profiles of a profile likelihood.
factory_plan
¶
Plan a build of the models of a project, see sbmlsim.run.plan.
credibility_plan
¶
Plan an assessment of the credibility, see sbmlsim.run.plan.
release_plan
¶
Plan the build of a release of a project, see sbmlsim.run.plan.
scan_count_units
¶
Count the units of a planned scan, see sbmlsim.run.count_units.
scan_compute_unit
¶
Compute one block of the points of a scan.
sensitivity_plan
¶
Plan a sensitivity analysis: the hash of its scan and its units.
sensitivity_count_units
¶
Count the units of a planned sensitivity analysis.
sensitivity_compute_unit
¶
Compute one block of the points of the scan of a sensitivity analysis.
sensitivity_merge
¶
Merge the blocks of a sensitivity analysis and compute its indices.
uncertainty_plan
¶
Plan an uncertainty propagation: its seed and its units.
uncertainty_count_units
¶
Count the units of a planned uncertainty propagation.
uncertainty_compute_unit
¶
Compute one block of the draws of an uncertainty propagation.
uncertainty_merge
¶
Merge the blocks of an uncertainty propagation into its result.