polaris.run.executor.start_step
- polaris.run.executor.start_step(step, reservation: Reservation, log_filename: str, local_node: str) RunningStep[source]
Start one step in a forked child.
The child inherits this process’s address space, so it holds every module already imported and the live
stepobject, and reads nothing from disk to get going. That is what makes starting a step cost almost nothing; a freshpolaris serialsubprocess cost 35 s of imports and unpickling, which was more than the median step’s actual work.- Parameters:
step (polaris.Step) – The step to run, which must already be set up and sized
reservation (polaris.run.pool.Reservation) – What the pool gave it
log_filename (str) – Where to send its output. Steps run at the same time, so they cannot share a stream and be read afterwards.
local_node (str) – The node the scheduler is on, which is the only one whose cores a child can bind itself to
- Returns:
running (polaris.run.executor.RunningStep) – The started step