polaris.run.serial.run_step_in_process

polaris.run.serial.run_step_in_process(step, placement=None, quiet=False)[source]

Run one step in this process, with the logging the serial path gives it.

Shared by two callers that differ only in how they got hold of the step. polaris serial in a step’s work directory unpickles it from disk; the concurrent scheduler’s forked child inherits the live object and calls this directly. Going through one function is what keeps their logs the same – a first attempt called the step’s own run_step() and produced byte-identical science output in a log missing its preamble and footer, which is a difference nobody would notice until they went looking for a step that had not run.

Parameters:
  • step (polaris.Step) – The step to run, already set up and sized

  • placement (mache.parallel.ResourcePlacement, optional) – The part of the allocation this step is confined to, or None to run it on the whole of what is available

  • quiet (bool, optional) – Whether to leave the step’s name out of the output