NoiseAdaptiveLayout¶
- class NoiseAdaptiveLayout(*args, **kwargs)[source]¶
Choose a noise-adaptive Layout based on current calibration data for the backend.
This pass associates a physical qubit (int) to each virtual qubit of the circuit (Qubit), using calibration data.
The pass implements the qubit mapping method from: Noise-Adaptive Compiler Mappings for Noisy Intermediate-Scale Quantum Computers Prakash Murali, Jonathan M. Baker, Ali Javadi-Abhari, Frederic T. Chong, Margaret R. Martonosi ASPLOS 2019 (arXiv:1901.11054).
- Ordering of edges
- Map qubits edge-by-edge in the order of decreasing frequency of occurrence in the program dag.
- Initialization()¶
- If an edge exists with both endpoints unmapped,
- pick the best available hardware cx to execute this edge.
- Iterative step
- When an edge exists with one endpoint unmapped,
- map that endpoint to a location which allows
- maximum reliability for CNOTs with previously mapped qubits.
- In the end if there are unmapped qubits (which don't
- participate in any CNOT), map them to any available
- hardware qubit.
- Notes()¶
even though a layout is not strictly a property of the DAG, in the transpiler architecture it is best passed around between passes by being set in property_set.
NoiseAdaptiveLayout initializer.
- Parameters
backend_prop (BackendProperties) – backend properties object
- Raises
TranspilerError – if invalid options
Attributes
Check if the pass is an analysis pass.
Check if the pass is a transformation pass.
Methods
Return the name of the pass.
Run the NoiseAdaptiveLayout pass on dag.