Skip to content

Commit

Permalink
Set default resources on submit and use calculated resource numbers in
Browse files Browse the repository at this point in the history
templates.
  • Loading branch information
hategan committed Jan 10, 2025
1 parent 41d4ee7 commit 8fe0728
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 19 deletions.
8 changes: 4 additions & 4 deletions src/psij/executors/batch/cobalt/cobalt.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
#COBALT --cwd={{.}}
{{/job.spec.directory}}
{{#job.spec.resources}}
{{#node_count}}
{{#computed_node_count}}
#COBALT --nodecount={{.}}
{{/node_count}}
{{#process_count}}
{{/computed_node_count}}
{{#computed_process_count}}
#COBALT --proccount={{.}}
{{/process_count}}
{{/computed_process_count}}
{{/job.spec.resources}}
{{#formatted_job_duration}}
#COBALT --time={{duration}}
Expand Down
8 changes: 4 additions & 4 deletions src/psij/executors/batch/lsf/lsf.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@

{{#job.spec.resources}}

{{#node_count}}
{{#computed_node_count}}
#BSUB -nnodes {{.}}
{{/node_count}}
{{/computed_node_count}}

{{#process_count}}
{{#computed_process_count}}
#BSUB -n {{.}}
{{/process_count}}
{{/computed_process_count}}

{{#gpu_cores_per_process}}
#BSUB -gpu num={{.}}/task
Expand Down
15 changes: 6 additions & 9 deletions src/psij/executors/batch/slurm/slurm.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@
#SBATCH --exclusive
{{/exclusive_node_use}}

{{#node_count}}
{{#computed_node_count}}
#SBATCH --nodes={{.}}
{{/node_count}}
{{/computed_node_count}}

{{#process_count}}
{{#computed_process_count}}
#SBATCH --ntasks={{.}}
{{/process_count}}
{{/computed_process_count}}

{{#processes_per_node}}
{{#computed_ppn}}
#SBATCH --ntasks-per-node={{.}}
{{/processes_per_node}}
{{/computed_ppn}}

{{#gpu_cores_per_process}}
#SBATCH --gpus-per-task={{.}}
Expand All @@ -38,9 +38,6 @@
#SBATCH --cpus-per-task={{.}}
{{/cpu_cores_per_process}}
{{/job.spec.resources}}
{{^job.spec.resources}}
#SBATCH --nodes=1
{{/job.spec.resources}}

{{#formatted_job_duration}}
#SBATCH --time={{.}}
Expand Down
6 changes: 6 additions & 0 deletions src/psij/job_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,15 @@
from psij.job_executor_config import JobExecutorConfig
from psij.job_launcher import Launcher
from psij.job_spec import JobSpec
from psij.resource_spec import ResourceSpecV1


logger = logging.getLogger(__name__)


_DEFAULT_RESOURCES = ResourceSpecV1()


class JobExecutor(ABC):
"""An abstract base class for all JobExecutor implementations."""

Expand Down Expand Up @@ -92,6 +96,8 @@ def _check_job(self, job: Job) -> JobSpec:
spec = job.spec
if not spec:
raise InvalidJobException('Missing specification')
if not spec.resources:
spec.resources = _DEFAULT_RESOURCES

if __debug__:
if spec.environment is not None:
Expand Down
4 changes: 2 additions & 2 deletions tests/plugins1/_batch_test/test/test.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ cd "{{.}}"
export PSIJ_TEST_BATCH_EXEC_COUNT=1

{{#job.spec.resources}}
{{#process_count}}
{{#computed_process_count}}
export PSIJ_TEST_BATCH_EXEC_COUNT={{.}}
{{/process_count}}
{{/computed_process_count}}
{{/job.spec.resources}}

{{#job.spec.attributes}}
Expand Down

0 comments on commit 8fe0728

Please sign in to comment.