Provided by: libslurm-perl_2.6.5-1_amd64 bug

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();

       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.

perl v5.18.2                                       2013-12-23                                Slurm::Stepctx(3pm)