Open IlanIwumbwe opened 1 month ago
Benny and I found this by running a randomly generated circuit through the compiler.
Recreate with:
subcirc_4 = Circuit(2, "subcirc_4") a = SquareGrid(subcirc_4.n_qubits, 1) NaivePlacementPass(a).apply(subcirc_4) no_pass_circ = backend.get_compiled_circuit(subcirc_4, optimisation_level=0) counts_no_pass = backend.run_circuit(no_pass_circ, 1000).get_counts()
Results in:
[q[0], q[1]] [gridNode[0, 0, 0], gridNode[1, 0, 0]] NotImplementedError: Qiskit registers must use a single index
This is because routing on square grid creates indices with 3 dimensions, which won't work and throw a NotImplementedError as shown here.
NotImplementedError
This also limits users from using the feature where you can define qubit indices more than one dimension.
subcirc_4 = Circuit(2, "subcirc_4") subcirc_4.add_qubit(Qubit("qw", [0, 1])) print(subcirc_4.qubits) no_pass_circ = backend.get_compiled_circuit(subcirc_4, optimisation_level=0) counts_no_pass = backend.run_circuit(no_pass_circ, 1000).get_counts()
Although this isn't really a RunTime error, this limitation isn't stated in documentation as far as we can tell.
Benny and I found this by running a randomly generated circuit through the compiler.
Recreate with:
Results in:
This is because routing on square grid creates indices with 3 dimensions, which won't work and throw a
NotImplementedError
as shown here.This also limits users from using the feature where you can define qubit indices more than one dimension.
Although this isn't really a RunTime error, this limitation isn't stated in documentation as far as we can tell.