Skip to content

Elastic resources management release 27 of August 2022

Compare
Choose a tag to compare
@amc1999 amc1999 released this 27 Aug 12:08
· 715 commits to master since this release

Elastic resources management release, 27 of August 2022

20220827 : v1.11.0

This release is recommended for model developers:

  • helps to improve code quality by eliminating warnings.
  • provides tools and documentation for detailed event tracing.

It is also contains first version of elastic resources management for cloud deployment.

Warnings eliminated from non-model code

Fixing warnings when building a model can help improve code quality and robustness.

A 'no warnings' approach to model code helps identify issues in new model code because warnings from the new code stand out.

The test_models utility facilitates a 'no warnings' approach by visually highlighting non-zero counts of warnings. See Test Models · openmpp/openmpp.github.io Wiki · GitHub.

Previous releases of OpenM++ could compromise a 'no warnings' approach because of spurious (benign) warnings produced by non-model code.

In this version, warnings from non-model code have been eliminated in a large test suite of models, including several complex models, in both Windows (MSVC) and Linux (gcc).

OpenM++ compiler warning issued if a member function is used in the declaration of an identity attribute

The OpenM++ compiler will issue a warning if model code uses an entity member function in the declaration of an identity attribute.
The warning message looks like this:

../code/SyntaxProbes.mpp(479): warning : call to member function 'compute_stuff' in declaration of identity attribute 'stuff'. Consider using global function instead.

If a member function uses an attribute in its function body, changes in that attribute will not cause the identity attribute to be updated.
If a global function is used instead and attributes passed explicitly to it, consistency is assured.

Event Trace

OpenM++ models can write detailed information to a ‘trace file’ to probe the evolution of entities during a simulation.
This can help model developers verify correctness and understand anomalies in model results,
including large time-based runs which are infeasible in debug mode.
For more please see our wiki topic Event Trace · openmpp/openmpp.github.io Wiki · GitHub

Reversion of previous change to COERCE macro

Changes made to the COERCE macro in 2021-03-05 eliminated some C++ compiler warnings in model code.

Recent testing of a model not in our test suite revealed that these changes cause undesired behaviour in some uses of COERCE in model code.

Specifically, if a floating-point argument is given to COERCE, the fractional part will be truncated in ompp.

In this release, the COERCE macro has been reverted to its previous behaviour, and the fractional part (if any) is preserved.

Incidentally, Modgen developers should provide simple expressions to COERCE having no side effects (e.g. no call to RandUniform) because the Modgen implementation of COERCE may cause double evaluation of the argument expression.

Elastic resource management

This release contains first version of elastic resource management for cloud deployment. It does allow to start and stop computational resources on demand to reduce cloud experiences.

It is a beta version and next release may contain additional functionality and documentation.

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.