diff --git a/lib/pavilion/schedulers/advanced.py b/lib/pavilion/schedulers/advanced.py index 35f673b47..6dd08dedd 100644 --- a/lib/pavilion/schedulers/advanced.py +++ b/lib/pavilion/schedulers/advanced.py @@ -608,6 +608,10 @@ def _schedule_indi_flex(self, pav_cfg, tests: List[TestRun], node_range = calc_node_range(sched_config, len(chunk)) + if node_range[1] is not None: + if len(chunk) < node_range[1]: + node_range = (node_range[0], len(chunk)) + job_name = 'pav_{}'.format(test.name) script = self._create_kickoff_script_stub( pav_cfg=pav_cfg, diff --git a/lib/pavilion/schedulers/plugins/slurm.py b/lib/pavilion/schedulers/plugins/slurm.py index 97fa30761..58ee3f86a 100644 --- a/lib/pavilion/schedulers/plugins/slurm.py +++ b/lib/pavilion/schedulers/plugins/slurm.py @@ -73,12 +73,9 @@ def _kickoff_lines(self) -> List[str]: # The job is defined by # of tasks. if self._node_min != 1: lines.append('#SBATCH --nodes {}'.format(self._node_min)) - elif self._node_min != self._node_max: - # Specify a node range. - lines.append('#SBATCH --nodes {}-{}'.format(self._node_min, self._node_max)) else: # Specify the minimum number of nodes. - lines.append('#SBATCH --nodes {}'.format(self._node_min)) + lines.append('#SBATCH --nodes {}'.format(self._node_max)) tasks = self._config['tasks'] if tasks is not None: