hpcflow.sdk.submission.schedulers.direct.DirectScheduler#

class hpcflow.sdk.submission.schedulers.direct.DirectScheduler(*args, **kwargs)#

Bases: NullScheduler

A direct scheduler, that just runs jobs immediately as direct subprocesses.

The correct subclass (DirectPosix or DirectWindows) should be used to create actual instances.

Keyword Arguments:
  • shell_args (str) – Arguments to pass to the shell. Pre-quoted.

  • shebang_args (str) – Arguments to set on the shebang line. Pre-quoted.

  • options (dict) – Options to the jobscript command.

Methods

cancel_jobs

Cancel some jobs.

get_job_state_info

Query the scheduler to get the states of all of this user's jobs, optionally filtering by specified job IDs.

get_submit_command

Get the concrete submission command.

get_version_info

Get the version of the scheduler.

is_jobscript_active

Query if a jobscript is running.

is_num_cores_supported

Test whether particular number of cores is supported in given range of cores.

parse_submission_output

Parse the output from a submission to determine the submission ID.

process_resources

Perform scheduler-specific processing to the element resources.

wait_for_jobscripts

Wait until the specified jobscripts have completed.

Attributes

DEFAULT_SHEBANG_ARGS

Default value for arguments on the shebang line.

DEFAULT_SHELL_ARGS

Default value for arguments to the shell.

unique_properties

Unique properties, for hashing.

DEFAULT_SHEBANG_ARGS = ''#

Default value for arguments on the shebang line.

DEFAULT_SHELL_ARGS = ''#

Default value for arguments to the shell.

cancel_jobs(js_refs, jobscripts=None)#

Cancel some jobs.

Parameters:
get_job_state_info(js_refs, num_js_elements)#

Query the scheduler to get the states of all of this user’s jobs, optionally filtering by specified job IDs.

Jobs that are not in the scheduler’s status output will not appear in the output of this method.

Parameters:
Return type:

Dict[int, Dict[int, JobscriptElementState]]

get_submit_command(shell, js_path, deps)#

Get the concrete submission command.

Parameters:
Return type:

List[str]

get_version_info()#

Get the version of the scheduler.

is_jobscript_active(process_ID, process_cmdline)#

Query if a jobscript is running.

Note that a “running” jobscript might be waiting on upstream jobscripts to complete.

Parameters:
  • process_ID (int) –

  • process_cmdline (List[str]) –

static is_num_cores_supported(num_cores, core_range)#

Test whether particular number of cores is supported in given range of cores.

Parameters:

core_range (List[int]) –

parse_submission_output(stdout)#

Parse the output from a submission to determine the submission ID.

Parameters:

stdout (str) –

Return type:

None

classmethod process_resources(resources, scheduler_config)#

Perform scheduler-specific processing to the element resources.

Note: this mutates resources.

Parameters:

scheduler_config (Dict) –

Return type:

None

property unique_properties#

Unique properties, for hashing.

classmethod wait_for_jobscripts(js_refs, callback=None)#

Wait until the specified jobscripts have completed.

Parameters:
Return type:

None