Man Linux: Main Page and Category List

NAME

       slurm_create_partition,                       slurm_create_reservation,
       slurm_delete_partition,                       slurm_delete_reservation,
       slurm_init_part_desc_msg,  slurm_init_resv_desc_msg, slurm_reconfigure,
       slurm_shutdown,            slurm_takeover,            slurm_update_job,
       ,slurm_init_update_node_msg  slurm_update_node, slurm_update_partition,
       slurm_update_reservation - Slurm administrative functions

SYNTAX

       #include <slurm/slurm.h>

       int slurm_create_partition (
            update_part_msg_t *update_part_msg_ptr
       );

       int slurm_create_reservation (
            reserve_request_msg_t *update_resv_msg_ptr
       );

       int slurm_delete_partition (
            delete_part_msg_t *delete_part_msg_ptr
       );

       int slurm_delete_reservation (
            reservation_name_msg_t *delete_resv_msg_ptr
       );

       void slurm_init_part_desc_msg (
            update_part_msg_t *update_part_msg_ptr
       );

       void slurm_init_resv_desc_msg (
            reserve_request_msg_t *update_resv_msg_ptr
       );

       int slurm_reconfigure ( );

       int slurm_shutdown (
            uint16_t shutdown_options
       );

       int slurm_takeover ( );

       int slurm_update_job (
            job_desc_msg_t *update_job_msg_ptr
       );

       void slurm_init_update_node_msg(
            update_node_msg_t *update_node_msg_ptr
       );

       int slurm_update_node (
            update_node_msg_t *update_node_msg_ptr
       );

       int slurm_update_partition (
            update_part_msg_t *update_part_msg_ptr
       );

       int slurm_update_reservation (
            reserve_request_msg_t *update_resv_msg_ptr
       );

ARGUMENTS

       shutdown_options
              0: all slurm daemons are shutdown
              1: slurmctld generates a core file
              2: only the slurmctld is shutdown (no core file)

       delete_part_msg_ptr
              Specifies  the   pointer   to   a   partition   delete   request
              specification.   See  slurm.h  for  full  details  on  the  data
              structure’s contents.

       delete_resv_msg_ptr
              Specifies  the  pointer  to   a   reservation   delete   request
              specification.   See  slurm.h  for  full  details  on  the  data
              structure’s contents.

       update_job_msg_ptr
              Specifies the pointer to a job update request specification. See
              slurm.h for full details on the data structure’s contents.

       update_node_msg_ptr
              Specifies  the  pointer  to a node update request specification.
              See slurm.h for full details on the data structure’s contents.

       update_part_msg_ptr
              Specifies the pointer to a partition create  or  update  request
              specification.   See  slurm.h  for  full  details  on  the  data
              structure’s contents.

       update_resv_msg_ptr
              Specifies the pointer to a reservation create or update  request
              specification.   See  slurm.h  for  full  details  on  the  data
              structure’s contents.

