Skip to content

0.9.7

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Oct 20:47
89fe81d

Release notes for sbmlsim 0.9.7

sbmlsim

A performance release: the constant parameters and the species of a model are read once per instance of roadrunner instead of on every call of sampling.parameters_of. The simulations are unchanged. The faster JIT of roadrunner, LLJIT, was measured and is not used, roadrunner 2.10 crashes with it (see below).

Performance

  • parameters_of reads the SBML of a model once (#332). sampling.parameters_of serialized the SBML of the instance of roadrunner and parsed it again on every call to list the constant parameters and the species: 4.8 s of the 8.6 s of the initialization of the experiments of the acetaminophen model of pkdb_models (403 kB of SBML), which call it for 133 simulations of their sensitivity designs. The ids are now read once per instance of roadrunner and kept (RoadrunnerSBMLModel.sbml_ids(), an SBMLIds, read again for an instance which replaces r; an edit of the structure of the instance itself, e.g. r.addParameter(...), which sbmlsim never makes, is not tracked). The initialization of the experiments of acetaminophen (the test test_experiments_initialize of pkdb_models) takes 4.1 s instead of 8.3 s; the dumps of the experiments of hctz, dulaglutide and acetaminophen (pkpdsim-verify, for acetaminophen with the reduced selections, its full dump runs out of memory with 0.9.6 as well) are identical to 0.9.6, byte for byte.

Not changed

  • The models are compiled with MCJIT, not LLJIT (#331). roadrunner's LLJIT compiles the dulaglutide model of pkdb_models 6.9 times faster than its default MCJIT (1.5 s instead of 10.4 s, the initialization of its experiments in 2.6 s instead of 10.1 s), and the fits of hctz and dulaglutide at its optimization level NONE are the same as with MCJIT, bit for bit (the same evaluations and costs). But roadrunner 2.10 crashes with it: a process which compiles a model again while an earlier instance of it is alive dies with a segmentation fault in the compiled code of the model, in 3 of 8 fits of the dulaglutide model at the level NONE (the levels LESS, DEFAULT and AGGRESSIVE were fitted once each, without a crash, and not in a loop) and in 1 to 3 of 40 processes of a loop over its experiments at the levels NONE, LESS and AGGRESSIVE (DEFAULT was not run). MCJIT did not crash (0 of 6 fits, 0 of 20 processes of the loop). The higher optimization levels (LESS, DEFAULT, AGGRESSIVE) compile 4 times slower than NONE, do not make the simulations or the fits of hctz and dulaglutide faster and change the fits in the last bits. sbmlsim keeps MCJIT until roadrunner is fixed.