Qiskit / qiskit

Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
https://www.ibm.com/quantum/qiskit
Apache License 2.0
4.82k stars 2.29k forks source link

Added coordinate map for Heron devices #12680

Open quantumjim opened 3 days ago

quantumjim commented 3 days ago

Summary

Added a coordinate map, so that plot_gate_map can use the same layout the the IBM Quantum Platform, and not create one randomly.

Details and comments

Image below shows the output for from qiskit.visualization import plot_gate_map plot_gate_map(backend, figsize=(10,10)). image

qiskit-bot commented 3 days ago

One or more of the following people are relevant to this code:

mtreinish commented 3 days ago

I'm not a huge fan of continuing this pattern, we moved to using graphviz for graph visualization (see: https://github.com/Qiskit/qiskit/issues/9031) so we didn't have to continue hard coding magic layouts in the visualization functions moving forward. It's not a really good solution because it assumes that all backends prefixed with ibm_ or fake_ and n qubits want to use the same layout. Prior to #9031 being implemented it was not great but better than using the algorithmic layout from rx.spring_layout() (which is garbage for more than a handful of nodes) but we're in a better state now. If the graphviz layout is deficient in some way it might be a better approach if we can come up with a better algorithmic layout for this.

coveralls commented 3 days ago

Pull Request Test Coverage Report for Build 9711519430

Details


Changes Missing Coverage Covered Lines Changed/Added Lines %
qiskit/visualization/gate_map.py 0 1 0.0%
<!-- Total: 0 1 0.0% -->
Files with Coverage Reduction New Missed Lines %
qiskit/visualization/gate_map.py 1 6.95%
crates/qasm2/src/lex.rs 4 92.11%
<!-- Total: 5 -->
Totals Coverage Status
Change from base Build 9703107599: 0.01%
Covered Lines: 63808
Relevant Lines: 71093

💛 - Coveralls
quantumjim commented 3 days ago

I agree that qubit_coordinates_map is not the best way to do things and should disappear in a future release. But while it is in the code, shouldn't it reflect public devices?