IMLCV.configs.hpc_ugent#

Module Contents#

Classes#

SlurmProviderVSC

Specifies cluster and partition for sbatch, scancel, and squeue

Functions#

get_slurm_provider(env, label, path_internal, cpu_cluster)

config([env, singlepoint_nodes, walltime, bootstrap, ...])

Attributes#

ROOT_DIR

logger

translate_table

IMLCV.configs.hpc_ugent.ROOT_DIR[source]#
IMLCV.configs.hpc_ugent.logger[source]#
IMLCV.configs.hpc_ugent.translate_table[source]#
class IMLCV.configs.hpc_ugent.SlurmProviderVSC(cluster=None, **kwargs)[source]#

Bases: parsl.providers.slurm.slurm.SlurmProvider

Specifies cluster and partition for sbatch, scancel, and squeue

submit(command, tasks_per_node, job_name='parsl.slurm')[source]#

Submit the command as a slurm job.

This function differs in its parent in the self.execute_wait() call, in which the slurm partition is explicitly passed as a command line argument as this is necessary for some SLURM-configered systems (notably, Belgium’s HPC infrastructure). In addition, the way in which the job_id is extracted from the returned log after submission is slightly modified, again to account for the specific cluster configuration of HPCs in Belgium.

Parameters:
  • command (str) – Command to be made on the remote side.

  • tasks_per_node (int) – Command invocations to be launched per node

  • job_name (str) – Name for the job

Returns:

If at capacity, returns None; otherwise, a string identifier for the job

Return type:

None or str

_status()[source]#

Returns the status list for a list of job_ids :param self:

Returns:

Status list of all jobs

Return type:

[status…]

cancel(job_ids)[source]#

Cancels the jobs specified by a list of job ids Args: job_ids : [<job_id> …] Returns : [True/False…] : If the cancel operation fails the entire list will be False.

IMLCV.configs.hpc_ugent.get_slurm_provider(env, label, path_internal: Path | str, cpu_cluster, gpu_cluster=None, account=None, channel=LocalChannel(), gpu=False, cores=None, open_mp_threads_per_core: int | None = None, parsl_cores=False, mem=None, memory_per_core=None, walltime='48:00:00', init_blocks=1, min_blocks=1, max_blocks=1, parallelism=1, use_work_queue: bool = True, wq_timeout: int = 120, gpu_part='gpu_rome_a100', cpu_part='cpu_rome', py_env=None)[source]#
IMLCV.configs.hpc_ugent.config(env=None, singlepoint_nodes=16, walltime='48:00:00', bootstrap=False, memory_per_core=None, min_memery_per_node=None, path_internal: Path | None = None, cpu_cluster=None, gpu_cluster=None, py_env=None)[source]#