slurm_script_generator.slurm_script#
Classes
|
Class representing a Slurm batch script with pragmas, modules, and custom commands. |
- class slurm_script_generator.slurm_script.SlurmScript(account: str | None = None, array: str | None = None, begin: str | None = None, bell: str | None = None, burst_buffer: str | None = None, bb_file: str | None = None, cpus_per_task: int | None = None, comment: str | None = None, container: str | None = None, container_id: str | None = None, cpu_freq: str | None = None, delay_boot: str | None = None, dependency: str | None = None, deadline: str | None = None, chdir: str | None = None, get_user_env: str | None = None, gres: str | None = None, gres_flags: str | None = None, hold: str | None = None, immediate: str | None = None, job_name: str | None = None, no_kill: str | None = None, kill_command: str | None = None, licenses: str | None = None, clusters: str | None = None, distribution: str | None = None, mail_type: str | None = None, mail_user: str | None = None, mcs_label: str | None = None, ntasks: str | None = None, nice: int | None = None, nodes: int | None = None, ntasks_per_node: int | None = None, oom_kill_step: str | None = None, overcommit: str | None = None, power: str | None = None, priority: str | None = None, profile: str | None = None, partition: str | None = None, qos: str | None = None, quiet: str | None = None, reboot: str | None = None, oversubscribe: str | None = None, signal: str | None = None, spread_job: str | None = None, stderr: str | None = None, stdout: str | None = None, switches: str | None = None, core_spec: str | None = None, thread_spec: str | None = None, time: str | None = None, time_min: str | None = None, tres_bind: str | None = None, tres_per_task: str | None = None, use_min_nodes: str | None = None, wckey: str | None = None, cluster_constraint: str | None = None, contiguous: str | None = None, constraint: str | None = None, nodefile: str | None = None, mem: str | None = None, mincpus: str | None = None, reservation: str | None = None, tmp: str | None = None, nodelist: str | None = None, exclude: str | None = None, exclusive_user: str | None = None, exclusive_mcs: str | None = None, mem_per_cpu: str | None = None, resv_ports: str | None = None, sockets_per_node: int | None = None, cores_per_socket: int | None = None, threads_per_core: int | None = None, extra_node_info: str | None = None, ntasks_per_core: int | None = None, ntasks_per_socket: int | None = None, hint: str | None = None, mem_bind: str | None = None, cpus_per_gpu: int | None = None, gpus: str | None = None, gpu_bind: str | None = None, gpu_freq: str | None = None, gpus_per_node: str | None = None, gpus_per_socket: str | None = None, gpus_per_task: str | None = None, mem_per_gpu: str | None = None, disable_stdout_job_summary: str | None = None, nvmps: str | None = None, pragmas: List[Pragma] | None = None, modules: List[str] | None = None, custom_command: str | None = None, custom_commands: list | None = None, inlined_script: str | None = None, inlined_scripts: list | None = None, line_length: int = 54)[source]#
Bases:
objectClass representing a Slurm batch script with pragmas, modules, and custom commands.
- Parameters:
account (str, optional) – The account to charge for the job.
array (str, optional) – The job array specification.
begin (str, optional) – The time to begin the job.
bell (str, optional) – Ring terminal bell when job is allocated.
burst_buffer (str, optional) – Burst buffer specifications.
bb_file (str, optional) – Burst buffer specification file.
cpus_per_task (int, optional) – Number of CPUs required per task.
comment (str, optional) – Arbitrary comment for the job.
container (str, optional) – Path to OCI container bundle.
container_id (str, optional) – OCI container ID.
cpu_freq (str, optional) – Requested CPU frequency and governor.
delay_boot (str, optional) – Delay boot for desired node features.
dependency (str, optional) – Job dependency specification.
deadline (str, optional) – Remove job if no ending possible before deadline.
chdir (str, optional) – Change working directory for the job.
get_user_env (str, optional) – Used by Moab for environment setup.
gres (str, optional) – Required generic resources.
gres_flags (str, optional) – Flags related to GRES management.
hold (str, optional) – Submit job in held state.
immediate (str, optional) – Exit if resources not available within seconds.
job_name (str, optional) – Name of the job.
no_kill (str, optional) – Do not kill job on node failure.
kill_command (str, optional) – Signal to send terminating job.
licenses (str, optional) – Required licenses, comma separated.
clusters (str, optional) – Comma separated list of clusters.
distribution (str, optional) – Distribution method for processes.
mail_type (str, optional) – Notify on state change.
mail_user (str, optional) – Email for job state changes.
mcs_label (str, optional) – MCS label if mcs plugin is used.
ntasks (str, optional) – Number of processors required.
nice (str, optional) – Decrease scheduling priority by value.
nodes (int, optional) – Number of nodes to allocate.
ntasks_per_node (int, optional) – Number of tasks to invoke on each node.
oom_kill_step (str, optional) – Set OOMKillStep behaviour.
overcommit (str, optional) – Overcommit resources.
power (str, optional) – Power management options.
priority (str, optional) – Set job priority.
profile (str, optional) – Enable acct_gather_profile for detailed data.
partition (str, optional) – Partition requested.
qos (str, optional) – Quality of service.
quiet (str, optional) – Suppress informational messages.
reboot (str, optional) – Reboot compute nodes before starting job.
oversubscribe (str, optional) – Oversubscribe resources with other jobs.
signal (str, optional) – Send signal when time limit within seconds.
spread_job (str, optional) – Spread job across as many nodes as possible.
stderr (str, optional) – Redirect stderr to file.
stdout (str, optional) – Redirect stdout to file.
switches (str, optional) – Optimum switches and max wait time.
core_spec (str, optional) – Count of reserved cores.
thread_spec (str, optional) – Count of reserved threads.
time (str, optional) – Time limit for the job.
time_min (str, optional) – Minimum time limit.
tres_bind (str, optional) – Task to TRES binding options.
tres_per_task (str, optional) – TRES required per task.
use_min_nodes (str, optional) – Prefer smaller node count.
wckey (str, optional) – Wckey to run job under.
cluster_constraint (str, optional) – List of cluster constraints.
contiguous (str, optional) – Demand contiguous range of nodes.
constraint (str, optional) – List of constraints.
nodefile (str, optional) – Request specific list of hosts from file.
mem (str, optional) – Minimum real memory required.
mincpus (str, optional) – Minimum logical processors per node.
reservation (str, optional) – Allocate resources from named reservation.
tmp (str, optional) – Minimum temporary disk required.
nodelist (str, optional) – Request specific list of hosts.
exclude (str, optional) – Exclude specific list of hosts.
exclusive_user (str, optional) – Allocate nodes in exclusive mode.
exclusive_mcs (str, optional) – Exclusive mode when mcs plugin enabled.
mem_per_cpu (str, optional) – Real memory per allocated CPU.
resv_ports (str, optional) – Reserve communication ports.
sockets_per_node (int, optional) – Number of sockets per node to allocate.
cores_per_socket (int, optional) – Number of cores per socket to allocate.
threads_per_core (int, optional) – Number of threads per core to allocate.
extra_node_info (str, optional) – Combine sockets, cores, threads.
ntasks_per_core (int, optional) – Number of tasks per core.
ntasks_per_socket (int, optional) – Number of tasks per socket.
hint (str, optional) – Application binding hints.
mem_bind (str, optional) – Bind memory to locality domains.
cpus_per_gpu (int, optional) – Number of CPUs required per allocated GPU.
gpus (str, optional) – Count of GPUs required.
gpu_bind (str, optional) – Task to GPU binding options.
gpu_freq (str, optional) – Frequency and voltage of GPUs.
gpus_per_node (str, optional) – GPUs per allocated node.
gpus_per_socket (str, optional) – GPUs per allocated socket.
gpus_per_task (str, optional) – GPUs per spawned task.
mem_per_gpu (str, optional) – Real memory per allocated GPU.
disable_stdout_job_summary (str, optional) – Disable job summary in stdout file.
nvmps (str, optional) – Launch NVIDIA MPS for job.
pragmas (List[Pragma], optional) – List of pragmas to add to the script.
modules (List[str], optional) – List of modules to load in the script.
custom_command (str, optional) – Custom command to run in the script.
custom_commands (list, optional) – List of custom commands to run in the script.
inlined_script (str, optional) – Inline script to include in the batch script.
inlined_scripts (list, optional) – List of inline scripts to include in the batch script.
line_length (int, optional) – Line length for formatting output.
- add_custom_command(command: str) None[source]#
Add a single custom command to the script.
- Parameters:
command (str) – The custom command to add.
- add_custom_commands(commands: List[str] | None) None[source]#
Add multiple custom commands to the script.
- Parameters:
commands (list of str, optional) – List of custom commands to add.
- add_inlined_script(path: str) None[source]#
Add lines from an inlined script file to the custom commands.
- Parameters:
path (str) – Path to the script file to inline.
- add_inlined_scripts(paths: List[str] | None) None[source]#
Add lines from multiple inlined script files to the custom commands.
- Parameters:
paths (list of str, optional) – List of script file paths to inline.
- add_module(module: str) None[source]#
Add a single module to the script.
- Parameters:
module (str) – The module to add.
- add_modules(modules: List[str] | None) None[source]#
Add multiple modules to the script.
- Parameters:
modules (list of str, optional) – List of modules to add.
- add_param(key: str, value: Any) None[source]#
Add a non-pragma parameter to the script.
- Parameters:
key (str) – The parameter key.
value (Any) – The parameter value.
- add_pragma(pragma: Pragma) None[source]#
Add a Pragma object to the script, replacing any existing pragma with the same destination.
- Parameters:
pragma (Pragma) – The Pragma object to add.
- add_pragmas(pragmas: List[Pragma] | None) None[source]#
Add multiple Pragma objects to the script.
- Parameters:
pragmas (list of Pragma, optional) – List of Pragma objects to add.
- property custom_commands: List[str]#
Get the list of custom commands to run in the script.
- Returns:
List of custom command strings.
- Return type:
List[str]
- static from_dict(data: dict[str, Any]) SlurmScript[source]#
Create a SlurmScript instance from a dictionary.
- Parameters:
data (dict[str, Any]) – Dictionary containing the SlurmScript data.
- Returns:
The constructed SlurmScript object.
- Return type:
- static from_json(path: str) SlurmScript[source]#
Load a SlurmScript instance from a JSON file.
- Parameters:
path (str) – Path to the JSON file to load.
- Returns:
The constructed SlurmScript object.
- Return type:
- static from_script(script: str, verbose: bool = False) SlurmScript[source]#
Parse a SLURM script string and create a SlurmScript instance.
- Parameters:
script (str) – SLURM script content.
verbose (bool :) – (Default value = False)
- Returns:
The constructed SlurmScript object.
- Return type:
- generate_script(line_length: int = 54, include_header: bool = False) str[source]#
- Parameters:
line_length – int: (Default value = 54)
include_header – bool: (Default value = False)
- property line_length: int#
Get the maximum line length for the script, used for formatting the output. This value is used to determine how many characters fit on a line when generating the script string, and is also used for formatting the header and section separators.
- Returns:
The line length value.
- Return type:
int
- property modules: List[str]#
Get the list of modules to load in the script.
- Returns:
List of module names.
- Return type:
List[str]
- property pragmas: List[Pragma]#
Get the list of Pragma objects in the script.
- Returns:
List of all Pragma instances.
- Return type:
List[Pragma]
- static read_script(path: str, verbose: bool = False) SlurmScript[source]#
Read a SLURM script from a file and parse it into a SlurmScript instance.
- Parameters:
path (str) – Path to the script file.
verbose (bool) – Whether to enable verbose output. (Default value = False)
- Returns:
The parsed SlurmScript object.
- Return type:
- save(path: str, include_header: bool = True) None[source]#
Save the generated SLURM script to a file.
- Parameters:
path (str) – Path to save the script file.
include_header (bool) – Whether to include the script header.
- submit_job(path: str) None[source]#
Submit the SLURM script as a job using sbatch.
- Parameters:
path (str) – Path to the script file to submit.
- Raises:
RuntimeError – If sbatch fails to submit the job.
- to_dict() dict[str, Any][source]#
Convert the SlurmScript instance to a dictionary representation.
- Returns:
Dictionary with keys ‘pragmas’, ‘modules’, and ‘custom_commands’.
- Return type:
dict[str, Any]