Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Interface 1: Extend PBS to support a list of scheduler objects

    • Visibility: Public
    • Change Control: Stable
    • Details:
      • PBS supports a list of scheduler objects to be created using qmgr. It is similar to how we create nodes in server.
      • qmgr command can be used to create a scheduler object . It must be invoked by a PBS admin/manager.
      • To create a scheduler object and make it run, the following are the attributes that can be set by the user
        • Name of the scheduler is mandatory to be given while creating a scheduler object. 
          • qmgr -c "c sched multi_sched_1"
            • This will create/set the following attributes for the sched object
              • sched_port - If not defined by the user, It will start from 15050 and try to run the scheduler on the next available port number.
              • partition = "None" (default)*
              • sched_priv = $PBS_HOME/sched_priv_multi_sched_1 (default)*
              • sched_log = $PBS_HOME/sched_log_multi_sched_1 (default)*
              • scheduling = False (default)*
              • scheduler_iteration = 600 (default)*
              • sched_user = <pbs_server user> (default)
              • comment 
                • sites can use the comment field to

                • notify them if scheduler undergoes restarting 2-3 times due to potential crashes in an hour for example (i.e. comment => “NEEDS_ATTENTION”)

                • tell when a particular scheduler is ready to function again by setting the comment as follows.

                  • comment => “READY_TO_USE

...

  • Set the priv directory for the scheduler.
    • The directory must be owned by the sched_user specified while creating scheduler object. It should have permissions set as "750". By default a sched object has 
      ithas it's priv directory set as $PBS_HOME/sched_priv_<sched-name>. If the directory is already used by some other scheduler then error code is set "15216" with error message 
      "Another scheduler has same value for its sched_priv directory"
    • qmgr -c "s sched multi_sched_1 sched_priv=/var/spool/pbs/sched_priv_1"
    • If the priv directory is not accessible by scheduler process, or the scheduler files are not found in the directory, then comment is updated with following error message
      "PBS failed validation checks for sched_priv directory"
    Set the log directory for the scheduler. 
    • The directory must be owned by the sched_user specified while creating scheduler object. It should have permissions as "755". By default a sched object has 
      ithas it's logs directory set as $PBS_HOME/sched_log_<sched_name>. . If the directory is already used by some other scheduler then error code is set "15215"  with error message
      "Another scheduler has same value for its sched_log directory"
    • qmgr -c "s sched multi_sched_1 sched_log=/var/spool/pbs/sched_log"
    • If the log directory is not accessible by scheduler process, or the scheduler files are not found in the directory, then comment is updated with following error message
      "Unable to change the sched_log directory"
    • By default a multi-sched object has scheduling set as False.
      qmgr -c " s sched <scheduler name> scheduling = 1"
  • The following attributes will be set on the default scheduler if the the user sets them on the server
    • scheduling
    • scheduling_iteration
  • Max length of scheduler name is 15
  • By default PBS server will configure a default scheduler which will run out of the box.
      • The name of this default scheduler will be "default"
      • The sched_priv directory of this default scheduler will be set to the $PBS_HOME/sched_priv
      • Default scheduler will log in $PBS_HOME/sched_log directory.
      • Default scheduler will be provided with default set of policies as mentioned in sched_config.
      • One can set a scheduler attribute through qmgr either in the usual way as shown below or they can use the new syntax. Old syntax is supported for backward compatibility which will be deprecated soon.
        Ex:  qmgr -c "set sched job_sort_formula_threshold = <value>
               qmgr -c "set sched default job_sort_formula_threshold = <value>"

...