Skip to content

Model resources tracking release

Compare
Choose a tag to compare
@amc1999 amc1999 released this 18 Jun 02:20
· 795 commits to master since this release

Model resources tracking release 17 of June 2022

20220617 : v1.10.0

This is a minor release of openM++ with emphasis on model resource usage tracking.

Resource use report

The new option resource_use gathers information on resource use by entities, events, sets, and tables during a model run and produces a detailed report in the run log. For more information please the wiki topic Model Resource Use · openmpp/openmpp.github.io Wiki · GitHub

Entity member packing

The new option entity_member_packing can reduce the size of entities by packing their members in an efficient order. For more information please the wiki topic Entity Member Packing · openmpp/openmpp.github.io Wiki · GitHub.

New wiki topic on memory use

A compendium of information about managing memory use in OpenM++ microsimulation models has been added to our wiki at Memory Use · openmpp/openmpp.github.io Wiki · GitHub.

Improved entity member layout for model debugging

When debugging a model using an IDE such as Visual Studio one often examines the attributes of an entity. An entity typically contains many members, including internally generated members, which can make selection of attributes of interest tedious. In this release, the OpenM++ compiler changes the layout of entity members to make it easier to examine the attributes of most interest by placing them at the beginning. The new layout order is as follows:

  • entity_id
  • time
  • age
  • all attributes declared in model code, ordered lexicographically
  • all other members, ordered lexicographically

Note that the new option entity_member_packing changes the layout order to optimize memory use. So, for debugging sessions, it may be worthwhile to have entity member packing turned off. Note that by default entity_member_packing is off

Model run-time bug fixes

There are two bugs fixed in model run-time, both are difficult to reproduce:

  • on Linux Release mode model may crush with certain combination of model scalar parameters due to undefined (by c++ standard) initialization order of thread local and global references
  • occasional deadlock at initialization of MPI model processes due to racing conditions. Example configuration to reproduce: 1 sub-sample, 3 model processes, 4 threads each and exclude root MPI process from modelling job.

Both above bugs may not affect your models.

**New R API and usages examples **

Our existing openMpp R package is 5 years old and suitable mostly for local desktop use. New R API and examples is identical to our Python version. It is a wrapper around oms JSON web-service and it is easy to deploy by installing RStudio Server in cloud, side-by-side with cloud UI.

UI and oms back-end web-service API improvements

  • ability to cancel model run through UI (essential for cloud users)
  • ability to delete model run even it is not completed
  • automatically apply default model run settings (if there are default model run settings)
  • change default parameter layout to keep it to be identical to Modgen (thanks to John Than for help);
  • include model version and create date-time into model meatadata to simplify downstream analysis;
  • detailed model run jobs history can be enabled to detect model failure by exception or resource shortage

Download source code and binaries:

Download release documentation archive:

Download cluster version (MPI):

Linux downloads:

  • Desktop version build on Debian-10 and expected to work on any modern Linux, including Ubuntu 20.04 and RedHat 8
  • Ubuntu downloads would allow you to build or debug your model on Ubuntu Linux (Ubuntu 20.04)
  • Current stable Debian version is Debian 11 which you may want to use if you installing new Linux workstation or server.
  • RedHat downloads build on Rocky Linux 8.5 and tested on RedHat 8.5 (Gnome)
  • Cluster (MPI) Debian-10 version expected to work on any modern Linux with Open MPI version 3+ installed, including RedHat 8.

IMPORTANT:
Full version of OpenM++ source code always included into "Download" links above.
Please do NOT use "Source code (zip)" or "Source code (tar.gz)" archives from "Assets" links below.
It is auto-generated by GitHub release tools and contains only half of OpenM++ source code.