Hi there

I am trying (and failing) to implement a scheduling policy and I'd
appreciate your advice on how it could be done.  Below I have tried to
construct the simplest example that includes the key components of the
policy...

The compute nodes belong to three groups: science, physics and
chemistry.  Everyone in physics and chemistry also belong to science,
but there are also science users who do not belong to physics or
chemistry, e.g biology.  The background story is that the faculty of
science bought the original cluster, and physics and chemistry have
extended it with their own funds.

So that we can apply constraints based on job run-time we usually have
three queues: short, medium and long.

Short jobs can run on any compute node regardless of the user's group.
Medium and long jobs can only run on compute nodes affiliated with the
user.  For example, a chemist can run short jobs anywhere, and medium
and long jobs on science or chemistry compute nodes.

We'd also like jobs to prefer compute nodes belonging to the user's own
group.  For example, a short chemistry job should consider chemistry,
science and physics compute nodes in that order.

And finally, we're interested in relaxing some constraints when a user
runs a job on their own compute nodes.  For example, perhaps the maximum
run-time in the 'long' queue is 100 hours, but physics would like to run
jobs with run-times of 200 hours on their own compute nodes.  Perhaps
this would involve an additional queue for each group that requires very
long jobs.  This facility would not be offered to the science group.

I have tried to implement this policy with a combination of queues
defined in Torque that classify jobs based on run-time, and standing
reservations in Maui that control which groups have access to the
various compute nodes.  However, I am struggling to map the rules I have
just described to the access control mechanisms available in standing
reservations.  I'd like to do something like...

SRCFG[physics1] CLASSLIST=short,medium,long,physicsverylong
SRCFG[physics1] GROUPLIST=physics+

SRCFG[physics2] CLASSLIST=short-
SRCFG[physics2] GROUPLIST=!physics

...where CLASSLIST and GROUPLIST must both be satisfied within each
standing reservation, and either of the two standing reservations must
be satisfied.  However, if I understand correctly, it is only possible
to do the exact opposite: CLASSLIST || GROUPLIST and SR && SR.

So I suspect that I need a completely different approach.

I'd be very grateful if anyone can offer advice on any part of this
puzzle.

Many thanks

Martin


_______________________________________________
mauiusers mailing list
[email protected]
http://www.supercluster.org/mailman/listinfo/mauiusers

Reply via email to