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

NAME

       slurm_step_ctx_create,                                     slurm_step_ctx_create_no_alloc,
       slurm_step_ctx_daemon_per_node_hack,   slurm_step_ctx_get,   slurm_step_ctx_params_t_init,
       slurm_jobinfo_ctx_get,   slurm_spawn_kill,   slurm_step_ctx_destroy  -  Slurm  task  spawn
       functions

SYNTAX

       #include <slurm/slurm.h>

       slurm_step_ctx slurm_step_ctx_create (
            slurm_step_ctx_params_t *step_req
       );

       slurm_step_ctx slurm_step_ctx_create_no_alloc (
            slurm_step_ctx_params_t *step_req
       );

       int slurm_step_ctx_daemon_per_node_hack (
            slurm_step_ctx_t *ctx
       );

       int slurm_step_ctx_get (
            slurm_step_ctx_t *ctx,
            int ctx_key,
            ...
       );

       int slurm_jobinfo_ctx_get (
            switch_jobinfo_t jobinfo,
            int data_type,
            void *data
       );

       void slurm_step_ctx_params_t_init (
            slurm_step_ctx_params_t *step_req
       );

       int slurm_spawn {
            slurm_step_ctx ctx,
            int *fd_array
       );

       int slurm_spawn_kill {
               slurm_step_ctx ctx,
            uint16_t signal
       );

       int slurm_step_ctx_destroy {
            slurm_step_ctx ctx
       );

ARGUMENTS

       step_req
              Specifies the pointer to the structure with job  step  request  specification.  See
              slurm.h for full details on the data structure's contents.

       ctx    Job      step      context.      Created      by      slurm_step_ctx_create,     or
              slurm_step_ctx_create_no_alloc used in subsequent function calls, and destroyed  by
              slurm_step_ctx_destroy.

       ctx_key
              Identifies the fields in ctx to be collected by slurm_step_ctx_get.

       data   Storage location for requested data. See data_type below.

       data_type
              Switch-specific  data  requested. The interpretation of this field depends upon the
              switch plugin in use.

       fd_array
              Array of socket file descriptors to be connected to  the  initiated  tasks.   Tasks
              will be connected to these file descriptors in order of their task id.  This socket
              will carry standard input, output and error for the task.  jobinfo  Switch-specific
              job information as returned by slurm_step_ctx_get.

       signal Signal to be sent to the spawned tasks.

DESCRIPTION

       slurm_jobinfo_ctx_get  Get  values from a jobinfo field as returned by slurm_step_ctx_get.
       The operation of this function is highly dependent upon the switch plugin in use.

       slurm_step_ctx_create  Create  a  job  step  context.   To   avoid   memory   leaks   call
       slurm_step_ctx_destroy  when  the  use  of  this  context is finished. NOTE: this function
       creates a slurm job step. Call slurm_spawn in a timely fashion to avoid  having  job  step
       credentials time out. If slurm_spawn is not used, explicitly cancel the job step.

       slurm_step_ctx_create_no_alloc  Same as above, only no allocation is made. To avoid memory
       leaks call slurm_step_ctx_destroy when the use of this context is finished.

       slurm_step_ctx_daemon_per_node_hack Hack the step context to  run  a  single  process  per
       node, regardless of the settings selected at slurm_step_ctx_create time.

       slurm_step_ctx_get  Get  values from a job step context.  ctx_key identifies the fields to
       be gathered from the  job  step  context.   Subsequent  arguments  to  this  function  are
       dependent upon the value of ctx_key. See the CONTEXT KEYS section for details.

       slurm_step_ctx_params_t_init  This  initializes  parameters in the structure that you will
       pass to slurm_step_ctx_create().

       slurm_spawn Spawn tasks based upon a job step context and  establish  communications  with
       the  tasks  using the socket file descriptors specified.  Note that this function can only
       be called once for each job step context.  Establish a new job step context for  each  set
       of tasks to be spawned.

       slurm_spawn_kill Signal the tasks spawned for this context by slurm_spawn.

       slurm_step_ctx_destroy Destroy a job step context created by slurm_step_ctx_create.

