About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
BaseController
class qiskit.passmanager.BaseController(options=None)
Bases: Task
, ABC
Base class of controller.
A controller is built with a collection of pass manager tasks, and a subclass provides a custom logic to choose next task to run. Note a controller can be nested into another controller, and a controller itself doesn’t provide any subroutine to modify the input IR.
Create new flow controller.
Parameters
options (dict[str, Any] | None) – Option for this flow controller.
Methods
execute
execute(passmanager_ir, state, callback=None)
Execute optimization task for input Qiskit IR.
Parameters
- passmanager_ir (Any) – Qiskit IR to optimize.
- state (PassManagerState) – State associated with workflow execution by the pass manager itself.
- callback (Callable | None) – A callback function which is caller per execution of optimization task.
Returns
Optimized Qiskit IR and state of the workflow.
Return type
tuple[Any, qiskit.passmanager.compilation_status.PassManagerState]
iter_tasks
abstract iter_tasks(state)
A custom logic to choose a next task to run.
Controller subclass can consume the state to build a proper task pipeline. The updated state after a task execution will be fed back in as the “return” value of any yield
statements. This indicates the order of task execution is only determined at running time. This method is not allowed to mutate the given state object.
Parameters
- state (PassManagerState) – The state of the passmanager workflow at the beginning of this flow controller’s execution.
- state – the state of pass manager after the execution of the last task that was yielded. The generator does not need to inspect this if it is irrelevant to its logic, nor update it.
Yields
Task – Next task to run.
Return type
Generator[Task, PassManagerState, None]
Was this page helpful?
Report a bug or request content on GitHub.