Skip to content

Model documentation release 13 of February 2024

Choose a tag to compare

@amc1999 amc1999 released this 14 Feb 02:36
· 387 commits to master since this release

Model documentation release 13 of February 2024

20240213 : v1.16.0

Main features of this release:

  • create model documentation as part of model build
  • multiple changes and fixes in c++ and UI to support bilingual models
  • go oms API: compare microdata
  • go oms: add memory resources management to model run queue
  • go and UI: provide storage (disk space) management UI

Other changes:

  • c++ core: special handling for attributes with many enumerators
  • c++ core bilingual: use case sensitive search for translated messages
  • c++ Linux and MacOS makefile: for all models included in openM++ release use Windows-1252 code page
  • c++ core: fix input parameters multiple copies issue (rollback previous change to check run status at digest calculation)
  • c++ core: add -OpenM.Sqlite option for model.exe to simplify running the database connection string
  • c++ core: add -OpenM.SqliteFromBin option for model.exe to simplify running the database connection string
  • c++ core: drop support for legacy SparseTable feature
  • go: re-write delete of model, model run and workset to make it more robust
  • go oms API: add OM_COUNT_IF to conditionally count values in output tables or microdata at calculation and comparison
  • go oms API: allow to use scalar model parameters in output tables or microdata at calculation and comparison
  • go oms: allow to limit number of CPU cores available to the user model run queue
  • go oms API: fix model run queue pause bug, add API call to pause model run queue fro all users
  • go and UI: allow to delete multiple model runs or worksets in UI
  • UI: correctly detect user language (browser language) in UI
  • Docker build: allow to build c++ part from separate git branch

Model Documentation

This release includes a beta version of Model Documentation. Model documentation is built by default and accessible through the OpenM++ UI. It consists of two components which can work synergistically:

  1. A configurable Symbol Reference of generated cross-referenced content on parameters, tables, enumerations, etc.,
  2. optional stand-alone cross-linked authored model documentation which can include downloadable auxiliary material.
    There are two versions of Model Documentation: user-oriented or developer-oriented, selected at build time using an option.

For a complete worked example of "Developer Edition" Model Documentation which combines the two components, see RiskPaths in this release by clicking on the model information icon on the landing page, on the model bar at the top of the UI, or in any context-sensitive information window.

To build the "User Edition" of RiskPaths Model Documentation, comment one line in the file RiskPaths/code/ompp_options.ompp. The RiskPaths worked example is fully French/English bilingual.

The UI opens automatically in the current language of the user’s browser but can be switched in the UI using the drop-down menu at the top right of the UI.

For more information on Model Documentation from the model dev and content dev perspective, please see the main topic in our wiki at
Model Documentation · openmpp/openmpp.github.io Wiki · GitHub.

Please note that the Model Documentation topic on the wiki is under extensive revision and may not reflect this new functionality at the time of this release.

A big shout-out to Claude Nadeau for very helpful feedback and suggested enhancements based on his review of an early alpha version of Model Documentation.

Multiple changes and fixes in c++ and in UI to support bilingual models

Special thanks to Daniel Blanchette who found many missing translations in UI and identified major issue with detecting user default language.

There are still known issues with switching UI language through the top right corner menu, we will be fixing it in the next releases.

Microdata run comparison

It is possible to compare microdata values between different model runs using command line tools and oms API (oms is openM++ web-service).

For example we can:

  • get CSV microdata values calculated as max( Income[variant] - Income[base] ) grouped by Person.Province, Person.AgeGroup
  • get CSV microdata values count_if ( Income[variant] - Income[base] > Parameter.Threshold ) grouped by Person.Gender

UI for microdata comparison will be implemented soon.

Enchantments elastic resource management (model run queue)

If you are using ERM (elastic resource management) for your cloud resources then now it is also possible:

  • specify model memory requirements to select servers for your model run
  • limit max number of CPU cores allowed for user(s)
  • assign storage quota (disk space limit) to users and to entire cluster
  • user can see and cleanup storage space in UI
  • user can delete multiple model runs or input scenario, delete all download or upload files through UI

More enchantments to ERM will be included into the next release.

More convenient options to specify model SQLite database path

By default model opens SQLIte database file ModelName.sqlite in current working directory. If it is not a default case then user must specify database connection string as model command line option (or ini-file option) and that connection string may be unnecessary complicated.

Thanks to Dominic Grenier who provide us multiple suggestions, we have now a simplified options for typical use cases. For example:

RiskPaths.exe  -db path/to/any-file-name.sqlite
my/models/RiskPaths/ompp/bin/RiskPathsD.exe -OpenM.SqliteFromBin

second option above allow to keep SQLite database file next to model.exe and not in the current directory.

Attributes with many enumerators

Attributes publishable as microdata are now filtered by configurable maximum enumerators (option microdata_max_enumerators, default 1000).

Microdata Output · openmpp/openmpp.github.io Wiki · GitHub

Download source code and binaries:

Download release documentation archive:

Download cluster version (MPI):

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.