idmtools_platform_comps.utils.scheduling module

idmtools scheduling utils for comps.

Copyright 2021, Bill & Melinda Gates Foundation. All rights reserved.

idmtools_platform_comps.utils.scheduling.default_add_workerorder_sweep_callback(simulation, file_name, file_path)

Utility function to add updated WorkOrder.json to each simulation as linked file via simulation task.

first loads original workorder file from local, then update Command field in it from each simulation object’s simulation.task.command.cmd, then write updated command to WorkOrder.json, and load this file to simulation

Parameters:
  • simulation – Simulation we are configuring

  • file_name – Filename to use

  • file_path – Path to file

Returns:

None

idmtools_platform_comps.utils.scheduling.default_add_schedule_config_sweep_callback(simulation, command: Optional[str] = None, node_group_name: str = 'idm_cd', num_cores: int = 1, **config_opts)

Default callback to be used for sweeps that affect a scheduling config.

idmtools_platform_comps.utils.scheduling.scheduled(simulation: Simulation)

Determine if scheduling is defined on the simulation.

Parameters:

simulation – Simulation to check

Returns:

True if simulation.scheduling is defined and true.

idmtools_platform_comps.utils.scheduling.add_work_order(item: Union[Experiment, Simulation, TemplatedSimulations], file_name: str = 'WorkOrder.json', file_path: Union[str, PathLike] = './WorkOrder.json')

Adds workorder.json.

Parameters:
  • item – Item to add work order to

  • file_name – Workorder file name

  • file_path – Path to file(locally)

Returns:

None

Raises:

ValueError - If experiment is empty – If item is not an experiment, simulation, or TemplatedSimulations

idmtools_platform_comps.utils.scheduling.add_schedule_config(item: Union[Experiment, Simulation, TemplatedSimulations], command: Optional[str] = None, node_group_name: str = 'idm_cd', num_cores: int = 1, **config_opts)

Add scheduling config to an Item.

Scheduling config supports adding to Experiments, Simulations, and TemplatedSimulations

Parameters:
  • item – Item to add scheduling config to

  • command – Command to run

  • node_group_name – Node group name

  • num_cores – Num of cores to use

  • **config_opts – Additional config options

Returns:

None

Raises:

ValueError - If experiment is empty – If item is not an experiment, simulation, or TemplatedSimulations

Notes

  • TODO refactor to resuse the add_work_order if possible. The complication is simulation command possibly