class lsst.ctrl.mpexec.MPGraphExecutor(numProc: int, timeout: float, quantumExecutor: QuantumExecutor, *, startMethod: Literal['spawn'] | Literal['fork'] | Literal['forkserver'] | None = None, failFast: bool = False, pdb: str | None = None, executionGraphFixup: ExecutionGraphFixup | None = None)

Bases: QuantumGraphExecutor

Implementation of QuantumGraphExecutor using same-host multiprocess execution of Quanta.


Number of processes to use for executing tasks.


Time in seconds to wait for tasks to finish.


Executor for single quantum. For multiprocess-style execution when numProc is greater than one this instance must support pickle.

startMethodstr, optional

Start method from multiprocessing module, None selects the best one for current platform.

failFastbool, optional

If set to True then stop processing on first error from any task.

pdbstr, optional

Debugger to import and use (via the post_mortem function) in the event of an exception.

executionGraphFixupExecutionGraphFixup, optional

Instance used for modification of execution graph.

Methods Summary


Execute whole graph.


Return execution report from last call to execute.

Methods Documentation

execute(graph: QuantumGraph) None

Execute whole graph.

Implementation of this method depends on particular execution model and it has to be provided by a subclass. Execution model determines what happens here; it can be either actual running of the task or, for example, generation of the scripts for delayed batch execution.


Execution graph.

getReport() Report | None

Return execution report from last call to execute.

reportReport, optional

Structure describing the status of the execution of a quantum graph. None is returned if implementation does not support this feature.


Raised if this method is called before execute.