Slurm::Stepctx - Step launching functions in libslurm
use Slurm;
$slurm = Slurm::new();
$params = {job_id => 1234, ...};
$ctx = $slurm->step_ctx_create($params);
$rc = $ctx->launch({...}, {task_start => sub {...},
task_finish => sub {...} });
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.
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::dynamic_plugin_data_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. |
Slurm
This library is created by Hongjia Cao, <hjcao( AT )nudt.edu.cn> and Danny Auble, <da( AT )llnl.gov>. It is distributed with Slurm.
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.