CONEXT KEYS

       SLURM_STEP_CTX_ARGS
              Set  the  argument  count  and  values  for the executable.  Accepts two additional
              arguments, the first of type int and the second of type char **.

       SLURM_STEP_CTX_CHDIR
              Have the remote process change directory to the specified location before beginning
              execution.  Accepts  one  argument  of  type  char  *  identifying  the directory's
              pathname. By default the remote process will execute in the same directory pathname
              from which it is spawned. NOTE: This assumes that same directory pathname exists on
              the other nodes.

       SLURM_STEP_CTX_ENV
              Sets the environment variable count and values for  the  executable.   Accepts  two
              additional  arguments,  the  first  of  type int and the second of type char **. By
              default the current environment variables are copied to started task's environment.

       SLURM_STEP_CTX_RESP
              Get the job step  response  message.   Accepts  one  additional  argument  of  type
              job_step_create_response_msg_t **.

       SLURM_STEP_CTX_STEPID
              Get  the  step id of the created job step.  Accepts one additional argument of type
              uint32_t *.

       SLURM_STEP_CTX_TASKS
              Get the number of tasks per node for a given job.  Accepts one additional  argument
              of  type uint32_t **.  This argument will be set to point to an array with the task
              counts of each node in an element of the array.  See  SLURM_STEP_CTX_TID  below  to
              determine the task ID numbers associated with each of those tasks.

       SLURM_STEP_CTX_TID
              Get  the  task  ID  numbers associated with the tasks allocated to a specific node.
              Accepts two additional arguments, the first of type int  and  the  second  of  type
              uint32_t  **.  The  first  argument  identifies  the  node number of interest (zero
              origin). The second argument will be set to point to an  array  with  the  task  ID
              numbers   of   each   task   allocated   to  the  node  (also  zero  origin).   See
              SLURM_STEP_CTX_TASKS above to determine how many tasks  are  associated  with  each
              node.

RETURN VALUE

       For  slurm_step_ctx_create a context is return upon success. On error NULL is returned and
       the Slurm error code is set appropriately.

       For all other functions zero is returned upon success.  On error, -1 is returned, and  the
       Slurm error code is set appropriately.

ERRORS

       EINVAL Invalid argument

       SLURM_PROTOCOL_VERSION_ERROR Protocol version has changed, re-link your code.

       ESLURM_INVALID_JOB_ID the requested job id does not exist.

       ESLURM_ALREADY_DONE the specified job has already completed and can not be modified.

       ESLURM_ACCESS_DENIED  the  requesting  user  lacks  authorization for the requested action
       (e.g. trying to delete or modify another user's job).

       ESLURM_DISABLED the ability  to  create  a  job  step  is  currently  disabled.   This  is
       indicative of the job being suspended. Retry the call as desired.

       ESLURM_INTERCONNECT_FAILURE failed to configure the node interconnect.

       ESLURM_BAD_DIST task distribution specification is invalid.

       SLURM_PROTOCOL_SOCKET_IMPL_TIMEOUT Timeout in communicating with SLURM controller.

EXAMPLE

       SEE   slurm_step_launch(3)   man   page   for  an  example  of  slurm_step_ctx_create  and
       slurm_step_launch in use together.

NOTE

       These functions are included in the libslurm library, which must be linked to your process
       for use (e.g. "cc -lslurm myprog.c").

COPYING

       Copyright (C) 2004-2007 The Regents of the University of California.  Produced at Lawrence
       Livermore National Laboratory (cf, DISCLAIMER).  CODE-OCEC-09-009. All rights reserved.

       This  file  is  part  of  SLURM,  a  resource  management  program.   For   details,   see
       <http://slurm.schedmd.com/>.

       SLURM  is  free  software; you can redistribute it and/or modify it under the terms of the
       GNU General Public License as published by the Free Software Foundation; either version  2
       of the License, or (at your option) any later version.

       SLURM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
       even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

SEE ALSO

       slurm_allocate_resources(3),          slurm_job_step_create(3),         slurm_kill_job(3),
       slurm_get_errno(3), slurm_perror(3), slurm_strerror(3), srun(1)