Cluster Jobs

A job is an optimization task performed on behalf of a client. Running a job requires server resources, which must be provisioned in the cluster. If no resources are available, a job can be queued for later processing.

There are two types of jobs:

  • Interactive jobs handle optimization sessions controlled by a client in real time. The client must stay connected for the duration of the session.

  • Batch jobs are also generated by a client, but for offline processing. The client uploads a batch specification to the Cluster Manager containing the input data needed for the optimization task. When the job later runs, it retrieves the relevant data from the Cluster Manager, performs the optimization, and stores optimization results back to the Cluster Manager. A client can then retrieve the results.

The Jobs Page

The Jobs page in the Cluster Manager looks like this:

Job panel
  1. This page shows a table of all jobs that have been created on a Cluster Manager (completed, active, and queued). Each line in the table provides information about a job, including the current status, the creation time, the Gurobi version and algorithm used to solve it, and the API used to create the job. The current job status is shown using an icon:

    imgjobstatus1

    Job has been queued.

    imgjobstatus2

    Job is running.

    imgjobstatus3

    Job has been aborted.

    imgjobstatus4

    Job has failed.

    imgjobstatus5

    Job has successfully completed.

    imgjobstatus6

    Job has been rejected.

    imgjobstatus7

    Job has been disconnected.

    imgjobstatus8

    Job has reached the idle timeout.

    Jobs can be sorted by various attributes by clicking on the corresponding column headers. Up and down arrow icons allow you to select the sorting direction.

    1. Jobs displayed in the table can be filtered using either the Filter box or the Search box. Details can be found in the Filtering and Searching section.

    1. The number of rows of the table.

      When the table has been filtered, two numbers are displayed to the right of the page title showing respectively the number of jobs matching the current filtering and the total number of jobs. If no jobs have been filtered, only the total number of jobs wil be displayed.

  1. When you select a job from the table (highlighted in blue), the tabs below the table allow you to obtain additional information about that job. Choosing a tab brings up the corresponding information. Note that the title of one of the tabs, as well as the information that is displayed under that tab, depends on the optimization algorithm used for that job. Options are MIP, BARRIER, or SIMPLEX.

  2. The LOG button opens a new page displaying a dashboard for the job that includes:

    • A panel containing the optimization log for that job.

    • The Objective graph showing the progress of the best objective over the time.

    • Tabs that provide more details about the job (which are equivalent to tabs shown in (6)

    See the Log section for more details.

Filtering and Searching

Jobs displayed in the table can be filtered using the Filter box and the Search box.

Filtering

The Filter box provides the user with a set of predefined filters as shown below:

imgfilterbtn

When clicking on the left icon of the filter box, a dialog is displayed to edit the filters to apply.

Jobs filter

The content of the filter box varies depending on the job page, whether it is the Cluster jobs, Queue or History job page. The following job filters can be found in all or few of the job pages:

Username

Filter jobs which username matches the specified Username

Application

Filter jobs which application matches the specified Application. The Undefined value can be used to filter jobs not associated with an application.

Job ID

Filter the job which ID equals to the specified Job ID.

Job limit

Specify the maximum number of jobs returned by the server. By default, the limit is set to 200 jobs. Other filter values are 100 or 500 maximum jobs.

Job type

Filter jobs depending on whether they are associated with a batch or not. Possible filter values are:

  • All to not filter jobs on their type.

  • Interactive jobs to filter jobs not associated with a batch.

  • Batch jobs to filter jobs associated with a batch.

Algorithm

Filter jobs depending on the algorithm being applied. Possible values are All algorithms, SIMPLEX, MIP, BARRIER or TUNNING.

Batch ID

Filter jobs associated with a batch which ID equals to the specified Batch ID. If the Batch ID field is left empty, no filtering is performed based on the batch ID.

Node

Filter jobs which node address matches the specified Node. If the Node field is left empty, no filtering is performed based on the node.

Job status

Filter jobs which status matches one of the selected job status. Possible filter values are

  • All statuses to not filter jobs on their status.

  • Aborted to filter jobs aborted by the user.

  • Failed to filter jobs that have failed.

  • Completed to filter jobs that have completed.

  • Disconnected to filter jobs that have been disconnected.

  • Idle timeout to filter jobs withe IDLE_TIMEOUT status.

Solve status

Filter jobs which solve status matches one of the selected job solve status. Possible filter values are All job solve statuses, INIT, COMPLETED, OPTIMIZING, LOADED, OPTIMAL, INFEASIBLE, INF_OR_UNBD, UNBOUNDED, CUTOFF, ITERATION_LIMIT, NODE_LIMIT, TIME_LIMIT, SOLUTION_LIMIT, INTERRUPTED, NUMERIC, SUBOPTIMAL, INPROGRESS, USER_OBJ_LIMIT, WORK_LIMIT, MEM_LIMIT.

Running at

Filter jobs which where running at a specified date. If the Running at checkbox is unchecked, no filtering is applied for this filter and running at fields are disabled. Otherwise, jobs are filtered if their started date is before or equal to the specified date and if their end date os after the selected date.

Time range

Filter jobs which started date are on a specified time range. If the Time range checkbox is unchecked, no filtering is applied on job started date and time range fields are disabled. Otherwise, jobs are filtered if their started date is after the start of the time range and before the end of the time range. The start and end date of the time range are edited with date field respectively left and right to - character. There are few ways for editing the start and end dates:

  • Press the <> to respectively remove or add one day to the edited date.

  • Press any date field to launch a date dialog letting the user edit both start and end dates.

  • Press one of the preset buttons to set the start date to a specific number of days before Today and set the end date to Today.

By default, users having one of the roles ADMIN, SYSADMIN, or READONLY will see all jobs. Other users will only see jobs they have launched. This default filter can be changed from the Filter box.

When the table has been filtered, two numbers are displayed to the right of the page title showing respectively the number of jobs matching the current filtering and the total number of jobs. If no jobs have been filtered, only the total number of jobs wil be displayed.

Searching

The Search box enables users to further refine the results by specifying an arbitrary search string. In order for a job to be displayed, the search string must be present in at least one of the columns in the table for that job, or in the job ID or job batch ID.

Note

It is important to note that filtering with the Filter box is usually applied server side, while searching with the Search box is always performed client side. That means that the searching is done on results that were already filtered by the server, so it it is preferable to use the Filter box first and then use the Search box to refine the results. Using the Search box as an alternative to the Filter box could result in missing items.

Synchronization with page URL

The Cluster Manager creates permalinks for all tables that can be filtered or searched. Changes applied using either the Filter or Search boxes are automatically reflected in the page URL, thus allowing you to copy and paste the URL to easily retrieve the same display later. For example, the URL http://localhost:61080/jobs/main?status=RUNNING would display only jobs that are currently running (assuming the Cluster Manager is running on localhost:61080).

Log and Objective

imglogbtn

The Log button opens the job dashboard. This page displays the optimization log for the job, as well as an Objective progress chart and a set of tabs that allow you to obtain additional information about the job.

Job log

Log

Within the job dashboard, the Log panel shows the optimization log. If the job is still running, new log text is automatically appended as soon as it is available.

imgfullog

If the job ran before you navigated to the Log panel, older log data may not be displayed. The FULL LOG button allows you to fetch and display the log from the beginning.

imgdownloadlog

To download the full job log to a file once the job is completed, click on the DOWNLOAD LOG button.

Objective

The Objective chart shows optimization progress over time by displaying objective values for solutions found by the optimization algorithm. For MIP models, the Objective chart can be switched to show progress in the optimality Gap, using the top-right selection box in the Objective panel.

Aborting Jobs

Jobs can be aborted from the Jobs page with the following steps:

  • Select the job(s) to be aborted (by clicking on the checkbox on the far left of the job display).

    Check jobs
  • Click the abort button.

    Abort
  • Confirm that the selected jobs should be aborted.

    Confirm abort
  • Aborted jobs will show a change of status once the abort has been completed and recorded:

    Aborted jobs

Note

STANDARD users can only abort jobs they launched.

READONLY users cannot abort any jobs.

SYSADMIN and ADMIN users can abort jobs of any users.

Job Queue

Each Compute Server node has a job limit that constrains the number of jobs that can be run simultaneously. When total available capacity in the cluster has been exhausted, new jobs are queued until capacity becomes available. Queued jobs can be viewed in the Queue page:

Jobs queued

imgaqb

A queued job is actually queued in all compatible nodes. The Queue page displays an aggregated view by default, showing only the best position for each job across all nodes. Use the Aggregate queue toggle to see the queue for each individual node.

Non aggregated queue

Queued jobs can be aborted, just like jobs in the Cluster Jobs page. Refer to the Abort job(s) section for details.

Job History

The Cluster jobs page displays running jobs and recently completed jobs. The Job history page gives access to all completed jobs up to a limit in time that is controlled with the History expiration setting in the Data Management settings section.

By default, the Cluster manager stores the completed jobs for the past 30 days.

To access this larger set of jobs, the history page extends the filter box of the Cluster job page with more filters including filtering by starting time or for a specific Gurobi runtime. Refer to the Filtering and Searching section for more details.

Non aggregated queue