hpcflow.sdk.submission.schedulers package#

Submodules#

hpcflow.sdk.submission.schedulers.direct module#

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

Bases: NullScheduler

DEFAULT_SHELL_EXECUTABLE = '/bin/bash'#
class hpcflow.sdk.submission.schedulers.direct.DirectWindows(*args, **kwargs)#

Bases: NullScheduler

DEFAULT_SHELL_EXECUTABLE = 'powershell.exe'#

hpcflow.sdk.submission.schedulers.sge module#

class hpcflow.sdk.submission.schedulers.sge.SGEPosix(cwd_switch=None, *args, **kwargs)#

Bases: Scheduler

Notes

  • runs in serial by default

References

[1] https://gridscheduler.sourceforge.net/htmlman/htmlman1/qsub.html

DEFAULT_ARRAY_ITEM_VAR = 'SGE_TASK_ID'#
DEFAULT_ARRAY_SWITCH = '-t'#
DEFAULT_CWD_SWITCH = '-cwd'#
DEFAULT_DEL_CMD = 'qdel'#
DEFAULT_JS_CMD = '#$'#
DEFAULT_SHEBANG_ARGS = ''#
DEFAULT_SHOW_CMD = 'qstat'#
DEFAULT_SUBMIT_CMD = 'qsub'#
format_array_request(num_elements)#
format_core_request_lines(num_cores, parallel_env)#
format_options(resources, num_elements, is_array, sub_idx)#
format_std_stream_file_option_lines(is_array, sub_idx)#
get_submit_command(shell, js_path, deps)#
Parameters:
  • shell (Shell) –

  • js_path (str) –

  • deps (List[Tuple]) –

Return type:

List[str]

get_version_info()#
parse_submission_output(stdout)#

Extract scheduler reference for a newly submitted jobscript

Parameters:

stdout (str) –

Return type:

str

hpcflow.sdk.submission.schedulers.slurm module#

class hpcflow.sdk.submission.schedulers.slurm.SlurmPosix(*args, **kwargs)#

Bases: Scheduler

Notes

  • runs in current working directory by default [2]

# TODO: consider getting memory usage like: https://stackoverflow.com/a/44143229/5042280

References

[1] https://manpages.org/sbatch [2] https://ri.itservices.manchester.ac.uk/csf4/batch/sge-to-slurm/

DEFAULT_ARRAY_ITEM_VAR = 'SLURM_ARRAY_TASK_ID'#
DEFAULT_ARRAY_SWITCH = '--array'#
DEFAULT_DEL_CMD = 'scancel'#
DEFAULT_JS_CMD = '#SBATCH'#
DEFAULT_SHEBANG_ARGS = ''#
DEFAULT_SHELL_EXECUTABLE = '/bin/bash'#
DEFAULT_SHOW_CMD = 'squeue --me'#
DEFAULT_SUBMIT_CMD = 'sbatch'#
format_array_request(num_elements)#
format_core_request_lines(num_cores, num_nodes)#
format_options(resources, num_elements, is_array, sub_idx)#
format_std_stream_file_option_lines(is_array, sub_idx)#
get_submit_command(shell, js_path, deps)#
Parameters:
  • shell (Shell) –

  • js_path (str) –

  • deps (List[Tuple]) –

Return type:

List[str]

get_version_info()#
parse_submission_output(stdout)#

Extract scheduler reference for a newly submitted jobscript

Parameters:

stdout (str) –

Return type:

str

Module contents#

class hpcflow.sdk.submission.schedulers.NullScheduler(submit_cmd=None, shell_args=None, shebang_args=None)#

Bases: object

DEFAULT_SHEBANG_ARGS = ''#
DEFAULT_SHELL_ARGS = ''#
get_submit_command(shell, js_path, deps)#
Parameters:
  • shell (Shell) –

  • js_path (str) –

  • deps (List[Tuple]) –

Return type:

List[str]

get_version_info()#
parse_submission_output(stdout)#
Parameters:

stdout (str) –

Return type:

None

class hpcflow.sdk.submission.schedulers.Scheduler(submit_cmd=None, show_cmd=None, del_cmd=None, js_cmd=None, array_switch=None, array_item_var=None, *args, **kwargs)#

Bases: NullScheduler

format_switch(switch)#