Initializing help system before first use

Using Dependencies

Dependencies are zip files which can be uploaded to the Compute Interface and then referenced by one or more jobs.
This feature can reduce the size of data that is duplicated in each job request. Common use cases for this include:
  • Solving multiple Mosel jobs with common input files as a dependency.
  • Solving the same LP/MPS file dependency with different basis or solution files per job.
  • Solving the same LP/MPS file dependency with different control parameters per job.
When a job references a dependency, the following sequence occurs when the job is executed:
  • The working directory is created.
  • Dependency zip file is unzipped into the working directory.
  • Job payload is unzipped into working directory.
  • Job is executed with job parameters.

The dependency acts as a base onto which the job file or files are overlaid. Its possible for the dependency to provide all the files required to execute the job and the job would not need to include a payload itself.

Dependencies are referenced by name.
{
  "id": "my-unique-reference",
  "computeJobType": "SOLVER",
  "dependency": "base 1.zip",
  "solver":
  {
    "resultsToInclude": ["SOLUTION", "ATTRIBUTES"],
	   "controls":
	   {
      "XPRS_MAXTIME": -1800
	   }
  }
}

Uploading Dependencies through the Compute Interface

Dependencies can be uploaded via the Insight user interface. You can upload, list, and delete dependencies associated with a job through the App Attachments window.
  1. Click the cog icon in the grey banner at the top of the Insight Compute Interface window to open the App Attachments window.

  2. Use the controls on the App Attachments window to UPLOAD or DELETE the available dependencies.

  3. Click CLOSE when you have finished editing the Dependencies.

Uploading Dependencies through the REST API

Dependencies can also be uploaded via the REST API.
Note The user must be authenticated with Insight to upload a dependency file.
  1. Locate the compute app by sending a GET request to https://<INSIGHTURL>/insightservices/rest/v1/data/project. This will return a JSON file similar to the example below:
    {
      "start": 0,
      "maxResults": 1,
      "items": [
        {
          "objectType": "PROJECT",
          "id": "<appid>",
          "url": "/insightservices/rest/v1/data/project/<projectURL>",
          "project": null,
          "parent": null,
          "shareStatus": "FULLACCESS",
          "ownerId": null,
          "path": "/FICO© Xpress Insight Compute",
          "state": "ACTIVE",
          "helpUrl": null,
          "modelDataVersion": 0,
          "useProjectNameForAppTitle": true,
          "onlyDefaultTypes": true,
          "type": {
            "name": "Insight Compute",
            "version": "0.0.21"      },
          "hasDataSource": false,
          "extendedProjectInfo": {
            "workbooks": {}      },
          "executionModes": {
            "LOAD": {
              "name": "LOAD",
              "description": "",
              "clearsInputData": true,
              "numberOfThreads": null
            },
            "RUN": {
              "name": "RUN",
              "description": "",
              "clearsInputData": false,
              "numberOfThreads": null
            }
          },
          "scenarioTypes": {
            "SCENARIO": {
              "id": "SCENARIO",
              "name": "SCENARIO",
              "style": {
    
                "borderColor": null,
                "activeBgColor": null,
                "inactiveBgColor": null,
                "textColor-hover": null,
                "textColor": null
              },
              "icons": {
                "loaded": null,
                "unloaded": null,
                "executed": null,
                "loaded-hover": null,
                "executed-hover": null,
                "unloaded-hover": null
              },
              "operations": {
                "LOCATION": false,
                "DRAG": false,
                "CLONE": false,
                "RENAME": false,
                "DELETE": false,
                "SELECT": false,
                "RUN": false,
                "LOAD": false,
                "EXPORT": false,
                "CREATE": false,
                "RUNLOG": false,
                "PROPERTIES": false,
                "SHARE": false,
                "OWNER": false,
                "ATTACHMENTS": false
              }
            }
          }
        }
      ]
    }
  2. POST a multi-part form to https://<INSIGHTURL>/insightservices/rest/v1/data/project/{appId}/attachments where the appId is the id of the app highlighted in the example above. The form contains a single field, attachment which should contain the name of the file.
Note Additionally, you can use type.name == "Insight Compute", also highlighted in the example above, to identify the Compute App.