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)?
簡単な答え:常にではありません。
Qiskitが量子回路とバックエンドで機能する方法は次のとおりです。
- APIを使用して量子回路を生成します。量子回路は
QuantumCircuit
オブジェクトに格納されます。
- この
QuantumCircuit
オブジェクトをDAGCircuit
、同じ量子回路を表すが、ゲートのリストの代わりにDAGを使用するオブジェクトに変換します。
- この
DAGCircuit
オブジェクトをコンパイラに渡します。コンパイラーは複数のことを処理します。
- コンパイルするバックエンドのトポロジーを尊重します。これは、コンパイラがキュービットを(ランダムにではなく)シャッフルする可能性があるため、気になるステップです。私が見る1つの例外は、回路がすでにバックエンドトポロジーを尊重している場合です。この場合、コンパイラはキュービットを変更しない場合があります。
- バックエンドで使用される基本ゲートを尊重します。
- 回路を最適化します。この手順も問題になる可能性があります。そのような最適化がQiskitコンパイラーに存在するかどうかはわかりませんが、コンパイラーがエラー率に関しても最適化しようとすると、「シャッフルされた」キュービットになる可能性があります。
私が実験的に言っていることを確認する必要があります。
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?
それは私にはありそうにありませんが、Qiskitの開発者の1人の答えを待ちましょう。
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?
ごくわずか。
Q12
Q13
CX
CX
(1 − 0.041 )んんCX
10 CX
≈ 0.6620≈ 0.43