PassManagerConfig
class qiskit.transpiler.PassManagerConfig(initial_layout=None, basis_gates=None, inst_map=None, coupling_map=None, layout_method=None, routing_method=None, translation_method=None, scheduling_method=None, instruction_durations=None, backend_properties=None, approximation_degree=None, seed_transpiler=None, timing_constraints=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, target=None, hls_config=None, init_method=None, optimization_method=None, qubits_initially_zero=True)
Bases: object
Pass Manager Configuration.
Initialize a PassManagerConfig object
qiskit.transpiler.passmanager_config.PassManagerConfig.__init__()
’s argument inst_map
is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and this argument uses a dependency on the package.
qiskit.transpiler.passmanager_config.PassManagerConfig.__init__()
’s argument backend_properties
is deprecated as of Qiskit 1.4. It will be removed in Qiskit 2.0. The BackendProperties data structure has been deprecated and will be removed in Qiskit 2.0. The target input argument should be used instead. You can use Target.from_configuration() to build the target from the properties object, but in 2.0 you will need to generate a target directly.
Parameters
- initial_layout (Layout) – Initial position of virtual qubits on physical qubits.
- basis_gates (list) – List of basis gate names to unroll to.
- inst_map (InstructionScheduleMap) – Mapping object that maps gate to schedule.
- coupling_map (CouplingMap) – Directed graph represented a coupling map.
- layout_method (str) – the pass to use for choosing initial qubit placement. This will be the plugin name if an external layout stage plugin is being used.
- routing_method (str) – the pass to use for routing qubits on the architecture. This will be a plugin name if an external routing stage plugin is being used.
- translation_method (str) – the pass to use for translating gates to basis_gates. This will be a plugin name if an external translation stage plugin is being used.
- scheduling_method (str) – the pass to use for scheduling instructions. This will be a plugin name if an external scheduling stage plugin is being used.
- instruction_durations (InstructionDurations) – Dictionary of duration (in dt) for each instruction.
- backend_properties (BackendProperties) – Properties returned by a backend, including information on gate errors, readout errors, qubit coherence times, etc.
- approximation_degree (float) – heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation)
- seed_transpiler (int) – Sets random seed for the stochastic parts of the transpiler.
- timing_constraints (TimingConstraints) – Hardware time alignment restrictions.
- unitary_synthesis_method (str) – The string method to use for the
UnitarySynthesis
pass. Will search installed plugins for a valid method. You can see a list of installed plugins withunitary_synthesis_plugin_names()
. - target (Target) – The backend target
- hls_config (HLSConfig) – An optional configuration class to use for
HighLevelSynthesis
pass. Specifies how to synthesize various high-level objects. - init_method (str) – The plugin name for the init stage plugin to use
- optimization_method (str) – The plugin name for the optimization stage plugin to use.
- qubits_initially_zero (bool) – Indicates whether the input circuit is zero-initialized.
Methods
from_backend
classmethod from_backend(backend, _skip_target=False, **pass_manager_options)
Construct a configuration based on a backend and user input.
This method automatically generates a PassManagerConfig object based on the backend’s features. User options can be used to overwrite the configuration.
Parameters
- backend (BackendV1 orBackendV2) – The backend that provides the configuration.
- pass_manager_options – User-defined option-value pairs.
Returns
The configuration generated based on the arguments.
Return type
Raises
AttributeError – If the backend does not support a configuration() method.