Description
Description
The steps belonging to the DragonLauncher
attributes _pbs_launcher
and _slurm_launcher
should be managed in a better way.
Justification
Currently, when a DragonBatchStep
is launched as a batch job using SbatchSettings
or QsubSettings
, a SlurmLauncher
or PBSLauncher
object is used to control it. Such launchers are stored as attributes of the DragonLauncher
, and we call them sub-launchers. As SmartSim tracks jobs only by the ID assigned by the WLM to them, the DragonLauncher
has no way of understanding whether a job id represents a Slurm or a PBS batch job. For that reason, we prefix the job id with the name of the sub-launcher. This workaround is not elegant and we should find a better way of handling such batch jobs.
Implementation Strategy
Instead of step id (integers or strings), SmartSim could use objects to track steps. For example, a _get_managed_step_update
call, instead of using a list of ids, would use a list of StepID objects (these could be simple dataclass objects), and no id prefixing would be needed by the Dragon launcher, which could deduce the sub-launcher to call from the object type.
Activity