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

Re: [HTCondor-users] portionable slots and greedy users



* mark a job as short . +JobType = "short". Is this the preferred way?

The APs we run call it "JobDurationCategory", which is a wordier but a little more specific. Depends on how much additional cleverness you expect to add, I guess.

* Short jobs have no quotas. They can run 100% of the pool if they like
* If a job doesn't have +JobType, assume its "Long" type of job
* Long jobs can only have 75% of the pool. Want to leave the rest of the
  pool empty for short users.
* I want to prioritize jobs which have +JobType="short"

If user A has only long jobs, and user B has only short jobs, but user A has a better user priority, the negotiator _will_ give resources to user before it gives them to user B. The only way I'm aware of to subvert that even a little bit is by using accounting group quotas. Something like the following might work:


# There are only two groups in the pool.
GROUP_NAMES			= group_long, group_short

# The 'short job' group can use at most 100% of the pool.
GROUP_QUOTA_DYNAMIC_group_short = 1.00

# The 'long job' group can use at most 75% of the pool.
GROUP_QUOTA_DYNAMIC_group_long  = 0.75

# No, really, those percentages are hard limits.
# (This is a default value, but you do need it to be set this way.)
GROUP_ACCEPT_SURPLUS 		= FALSE
# (This is a default value, but you do need it to be set this way.)
GROUP_AUTOREGROUP		= FALSE

# Always consider "group_short" first, then "group_long", then any
# jobs that slipped through without a group set.
GROUP_SORT_EXPR			= \
	ifThenElse( AccountingGroup=?="group_short", 1,
		ifThenElse( AccountingGroup=?="group_long", 10,
			100
		)
	)


You could pair this with a submit transform that converted JobType "short" into accounting group "group_short" and everything else into "group_long", or require that users set the accounting groups directly, maybe something like:

use feature:AssignAccountingGroup(/path/to/mapfile)

where /path/to/mapfile countains:

* * group_long,group_short

which should assign all users' jobs into group_log by default, but allow users to specify

accounting_group = group_short

in the submit files of short jobs.

-- ToddM