DESCRIPTION

       slurm_create_partition  Request  that  a  new  partition  be   created.
       Initialize   the  data  structure  using  the  slurm_init_part_desc_msg
       function prior to setting values  of  the  parameters  to  be  changed.
       Note:  slurm_init_part_desc_msg  is  not equivalent to setting the data
       structure values to zero.  A partition name must be set for the call to
       succeed.  This function may only be successfully executed by user root.

       slurm_create_reservation Request that a  new  reservation  be  created.
       Initialize   the  data  structure  using  the  slurm_init_resv_desc_msg
       function prior to setting values  of  the  parameters  to  be  changed.
       Note:  slurm_init_resv_desc_msg  is  not equivalent to setting the data
       structure values to zero.   The  reservation’s  time  limits,  user  or
       account  restrictions, and node names or a node count must be specified
       for the call to  succeed.   This  function  may  only  be  successfully
       executed by user root.

       slurm_delete_partition Request that the specified partition be deleted.
       All jobs associated with the identified partition  will  be  terminated
       and  purged.   This  function may only be successfully executed by user
       root.

       slurm_delete_reservation Request  that  the  specified  reservation  be
       deleted.  This function may only be successfully executed by user root.

       slurm_init_part_desc_msg  Initialize  the  contents  of   a   partition
       descriptor  with  default values. Note: slurm_init_part_desc_msg is not
       equivalent to setting the data structure values to zero.  Execute  this
       function      before      executing      slurm_create_partition      or
       slurm_update_partition.

       slurm_init_resv_desc_msg  Initialize  the  contents  of  a  reservation
       descriptor  with  default values. Note: slurm_init_resv_desc_msg is not
       equivalent to setting the data structure values to zero.  Execute  this
       function      before      executing     slurm_create_reservation     or
       slurm_update_reservation.

       slurm_reconfigure  Request  that  the  Slurm  controller  re-read   its
       configuration  file.  The  new  configuration  parameters  take  effect
       immediately. This function may only be successfully  executed  by  user
       root.

       slurm_shutdown  Request  that  the  Slurm  controller  terminate.  This
       function may only be successfully executed by user root.

       slurm_takeover Request  that  the  Slurm  primary  controller  shutdown
       immediately  and  the  backup  controller take over.  This function may
       only be successfully executed by user root.

       slurm_update_job Request that the configuration of a  job  be  updated.
       Note  that most, but not all parameters of a job may be changed by this
       function.     Initialize    the    data     structure     using     the
       slurm_init_job_desc_msg   function  prior  to  setting  values  of  the
       parameters  to  be  changed.  Note:  slurm_init_job_desc_msg   is   not
       equivalent  to setting the data structure values to zero. This function
       may only be successfully executed by user root.  Note the job  priority
       of  zero  represents  a job that will not be scheduled.  Slurm uses the
       priority one  to  represent  jobs  that  can  not  be  scheduled  until
       additional  nodes  are  returned to service (i.e. not DOWN, DRAINED, or
       FAILED).  This permits lower priority jobs to utilize  those  resources
       which are available.

       slurm_init_update_node_msg  Initialize  the  contents of an update mpde
       descriptor with default values. Note: slurm_init_update_node_msg is not
       equivalent  to  setting the data structure values to zero. Execute this
       function before executing slurm_update_node.

       slurm_update_node Request that the  state  of  one  or  more  nodes  be
       updated.  Note that the state of a node (e.g. DRAINING, IDLE, etc.) may
       be changed, but its hardware configuration may not be changed  by  this
       function.  If  the hardware configuration of a node changes, update the
       Slurm configuration file and execute  the  slurm_reconfigure  function.
       This  function  may only be successfully executed by user root. If used
       by some autonomous program, the state value most likely to be  used  is
       NODE_STATE_DRAIN   or   NODE_STATE_FAILING.    The   node   state  flag
       NODE_STATE_NO_RESPOND may be specified without changing the  underlying
       node  state.  Note  that  the node’s NODE_STATE_NO_RESPOND flag will be
       cleared as soon as the slurmd daemon on that node communicates with the
       slurmctld  daemon.   Likewise  the state NODE_STATE_DOWN indicates that
       the slurmd daemon is not responding  (and  has  not  responded  for  an
       interval   at   least   as  long  as  the  SlurmdTimeout  configuration
       parameter). The node will leave the NODE_STATE_DOWN state  as  soon  as
       the slurmd daemon communicates.

       slurm_update_partition Request that the configuration of a partition be
       updated.  Note that most, but not all parameters of a partition may  be
       changed  by  this  function.  Initialize  the  data structure using the
       slurm_init_part_desc_msg  function  prior  to  setting  values  of  the
       parameters   to  be  changed.  Note:  slurm_init_part_desc_msg  is  not
       equivalent to setting the data structure values to zero. This  function
       may only be successfully executed by user root.

       slurm_update_reservation   Request   that   the   configuration   of  a
       reservation be  updated.   Initialize  the  data  structure  using  the
       slurm_init_resv_desc_msg  function  prior  to  setting  values  of  the
       parameters  to  be  changed.  Note:   slurm_init_resv_desc_msg  is  not
       equivalent  to setting the data structure values to zero. This function
       may only be successfully executed by user root.

RETURN VALUE

       On success, zero is returned. On error, -1 is returned, and  the  Slurm
       error code is set appropriately.

       Exception:  A successful slurm_create_reservation call returns a string
       containing the name of the reservation, in memory to be  freed  by  the
       caller.  A failed call returns NULL and sets the Slurm error code.

