Using and Administering

ll_start_job Subroutine

Purpose

This subroutine tells the LoadLeveler negotiator to start a job on the specified nodes.

Library

LoadLeveler API library libllapi.a

Syntax

  #include "llapi.h"
 
  int ll_start_job(LL_start_job_info *ptr);

Parameters

ptr
Specifies the pointer to the LL_start_job_info structure that was allocated by the caller. The LL_start_job_info members are:

int version_num
Represents the version number of the LL_start_job_info structure. Should be set to LL_PROC_VERSION

LL_STEP_ID StepId
Represents the step ID of the job step to be started.

char **nodeList
Is a pointer to an array of node names where the job will be started. The first member of the array is the parallel master node. The array must be ended with a NULL.

Description

You must set SCHEDULER_API = YES in the global configuration file to use this subroutine.

Only jobs steps currently in the Idle state are started.

Only processes having the LoadLeveler administrator user ID can invoke this subroutine.

An external scheduler uses this subroutine in conjunction with the ll_get_nodes and ll_get_jobs subroutines of the query API. The query API returns information about which machines are avialable for scheduling and which jobs are currently in the job queue waiting to be scheduled.

Return Values

This subroutines return a value of zero to indicate the start job request was accepted by the negotiator. However, a return code of zero does not necessarily imply the job started. You can use the llq command to verify the job started. Otherwise, this subroutine returns an integer value defined in the llapi.h file.

Error Values

-1
There is an error in the input parameter.

-2
The subroutine cannot connect to the central manager.

-4
An error occurred reading parameters from the administration or the configuration file.

-5
The negotiator cannot find the specified StepId in the negotiator job queue.

-6
A data transmission failure occurred.

-7
The subroutine cannot authorize the action because you are not a LoadLeveler administrator.

-8
The job object version number is incorrect.

-9
The StepId is not in the Idle state.

-10
One of the nodes specified is not available to run the job.

-11
One of the nodes specified does not have an available initiator for the class of the job.

-12
For one of the nodes specified, the requirements statement does not satisfy the job requirements.

-13
The number of nodes specified was less than the minimum or more than the maximum requested by the job.

-14
The LoadLeveler default scheduler is enabled; that is, SCHEDULING_API=NO.

-15
The same node was specified twice in ll_start_job nodeList.

Examples

Makefiles and examples which use this subroutine are located in the samples/llsch subdirectory of the release directory. The examples include the executable sch_api, which invokes the query API and the job control API to start the second job in the list received from ll_get_jobs on two nodes. You should submit at least two jobs prior to running the sample. To compile sch_api, copy the sample to a writeable directory and update the RELEASE_DIR field to represent the current LoadLeveler release directory.

Related Information

Subroutines: ll_get_jobs, ll_terminate_job, ll_get_nodes.


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