# $Id: sched_config 12 2005-02-22 20:59:54Z dev $
#
#         OpenPBS (Portable Batch System) v2.3 Software License
# 
# Copyright (c) 1999-2000 Veridian Information Solutions, Inc.
# All rights reserved.
# 
# ---------------------------------------------------------------------------
# For a license to use or redistribute the OpenPBS software under conditions
# other than those described below, or to purchase support for this software,
# please contact Veridian Systems, PBS Products Department ("Licensor") at:
# 
#    www.OpenPBS.org  +1 650 967-4675                  sales@OpenPBS.org
#                        877 902-4PBS (US toll-free)
# ---------------------------------------------------------------------------
# 
# This license covers use of the OpenPBS v2.3 software (the "Software") at
# your site or location, and, for certain users, redistribution of the
# Software to other sites and locations.  Use and redistribution of
# OpenPBS v2.3 in source and binary forms, with or without modification,
# are permitted provided that all of the following conditions are met.
# After December 31, 2001, only conditions 3-6 must be met:
# 
# 1. Commercial and/or non-commercial use of the Software is permitted
#    provided a current software registration is on file at www.OpenPBS.org.
#    If use of this software contributes to a publication, product, or
#    service, proper attribution must be given; see www.OpenPBS.org/credit.html
# 
# 2. Redistribution in any form is only permitted for non-commercial,
#    non-profit purposes.  There can be no charge for the Software or any
#    software incorporating the Software.  Further, there can be no
#    expectation of revenue generated as a consequence of redistributing
#    the Software.
# 
# 3. Any Redistribution of source code must retain the above copyright notice
#    and the acknowledgment contained in paragraph 6, this list of conditions
#    and the disclaimer contained in paragraph 7.
# 
# 4. Any Redistribution in binary form must reproduce the above copyright
#    notice and the acknowledgment contained in paragraph 6, this list of
#    conditions and the disclaimer contained in paragraph 7 in the
#    documentation and/or other materials provided with the distribution.
# 
# 5. Redistributions in any form must be accompanied by information on how to
#    obtain complete source code for the OpenPBS software and any
#    modifications and/or additions to the OpenPBS software.  The source code
#    must either be included in the distribution or be available for no more
#    than the cost of distribution plus a nominal fee, and all modifications
#    and additions to the Software must be freely redistributable by any party
#    (including Licensor) without restriction.
# 
# 6. All advertising materials mentioning features or use of the Software must
#    display the following acknowledgment:
# 
#     "This product includes software developed by NASA Ames Research Center,
#     Lawrence Livermore National Laboratory, and Veridian Information
#     Solutions, Inc.
#     Visit www.OpenPBS.org for OpenPBS software support,
#     products, and information."
# 
# 7. DISCLAIMER OF WARRANTY
# 
# THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ANY EXPRESS
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT
# ARE EXPRESSLY DISCLAIMED.
# 
# IN NO EVENT SHALL VERIDIAN CORPORATION, ITS AFFILIATED COMPANIES, OR THE
# U.S. GOVERNMENT OR ANY OF ITS AGENCIES BE LIABLE FOR ANY DIRECT OR INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# 
# This license will be governed by the laws of the Commonwealth of Virginia,
# without reference to its choice of law rules.
#

################################################################################
# Constant configuration file for the psched scheduler.  This file needs to 
# be copied to the $(PBS_SERVER_HOME)/sched_priv directory before starting 
# the scheduler. This should be done automatically during the installation
# process.
# 
# Required arguments are marked by three question marks, ???. A default has
# been provided for those options which provide scheduler optimizations. 
# If you do not wish to take advantage of an option, comment out the line.
#
# Boolean options take "On", "True", "Yes", "1" for true (case insensitive), 
# and anything else as false.
#
################################################################################

###############################################################################
# This scheduler uses two execution queue types.  Any changes to the queue 
# names in qmgr's list should be added here and vice versa.  
###############################################################################
#
# The queues on the following lists are ordered from highest scheduling 
# priority to lowest.  These are comma separated lists, if more space is 
# required, the list can be split into multiple lines.  Each line must be
# prefaced by the appropriate configuration option directive.
#
# All queues are associated with a particular execution host.  They may be
# specified either as 'queuename' or 'queuename@exechost'.  If only the name
# is given, the canonical name of the local host will be automatically
# appended to the queue name.

# The "normal" scheduling algorithm picks jobs off the SUBMIT_QUEUE and
# attempts to run them on the BATCH_QUEUES.  Jobs are enqueued onto the
# SUBMIT_QUEUE via the 'qsub' command (set the default queue name in PBS
# with the 'set server default_queue' qmgr command), and remain there
# until they are rejected, run, or deleted.  The host attached to the
# SUBMIT_QUEUE is ignored - it is assumed to be on the server.
#
# Note that this implies that the SUBMIT_QUEUE's resources_max values must
# be the union of all the BATCH_QUEUES' resources.
#
SUBMIT_QUEUE			funnel

# BATCH_QUEUES is a list of execution queues onto which the scheduler should
# move and run the jobs it chooses from the SUBMIT_QUEUES.  The algorithm used
# in the scheduler relies on these queues being arranged from "smallest" to
# "largest", as jobs are tested against the list of queues in the order listed,
# and run on the queue which first provides enough resources for the job.
# 
BATCH_QUEUES			piglet@piglet,evelyn@evelyn,eyore@eyore

###############################################################################
# These options are used to optimize system load average and scheduler 
# effectiveness. It is a good idea to monitor system load as the user community 
# grows, shrinks, or changes its focus from porting and debugging to 
# production. These defaults were selected for a 64 processor system with 16gb 
# of memory. 
###############################################################################
#
# Target Load Average refers to a target percentage of the maximum system 
# load average (1 point for each processor on the machine).  It may vary
# as much as the +/- percentages listed in TARGET_LOAD_VARIANCE.  Jobs may
# or may not be scheduled if the load is too high or too low, even if the
# resources indicate that doing so would otherwise cause a problem.
# The values below attempt to maintain a system load within 75% to 100% of
# the theoretical maximum (load average of 48.0 to 64.0 for a 64-cpu machine).
TARGET_LOAD_PCT			90%		
TARGET_LOAD_VARIANCE		-15%,+10%

###############################################################################
# These options are used to enforce site-specific policies. It is a good idea 
# to reevaluate these policies as the user community grows, shrinks, or changes
# its focus from porting and debugging to production.
###############################################################################
#
# Check for Prime Time Enforcement.  Sites with a mixed user base can use 
# this option to enforce separate scheduling policies at different times
# during the day. If ENFORCE_PRIME_TIME is set to "False", the non-prime-time
# scheduling policy (as described in BATCH_QUEUES) will be used for the entire
# 24 hour period.
#
ENFORCE_PRIME_TIME		False

# Prime-time is defined as a time period each working day (Mon-Fri)
# from PRIME_TIME_START through PRIME_TIME_END.  Times are in 24
# hour format (i.e. 9:00AM is 9:00:00, 5:00PM is 17:00:00) with hours, 
# minutes, and seconds.  Sites can use the prime-time scheduling policy for 
# the entire 24 hour period by setting PRIME_TIME_START and PRIME_TIME_END 
# back-to-back.  The portion of a job that fits within primetime must be
# no longer than PRIME_TIME_WALLT_LIMIT (represented in HH:MM:SS).
#
#PRIME_TIME_START		9:00:00
#PRIME_TIME_END			17:00:00
#PRIME_TIME_WALLT_LIMIT		1:00:00

# Choose an action to take upon scheduler startup.  The default is to do no
# special processing (NONE).  In some instances, a job can end up queued in
# one of the batch queues, since it was running before but was stopped by PBS.
# If the argument is RESUBMIT, these jobs will be moved back to the queue
# the job was originally submitted to, and scheduled as if they had just
# arrived. If the argument is RERUN, the scheduler will have PBS run any
# jobs found enqueued on the execution queues. This may cause the machine
# to get somewhat confused, as no limits checking is done (the assumption
# being that they were checked when they were enqueued).
#
SCHED_RESTART_ACTION		RESUBMIT

# If the following directive points to a valid file, the scheduler will
# dump a listing of all the jobs, in the order it would like to run them,
# to this file.
#
#SORTED_JOB_DUMPFILE            /PBS/sched_priv/sorted_jobs

# The Fair Access Directives allow the specification, on a per-queue basis,
# of a per-user limit on the maximum number of simultaniously running jobs
# and a 'time-credit' of the maximum number of minutes left to run a given
# user can have outstanding at any given time. The username of "default"
# is interpreted as the default values for that queue. The format is:
# FAIR_ACCESS QUEUE:queuename:username:max_jobs:max_time_credit_minutes
#
#FAIR_ACCESS QUEUE:firstQ:myuserA:10:400
#FAIR_ACCESS QUEUE:firstQ:default:15:1000
#FAIR_ACCESS QUEUE:thirdQ:myuserA:11:200
#FAIR_ACCESS QUEUE:thirdQ:myuserB:15:800
#FAIR_ACCESS QUEUE:thirdQ:myuserC:15:800
#FAIR_ACCESS QUEUE:thirdQ:default:14:300
