Coupling Map and Topology

qc/hardware

The coupling map defines which pairs of physical qubits can directly execute a two-qubit gate. Two qubits not directly connected can’t interact without help — the transpiler has to route the state between them first (see SWAP Overhead and Routing).

Different IBM architectures use different topologies:

  • Heron — heavy-hex (heavy hexagonal lattice), a sparse topology chosen partly because it’s favorable for quantum error correction schemes.
  • Nighthawk — a different connectivity pattern, optimized for different operation profiles.
  • Other processors may use chain, grid, or fully custom topologies.

The topology directly shapes how expensive a given circuit is to run: a logical circuit that needs lots of long-range interactions will need many more SWAP insertions on a sparse topology than on a denser one — this is exactly why comparing architectures (Heron vs Nighthawk) for the same circuit is a meaningful benchmark, not just an academic exercise.

coupling_map = backend.coupling_map.get_edges()  # list[tuple[int, int]]

Self-Check

  • Could you explain what a coupling map is to someone who’s never seen one?
  • Why does comparing Heron vs Nighthawk on the same circuit count as a meaningful benchmark?
  • What has to happen if a circuit needs two qubits to interact that aren’t in the coupling map?