reframe-hpc / reframe

A powerful Python framework for writing and running portable regression tests and benchmarks for HPC systems.
https://reframe-hpc.readthedocs.org
BSD 3-Clause "New" or "Revised" License
217 stars 103 forks source link

[feat] Improve state selection criteria in the `--distribute` and the `--flex-alloc-nodes` option #3140

Closed vkarak closed 6 months ago

vkarak commented 6 months ago

The key problem with those options currently is that there is no way to select a node that is exclusively in the idle state. As a result, nodes in idle+drain etc. states will be selected and jobs will be blocked forever. This PR fixes this by introducing exclusive state selection. More specifically, the following changes are made:

  1. The STATE argument implies exclusive state selection.
  2. The old behaviour is preserved with STATE*, meaning that a node to be selected must be at least in state STATE.
  3. The new special argument avail is added which will selected all the nodes available for running a job. For Slurm, these are nodes in IDLE, ALLOCATED or COMPLETING states.

Closes #2258.

codecov[bot] commented 6 months ago

Codecov Report

Attention: Patch coverage is 79.41176% with 7 lines in your changes are missing coverage. Please review.

Project coverage is 86.65%. Comparing base (7e6514a) to head (b5bb0ea).

Files Patch % Lines
reframe/core/schedulers/__init__.py 69.56% 7 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #3140 +/- ## =========================================== - Coverage 86.66% 86.65% -0.02% =========================================== Files 61 61 Lines 12092 12105 +13 =========================================== + Hits 10480 10489 +9 - Misses 1612 1616 +4 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.