Release notes for sbmlsim 0.18.1
A process which loads large models needs a fraction of the memory: the memory the compilation of a model freed goes back to the system, and the fit mappings of a project compile its models at its level.
Fixes
- The fit mappings compile at the level of the project (#476).
FitMappingsandselect_mapping_collectionstakejit_optimization, andFitMappings.for_project(project, experiment_classes)creates the fit mappings of a project with its paths and its level (SimulatorSettings.jit_optimization), whichselect_mappingsand the mapping table of the credibility (check_declaration) use. Before sbmlsim 0.18 libroadrunner ran the code of an earlier compilation at another level (sys-bio/roadrunner#1420), which hid that they compiled atO2: the declaration check of a model compiled atO0(creatinine of pkdb_models) needed 4.9 GB and about a minute per model. - The memory a compilation freed goes back to the system (#476). LLVM leaves about 0.7 GB of freed heap per large model, which glibc kept until the process ended.
sbmlsim.memory.release_freed_memoryreturns it (malloc_trim) after every compilation of a model and after an experiment released its results; the declaration check above needs 1.7 GB instead of 3.9 GB atO0. Nothing happens without glibc (macOS, windows). Reported as sys-bio/roadrunner#1438.
O2 stays the default level of the JIT; results do not change.