Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal queues: time window as well as active task limit? #2616

Open
hjoliver opened this issue Apr 4, 2018 · 6 comments
Open

Internal queues: time window as well as active task limit? #2616

hjoliver opened this issue Apr 4, 2018 · 6 comments
Milestone

Comments

@hjoliver
Copy link
Member

hjoliver commented Apr 4, 2018

Internal queues currently release tasks according to the limit setting, which limits the number of tasks that can be active at once. Would it be useful to give queues an optional time window too, to allow (say) long-running suites that only submit jobs overnight when the host system is not busy?

Ref: https://groups.google.com/forum/#!topic/cylc/jB8PVSKfEW4

@hjoliver hjoliver added this to the some-day milestone Apr 4, 2018
@oliver-sanders
Copy link
Member

This seems like a good idea, should be fairly simple to implement.

To mix this in with the larger issue of resource scheduling, possible queue configurations:

  • Time window
    • Should this take into account execution time limit if provided (submission time window and execution time window)?
    • e.g. to run overnight when a machine is quiet
    • e.g. to run when electricity is cheap (may be an irregular time window e.g. if prices differ at the weekend)
  • Queue length
    • For particular platforms or platform groups using the same batch scheduler
    • e.g. to submit jobs when resource idle - PT0M
  • Available resource
    • e.g. for background submission
  • User defined command / function

@hjoliver
Copy link
Member Author

hjoliver commented Apr 4, 2018

@oliver-sanders - are you suggesting dynamic evaluation of queue release criteria? (I think you are, but just checking!)

@hjoliver
Copy link
Member Author

hjoliver commented Apr 4, 2018

(good ideas above, by the way)

@oliver-sanders
Copy link
Member

More outlining than suggesting but it would be required, yes.

@trwhitcomb
Copy link
Collaborator

We ran into this a while back, and this is definitely a useful thing to have. However, when looking into this (particularly when interfacing with batch schedulers), it seemed like Cylc queues weren't necessarily the right place to solve this, but the scheduling system was, largely because the problem of preemption is linked to the job start time and duration rather than the submit time (which is the only thing that Cylc can control).

For the case that's raised, one could imagine if the desired behavior was on a system with PBS, the implementation could submit the task right away, but with additional directives that specify the time at which the job would be eligible to execute, even though it would be submitted directly to the queue.

@hjoliver
Copy link
Member Author

@trwhitcomb - I agree, the batch system is the proper place to handle this sort of thing. But even so, Cylc could help here, e.g. if you don't have sufficient control over batch system configuration, or are using background jobs. Not a high priority at the moment though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants