Mailing List Archives
Authenticated access
|
|
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [HTCondor-users] portionable slots and greedy users
- Date: Mon, 9 Oct 2023 18:32:18 -0500 (CDT)
- From: Todd L Miller <tlmiller@xxxxxxxxxxx>
- Subject: 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