Initializing help system before first use

How Xpress Insight Interacts with a Mosel Model

Xpress Insight executes Mosel models by using the XPRD library to send the model to an xprmsrv instance using the Mosel Distributed Framework.

Every execution job sent from Xpress Insight has an execution mode associated with it. Execution modes are defined within each model using Mosel annotations. When a model is run it can test for the execution mode set and perform different actions based on that.

The model can define any number of custom execution modes but each app is also assigned two standard execution modes. These standard execution modes are LOAD and RUN.

The steps taken to run a scenario are as follows:
  1. Using an available xprmsrv service, a connection to a new Mosel instance is created, applying the requested execution environment configuration for the selection of the worker/service.
  2. Any model resources are copied to the working directory of the remote instance.
  3. The compiled model is sent to the instance and loaded.
  4. The model is executed and it should call insightgetmode to get the execution mode.
  5. Parameters are passed to the model and are available from the beginning of the model.
  6. If the execution mode has clearinput set to true, for example LOAD mode, as the model ends or exits, mminsight captures the data from any entity identified as a managed input.
  7. If the execution mode has clearinput set to false, for example RUN mode:
    1. At insightpopulate, mminsight injects the input data into the model entities marked as input by the schema.
    2. At insightminimize, mminsight disables constraints and adds violation variables as necessary, then calls minimize. When minimize completes, mminsight records the runtime metrics.
    3. At end-model, mminsight captures the results entities and any input entities marked as to be updated on model end.

As a consequence of these execution sequences, managed input entities must be declared prior to calling insightpopulate.

The standard execution modes that are automatically available in all apps have constants associated with them in the model:
  • INSIGHT_MODE_LOAD
  • INSIGHT_MODE_RUN
  • INSIGHT_MODE_NONE

These can be used in a switch statement, for example, to branch based on the execution mode. It is a requirement that a model implement behavior for these standard execution modes, even if the model defines custom execution modes. It is always possible for Xpress Insight users to submit jobs with these standard execution modes.

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.