NAME¶
Slurm::Stepctx - Step launching functions in libslurm
SYNOPSIS¶
use Slurm;
$slurm = Slurm::new();
$params = {job_id => 1234, ...};
$ctx = $slurm->step_ctx_create($params);
$rc = $ctx->launch({...}, {task_start => sub {...},
task_finish => sub {...} });
DESCRIPTION¶
The Slurm::Stepctx class is a wrapper of the job step context and step launching
functions in libslurm. This package is loaded and bootstraped with package
Slurm.
METHODS¶
STEP CONTEXT CREATION FUNCTIONS¶
Please see "SLURM TASK SPAWNING FUNCTIONS" in Slurm for step context
creation functions.
STEP CONTEXT MANIPULATION FUNCTIONS¶
$rc = $ctx->get($ctx_key, ...);
Get parameters from a job step context.
- •
- INPUT $ctx_key: type of the parameter to get. Supported key and the
corresponding result data are:
- •
- $rc = $ctx->get(SLURM_STEP_CTX_STEPID, $stepid);
Get the created job step id. $stepid will be set to the step id number.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_TASKS, $tasks);
Get array of task count on each node. $tasks will be set to an array
reference.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_TID, $nodeid, $tids);
Get array of task IDs for specified node. $nodeid specifies index of the
node. $tids will be set to an array reference.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_RESP, $resp);
TODO: this is not exported. Get job step create response message.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_CRED, $cred);
Get credential of the created job step. $cred will be an opaque object
blessed to "Slurm::slurm_cred_t".
- •
- $rc = $ctx->get(SLURM_STEP_CTX_SWITCH_JOB, $switch_info);
Get switch plugin specific info of the step. $switch_info will be an opaque
object blessed to "Slurm::switch_jobinfo_t".
- •
- $rc = $ctx->get(SLURM_STEP_CTX_NUM_HOSTS, $num);
Get number of nodes allocated to the job step.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_HOST, $nodeid, $nodename);
Get node name allocated to the job step. $nodeid specifies index of the
node.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_JOBID, $jobid);
Get job ID of the job step.
- •
- $rc = $ctx->get(SLURM_STEP_CTX_USER_MANAGED_SOCKETS, $numtasks,
$sockets);
Get user managed I/O sockets. TODO: describe the parameters.
- •
- RET: error code.
$rc = $ctx->daemon_per_node_hack($node_list,
$node_cnt, $curr_task_num);
Hack the step context to run a single process per node, regardless of the
settings selected at
Slurm::Stepctx::create() time.
- •
- RET: error code.
STEP TASK LAUNCHING FUNCTIONS¶
$rc = $ctx->launch($params,
$callbacks );
Launch a parallel job step.
- •
- IN $params: parameters of task launching, with structure of
"slurm_step_launch_params_t".
- •
- IN $callbacks: callback functions, with structure of
"slurm_step_launch_callbacks_t". NOTE: the callback functions
will be called in a thread different from the thread calling the
"launch()" function.
- •
- RET: error code.
$rc =
$ctx->launch_wait_start();
Block until all tasks have started.
- •
- RET: error code.
$ctx->launch_wait_finish();
Block until all tasks have finished (or failed to start altogether).
$ctx->launch_abort();
Abort an in-progress launch, or terminate the fully launched job step. Can be
called from a signal handler.
$ctx->launch_fwd_signal($signo);
Forward a signal to all those nodes with running tasks.
- •
- IN $signo: signal number.
SEE ALSO¶
Slurm
AUTHOR¶
This library is created by Hongjia Cao, <hjcao(AT)nudt.edu.cn> and Danny
Auble, <da(AT)llnl.gov>. It is distributed with SLURM.
COPYRIGHT AND LICENSE¶
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself, either Perl version 5.8.4 or, at your option,
any later version of Perl 5 you may have available.