Initializing help system before first use

The Model and Scenario Data Management

Each FICO® Xpress Insight app has a main model implemented in Mosel or Python which defines the scenario data schema for the app. For more on Xpress Insight workers, see Concepts and Components.
The main model also implements execution modes which are functions or code paths that manipulate the scenario data when the scenario is executed as a job. The user can trigger an execution mode to load data into a scenario, solve the optimization problem defined by the scenario data, or perform some other custom logic on the scenario data.

Scenario Execution and Job Scheduling

When scenario execution is initiated, via the app's user interface or the REST API, the scenario is locked to prevent further changes to its data and a job is created. The job descriptor will include the specific execution mode that was requested when the execution was initiated. The job is added to job queue and will be visible on the JOBS page of the user interface.

Insight can execute jobs on one or more execution workers. The worker or workers chosen to execute the job depends on the execution mode of the job and how that execution mode has been mapped to the available workers.

An execution mode is mapped to an execution service. An execution service is configured to group one or more workers for a common purpose. When a job is executed, the mode to service and service to workers mappings are resolved to the possible workers that can run the job.

Insight applies both job and thread count based capacity scheduling based on the following rules:
  • Each worker is configured with a limit on the number of concurrent jobs it can execute, and a limit on the total number of CPU threads the jobs can consume.
  • Each service to worker mapping also has configurable job and thread count limits which can be used to assign sub-set of a workers capacity to the service.
  • The effective limit on job and thread count for a given service and worker is MIN (worker limit, server to worker mapping limit).
  • Either or both of job and thread count limits can be set to unlimited for the worker and server to worker mapping. If the limit on both worker and server to worker mapping is set to unlimited then the effective limit is unlimited.
  • A job can only be scheduled on a worker if the current number of concurrent jobs executing via the same service is less than the effective limit.
  • If the jobs execution mode declares a thread count then the job can only be scheduled on a worker where the currently utilized threads is at least the value of that thread count below the effective thread limit.
  • An execution mode can optionally declare the thread count it intends to consume.
  • An execution mode that doesn't declare a thread count is considered to consume all remaining available threads on a thread-limited worker, and no more jobs will be assigned until that job completes.

Examples

    • Worker threads=unlimited, jobs=unlimited
    • Service-worker threads=unlimited, jobs=2
    • Exec mode threads=unspecified
    A maximum of 2 concurrent jobs of that mode will be scheduled on the worker without limit on the number of threads
    • Worker threads=32, jobs=unlimited
    • Service-worker threads=16, jobs=unlimited
    • Exec mode threads=4
    A maximum of 4 concurrent jobs of that mode will be scheduled on the worker, each with 4 threads assigned
    • Worker threads=unlimited, jobs=unlimited
    • Service-worker threads=unlimited, jobs=unlimited
    • Exec mode threads=4
    Unlimited number of jobs of that mode will be scheduled on the worker, each with 4 threads assigned
    • Worker threads=32, jobs=unlimited
    • Service-worker threads=unlimited, jobs=unlimited
    • Exec mode threads=unspecified
    A maximum of 1 job of that mode will be scheduled on the worker with 32 threads assigned

© 2001-2022 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.