reframe
reframe copied to clipboard
Generalise the poll rate control mechanism
Currently, the poll rate control is only available for the async policy and it is hidden and non-configurable from the users. The purpose of this issue is twofold:
-
Create a mechanism that would control the poll rate centrally. This mechanism should be aware at any time of the actual poll rate of the backend scheduler and should be able to suggest sleep times between subsequent polls, so as to ensure that the actual poll rate does not exceed a user-defined maximum.
-
Provide the necessary knobs to the user for fine-tuning the polling behaviour.
This is related to #1524.
We need to revise this issue because it is rather outdated.
A possible way to achieve this is through the scheduler backends. We could rewrite poll() as such:
def poll(*jobs, throttle=False):
If throttle is True, polling could be throttled by snoozing the current thread. Since everything boils down to the poll() method, this would let us have a centralized control of polling. In the future, this would allow us to configure it differently for different schedulers.