[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] About choosing nodes over slots



Hi Vikas,

rule of thumb: HTCondor has a knob for it. ;)

Which node to run on is determined by the RANK settings of the negotiator, each job, and each worker node. For a start, let me just dump a comment from our local configuration:

# -- How does HTCondor schedule jobs? --
# Jobs are scheduled to StartDs via a sequence of filtering and sorting. Condor
# matches *jobs* to *workers*, not the other way arround! For each job, the
# following sequence is used:
#  - Find all startds which match the job REQUIREMENT and vice versa
#  - Sort startds by NEGOTIATOR_PRE_JOB_RANK
#  - Sort startds by the job's RANK
#  - Sort startds by NEGOTIATOR_POST_JOB_RANK
#  - If preemtion is required, sort startds by PREEMPTION_RANK
#  - Assign Job to the highest ranked startd
# Sorting preserves the order of the previous step, so later steps only
# have an effect if there was a tie.

Each ALL_CAPS word is something set via configuration or on submission. Note that the startd (node) Rank never shows up here - if it is not used by the negotiator or job, it is ignored.
If you have a fresh HTCondor, the most influential thing is NEGOTIATOR_PRE_JOB_RANK, which defaults to:
	NEGOTIATOR_PRE_JOB_RANK = (10000000 * My.Rank) + (1000000 * (RemoteOwner =?= UNDEFINED)) - (100000 * Cpus) - Memory

My.Rank : this is the ranking of the Startd. By default, it has the highest precedence. However, nodes probably all have the same policy.
RemoteOwner =?= UNDEFINED : this means "avoid kicking out running jobs". If your cluster has free capacity, this basically means "do not kill running jobs".
- Cpus : this prefers nodes with fewer *unused* cores. In effect, this means depth first filling.

In other words, the default is to fill up a single node first before moving on to the next.

There are a *lot* of knobs to tweak, and going through all their effects has a lot to do with your cluster setup. Most of the time, keeping a simple policy works best.
The manual has some pretty decent info on configuration settings
	http://research.cs.wisc.edu/htcondor/manual/current/3_5Configuration_Macros.html#SECTION004516000000000000000
the effects and examples of scheduling policy configuration
	http://research.cs.wisc.edu/htcondor/manual/current/3_7Policy_Configuration.html
and how user/group priorities are used
	http://research.cs.wisc.edu/htcondor/manual/current/3_6User_Priorities.html

Cheers,
Max

> Am 13.08.2017 um 01:13 schrieb Bansal, Vikas <Vikas.Bansal@xxxxxxxx>:
> 
> Hi,
> 
> I have a condor batch system available at my site.
> 
> $ condor_version
> $CondorVersion: 8.2.10 Oct 27 2015 $
> $CondorPlatform: X86_64-CentOS_6.7 $
> 
> I have 3200 slots on it.
> 100 nodes each with 32 slots.
> 
> I am wondering how jobs are scheduled to the nodes and slots.
> 
> E.g. If I have 100 jobs submitted in 1-5 minutes to the queue, how will they land up on the nodes/slots.
> 
> Will each job occupy one slot on a NEW node or will they fill up all 32 slots on one node and then move to next node and so on?
> 
> Is this configurable ? I.e. Which resource to choose first, node or slot?
> 
> Thanks for any help on this.
> 
> Vikas
> 
> 
> _______________________________________________
> HTCondor-users mailing list
> To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
> subject: Unsubscribe
> You can also unsubscribe by visiting
> https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users
> 
> The archives can be found at:
> https://lists.cs.wisc.edu/archive/htcondor-users/

Attachment: smime.p7s
Description: S/MIME cryptographic signature