# parsl.providers.CobaltProvider

class parsl.providers.CobaltProvider(channel=LocalChannel(), nodes_per_block=1, init_blocks=0, min_blocks=0, max_blocks=1, parallelism=1, walltime='00:10:00', account=None, queue=None, scheduler_options='', worker_init='', launcher=AprunLauncher(), cmd_timeout=10)

  Cobalt Execution Provider

  WARNING: CobaltProvider is deprecated and will be removed by 2024.04

  This provider uses cobalt to submit (qsub), obtain the status of (qstat), and cancel (qdel) jobs. Theo script to be used is created from a template file in this same module.

  Parameters:

    - channel (Channel) – Channel for accessing this provider. Possible channels include `LocalChannel` (the default), `SSHChannel`, or `SSHInteractiveLoginChannel`.

    - nodes_per_block (int) – Nodes to provision per block.

    - min_blocks (int) – Minimum number of blocks to maintain.

    - max_blocks (int) – Maximum number of blocks to maintain.

    - walltime (str) – Walltime requested per block in HH:MM:SS.

    - account (str) – Account that the job will be charged against.

    - queue (str) – Torque queue to request blocks from.

    - scheduler_options (str) – String to prepend to the submit script to the scheduler.

    - worker_init (str) – Command to be run before starting a worker, such as ‘module load Anaconda; source activate env’.

    - launcher (Launcher) – Launcher for this provider. Possible launchers include `AprunLauncher` (the default) or, `SingleNodeLauncher`

  __init__(channel=LocalChannel(), nodes_per_block=1, init_blocks=0, min_blocks=0, max_blocks=1, parallelism=1, walltime='00:10:00', account=None, queue=None, scheduler_options='', worker_init='', launcher=AprunLauncher(), cmd_timeout=10)

  Methods

  `__init__`([channel, nodes_per_block, ...]) |
  `cancel`(job_ids) | Cancels the jobs specified by a list of job ids
  `execute_wait`(cmd[, timeout]) |
  `status`(job_ids) | Get the status of a list of jobs identified by the job identifiers returned from the submit request.
  `submit`(command, tasks_per_node[, job_name]) | Submits the command onto an Local Resource Manager job of parallel elements.

  Attributes

  `cores_per_node` | Number of cores to provision per node.
  `label` | Provides the label for this provider
  `mem_per_node` | Real memory to provision per node in GB.
  `status_polling_interval` | Returns the interval, in seconds, at which the status method should be called.

  cancel(job_ids)

    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.

  property status_polling_interval

    Returns the interval, in seconds, at which the status method should be called.

    Returns:

      the number of seconds to wait between calls to status()

  submit(command, tasks_per_node, job_name='parsl.cobalt')

    Submits the command onto an Local Resource Manager job of parallel elements. Submit returns an ID that corresponds to the task that was just submitted.

    If tasks_per_node < 1 : ! This is illegal. tasks_per_node should be integer

    If tasks_per_node == 1:

      A single node is provisioned

    If tasks_per_node > 1 :

      tasks_per_node number of nodes are provisioned.

    Parameters:

      - command (-) – (String) Commandline invocation to be made on the remote side.

      - tasks_per_node (-) – command invocations to be launched per node

    Kwargs:

      - job_name (String): Name for job, must be unique

    Returns:

      At capacity, cannot provision more - job_id: (string) Identifier for the job

    Return type:

      - None