ERRORS

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

       ESLURM_INVALID_NODE_NAME The requested node name(s) is/are not valid.

       ESLURM_INVALID_NODE_STATE The specified state node state  or  requested
       node state transition is not valid.

       ESLURM_INVALID_PARTITION_NAME  The  requested  partition  name  is  not
       valid.

       ESLURM_INVALID_AUTHTYPE_CHANGE  The  AuthType  parameter  can  not   be
       changed using the slurm_reconfigure function, but all SLURM daemons and
       commands must be restarted. See slurm.conf(5) for more information.

       ESLURM_INVALID_SCHEDTYPE_CHANGE The SchedulerType parameter can not  be
       changed  using the slurm_reconfigure function, but the slurmctld daemon
       must be restarted. Manual changes to existing job parameters  may  also
       be required. See slurm.conf(5) for more information.

       ESLURM_INVALID_SWITCHTYPE_CHANGE  The  SwitchType  parameter can not be
       changed using the slurm_reconfigure function, but all SLURM daemons and
       commands  must  be restarted. All previously running jobs will be lost.
       See slurm.conf(5) for more information.

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

       SLURM_PROTOCOL_SOCKET_IMPL_TIMEOUT Timeout in communicating with  SLURM
       controller.

       ESLURM_RESERVATION_ACCESS   Requestor  is  not authorized to access the
       reservation.

       ESLURM_RESERVATION_INVALID  Invalid reservation parameter  given,  e.g.
       wrong name given.

       ESLURM_INVALID_TIME_VALUE  Invalid time value.

       ESLURM_RESERVATION_BUSY   Reservation  is busy, e.g. trying to delete a
       reservation while in use.

       ESLURM_RESERVATION_NOT_USABLE  Reservation not usable, e.g.  trying  to
       use an expired reservation.

EXAMPLE

       #include <stdio.h>
       #include <slurm/slurm.h>
       #include <slurm/slurm_errno.h>

       int main (int argc, char *argv[])
       {
            job_desc_msg_t          update_job_msg;
            update_node_msg_t       update_node_msg;
            partition_desc_msg_t    update_part_msg;
            delete_part_msg_t       delete_part_msg;
            reserve_request_msg_t   resv_msg;
            char                   *resv_name = NULL;

            if (slurm_reconfigure ( )) {
                 slurm_perror ("slurm_reconfigure error");
                 exit (1);
            }

            slurm_init_job_desc_msg( &update_job_msg );
            update_job_msg.job_id = 1234;
            update_job_msg time_limit = 200;
            if (slurm_update_job (&update_job_msg)) {
                 slurm_perror ("slurm_update_job error");
                 exit (1);
            }

            slurm_init_part_desc_msg ( &update_part_msg );
            update_part_msg.name = "test.partition";
            update_part_msg.state_up = 0;  /* partition down */
            if (slurm_create_partition (&update_part_msg)) {
                 slurm_perror ("slurm_create_partition error");
                 exit (1);
            }

            update_part_msg.state_up = 1;  /* partition up */
            if (slurm_update_partition (&update_part_msg)) {
                 slurm_perror ("slurm_update_partition error");
                 exit (1);
            }

            delete_part_msg.name = "test.partition";
            if (slurm_delete_partition (&delete_part_msg)) {
                 slurm_perror ("slurm_delete_partition error");
                 exit (1);
            }

            slurm_init_update_node_msg (&update_node_msg);
            update_node_msg.node_names = "lx[10-12]";
            update_node_msg.node_state = NODE_STATE_DRAINING ;
            if (slurm_update_node (&update_node_msg)) {
                 slurm_perror ("slurm_update_node error");
                 exit (1);
            }

            slurm_init_resv_desc_msg ( &resv_msg );
            resv_msg.start_time = time(NULL) + 60*60;  /* One hour from now */
            resv_msg.duration = 720;  /* 12 hours/720 minutes */
            resv_msg.node_cnt = 10;
            resv_msg.accounts = "admin";
            resv_name = slurm_create_reservation (&resv_msg);
            if (!resv_name) {
                 slurm_perror ("slurm_create_reservation error");
                 exit (1);
            }
            free(resv_name);
            exit (0);
       }

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)  2002-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 <https://computing.llnl.gov/linux/slurm/>.

       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

       scontrol(1),      slurm_get_errno(3),       slurm_init_job_desc_msg(3),
       slurm_perror(3), slurm_strerror(3), slurm.conf(5)