Skip to content

Model runs comparison, first version: 10 of October 2023

Compare
Choose a tag to compare
@amc1999 amc1999 released this 06 Oct 01:18
· 467 commits to master since this release

Model runs comparison, first version: 10 of October 2023

20231005 : v1.15.5

There are multiple improvements and bug fixes in that release.
It is recommended for model developers and for model users who may want to model run comparison.

Changes in that release:

  • c++ core: implement suppress/retain of derived parameters exported as tables
  • c++ core: new EventTrace filter SelectedEntityKinds
  • c++ core: implement order by attribute in entity sets
  • c++ core: revised event dependency report
  • c++ core: experimental option for alternate attribute dependency implementation
  • c++ core: fix model run error if database contain multiple models (error introduced in May 2023)
  • c++ core: use only completed or in progress runs as base run
  • UI and oms API: output table run comparison
  • go oms API: allow to calculate arbitrary comparison or ad hoc measure
  • UI: bug fix : long dimension truncated in UI
  • UI and oms API: Fix data loss during run delete
  • UI and oms API: do not use failed runs as base run
  • UI: automatically lock-unlock input scenario on parameter edit and note edit
  • UI: automatically lock-unlock input scenario on parameter upload
  • UI: do not allow to open note editor and edit parameter values at the same time
  • UI: microdata: use boolean attributes as dimensions
  • Docker: use git version tag to build release
  • multiple bug fixes

Implement suppress/retain of derived parameters exported as tables

Derived parameters exported as tables using parameters_to_tables can now be used in tables_suppress / tables_retain statements.

New EventTrace filter SelectedEntityKinds

Event trace output can now be optionally filtered by the kind of entity, e.g. Person. This can be helpful in models with more than one kind of entity.
For more on Event Trace, please see the wiki topic:
Event Trace · openmpp/openmpp.github.io Wiki · GitHub

Revised event dependency report

The file name and content of the event dependency report has been revised.
For more information, see the wiki topic:
Events · openmpp/openmpp.github.io Wiki · GitHub

Implement order by attribute in entity sets

The order clause of an entity_set (aka actor_set) with an attribute argument is now implemented in OpenM++.
It is documented in the Modgen Developer’s Guide.

Experimental option for alternate attribute dependency implementation

An experimental option alternate_attribute_dependency_implementation is included in this release.

It is off by default.

This option activates an alternate ordering of computation which may produce more consistent results for simultaneous changes of interdependent self-scheduling attributes.

This appears to be an obscure condition absent from most model code.

Please contact us if you notice unexplainable differences in model results when probing model results with this option activated.

Output table run comparison

Users can select multiple model runs to compare results.

Model run summary dialog would provide a list of different parameters, output tables and microdata entities, it would also include a list of suppressed (missing) output tables and microdata entities.

In the output table viewer users can see the difference, ratio or percentage ratio of output values. It is also possible to download run comparison results as CSV file.

Through API, for example form R, users can invoke an arbitrary calculation to compare model runs, e.g.: 100 * ( (Pension[variant] - Pension[base]) - (Tax[variant] - Tax[base]) )

Bug fix: long dimension truncated in UI

Thank you to John Than for finding a UI bug when long dimension truncated in UI. The bug was introduced in May and fixed now.

Also UI hot fix released and Steven Kong with active help of John Than demonstrated an ability to instantly build UI hotfixes inside of secure perimeter and deploy it to the end users PCs.

UI and oms API: Fix data loss during run delete

Thank you to Roxanne Garaszczuk who discovered a rare case scenario when deletion of model run in UI can lead to data loss in the database.

Multiple fixes applied to back-end Go web-service (oms) to prevent this situation. Minor changes also applied to UI and c++ model core to prevent race conditions when user delete model run.

UI: automatically lock-unlock input scenario on parameter edit and note edit
UI: automatically lock-unlock input scenario on parameter upload
UI: do not allow to open note editor and edit parameter values at the same time

Based on user experience and UI discussion meetings we simplified model parameter editing process. Before the user has to click on input scenario "unlock" before editing parameter, editing notes or uploading parameter CSV. Now it is done automatically upon clicking on Edit or Upload button. Also an input scenario would be automatically "locked" and ready to run after the user saved all parameters editing.

UI: microdata: use boolean attributes as dimensions

In microdata viewer boolean attributes are now treated as dimensions which allow the user to filter by such attributes, for example to see only microdata where Retired = true.

Docker: use git version tag to build release

Docker build scripts are now properly using git version tag for the build.

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.