Qubits-Spezifikation auf IBMQ-Geräten


8

Wie hier gezeigt , weisen CNOT-Gatter zwischen verschiedenen Qubits unterschiedliche Fehlerraten auf. Ich habe folgende Fragen:

1) Entspricht das Definieren einer Schaltung in QISkit q[0]immer dem gleichen Qubit auf einem Gerät (z. B. dem q0im Gerätehandbuch angegebenen Qubit )? Wenn ja, wie kann ich zum Beispiel nur Qubit 12und 13von ibmq_16_melbourne(nur als Beispiel) verwenden?

2) Wenn ein Job auf einem Gerät ausgeführt wird, z. B. mit 3 Qubits, wird dann gleichzeitig ein anderer Job auf diesem Gerät ausgeführt?

3) Wie viele CNOT-Gatter kann eine Schaltung haben, damit ihr Fehler vernünftig bleibt? Wie tief kann ein Stromkreis in einem der Geräte sein, um ein vernünftiges Ergebnis zu erzielen?

Vielen Dank.

Antworten:


7
1) While defining a circuit on QISkit, does q[0] always correspond to the same qubit on a device 
(e.g. the qubit labeled q0 on the device manual)? If so, how can I only use for example qubit 12 and 
13 of ibmq_16_melbourne (just as an example)?

Schnelle Antwort: nicht immer.

Qiskit arbeitet mit Quantenschaltungen und Backends wie folgt:

  1. Generieren Sie die Quantenschaltung mit der API. Die Quantenschaltung ist in einem QuantumCircuitObjekt gespeichert .
  2. Transformieren Sie dieses QuantumCircuitObjekt in ein DAGCircuitObjekt, das dieselbe Quantenschaltung darstellt, jedoch eine DAG anstelle einer Liste von Gattern verwendet.
  3. Geben Sie dieses DAGCircuitObjekt dem Compiler. Der Compiler kümmert sich um mehrere Dinge:
    1. Beachten Sie die Topologie des Backends, für das Sie kompilieren. Dies ist der Schritt, der Sie stören wird, da der Compiler Ihre Qubits wahrscheinlich (natürlich nicht zufällig) "mischen" wird. Eine Ausnahme, die ich sehe, ist, wenn die Schaltung die Backend-Topologie bereits berücksichtigt. In diesem Fall darf der Compiler die Qubits nicht ändern.
    2. Respektieren der vom Backend verwendeten Basis-Gates.
    3. Optimieren Sie Ihre Schaltung. Dieser Schritt könnte auch problematisch sein. Ich weiß nicht, ob eine solche Optimierung im Qiskit-Compiler vorhanden ist, aber wenn der Compiler versucht, auch in Bezug auf die Fehlerraten zu optimieren, kann dies zu "gemischten" Qubits führen.

Sie müssen überprüfen, was ich experimentell sage.

2) If one job is being executed on a device, say for instance using 3 qubits, is any other job being 
ran on that device at the same time?

Es scheint mir unwahrscheinlich, aber warten wir auf die Antwort eines der Entwickler von Qiskit.

3) How many CNOT gates one circuit can have so that its error stays reasonable? Basically, how 
deep can a circuit be on any of the devices to get a reasonable result?

Sehr wenig.

Q12Q13CX CX(1- -0,041)nnCX10 CX0,66200,43


5

Wenn Sie eine Schaltung mit Qiskit einem Quantengerät zuordnen, hängt die Auswahl, welche virtuellen Qubits (die in Ihrer Schaltung) auf welche physischen (Geräte-) Qubits abgebildet werden, davon ab, ob Sie qiskit entscheiden lassen oder Ihre eigenen implementieren initial_layout. Standardmäßig wählt qiskit die am meisten verbundene Teilmenge des Gerätediagramms aus, die zu Ihrer Schaltung passt. Diese Qubits sind normalerweise nicht die Qubits mit dem niedrigsten Rauschen. Wenn Sie bestimmte Qubits auswählen möchten, können Sie ein Layout mit dem initial_layoutSchlüsselwortargument an entweder executeoder übergeben compile. Beachten Sie, dass es während der Swap-Mapping-Phase zu einer zusätzlichen Permutation der Qubit-Labels kommen kann, um die Anzahl der erforderlichen Swap-Gates zu verringern, falls vorhanden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.