Using and Administering


Workload Management API

The workload management API consists of three subroutines, ll_control, ll_start_job, and ll_terminate_job. The ll_control subroutine can be used to perform most of the LoadLeveler control operations and is designed for general use. The ll_start_job, and ll_terminate_job subroutines are intended to be used in conjunction with an external scheduler.

To use an external scheduler, you must specify the following keyword in the global LoadLeveler configuration file:

SCHEDULER_API = YES

Specifying YES disables the default LoadLeveler scheduling algorithm. When you disable the default LoadLeveler scheduler, jobs do not start unless requested to do so by the ll_start_job subroutine.

You can toggle between the default LoadLeveler scheduler and an external scheduler.

If you are running the default LoadLeveler scheduler, this is how you can switch to an external scheduler:

  1. In the configuration file, set SCHEDULER_API = YES
  2. On the central manager machine, issue the llctl -g stop and then llctl -g start commands

If you are running an external scheduler, this is how you can re-enable the LoadLeveler scheduling algorithm:

  1. In the configuration file, set SCHEDULER_API = NO
  2. On the central manager machine, issue the llctl -g stop and then llctl -g start commands

Note that the ll_start_job and ll_terminate_job subroutines automatically connect to an alternate central manager if they cannot contact the primary central manager.

An example of an external scheduler you can use is the Extensible Argonne Scheduling sYstem (EASY), developed by Argonne National Laboratory and available as public domain code.

You should use ll_start_job and ll_terminate_job in conjuction with the query API. The query API collects information regarding which machines are available and which jobs need to be scheduled. See Query API for more information.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]