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)?
Trả lời nhanh: không phải lúc nào.
Cách Qiskit hoạt động với mạch lượng tử và phụ trợ là:
- Tạo mạch lượng tử với API. Mạch lượng tử được lưu trữ trong một
QuantumCircuit
đối tượng.
- Chuyển đổi
QuantumCircuit
đối tượng này thành một DAGCircuit
đối tượng đại diện cho cùng một mạch lượng tử nhưng sử dụng DAG thay vì danh sách các cổng.
- Đưa
DAGCircuit
đối tượng này cho trình biên dịch. Trình biên dịch sẽ xử lý nhiều thứ:
- Tôn trọng cấu trúc liên kết của phụ trợ mà bạn đang biên dịch. Đây là bước sẽ làm phiền bạn vì trình biên dịch có thể sẽ "xáo trộn" (tất nhiên không phải theo cách ngẫu nhiên) các qubit của bạn. Một ngoại lệ tôi thấy là khi mạch đã tôn trọng cấu trúc liên kết phụ trợ. Trong trường hợp này, trình biên dịch có thể không thay đổi các qubit.
- Tôn trọng các cổng cơ sở được sử dụng bởi phụ trợ.
- Tối ưu hóa mạch của bạn. Bước này cũng có thể có vấn đề. Tôi không biết nếu tối ưu hóa như vậy có trong trình biên dịch Qiskit, nhưng nếu trình biên dịch cố gắng tối ưu hóa cũng liên quan đến tỷ lệ lỗi thì bạn có thể sẽ bị qubit "xáo trộn".
Bạn sẽ cần kiểm tra những gì tôi đang nói bằng thực nghiệm.
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?
Nó dường như không thể đối với tôi nhưng hãy chờ câu trả lời của một trong những nhà phát triển của 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?
Rất ít.
Q12
Q13
CX
CX
( 1 - 0,041 )nnCX
10 CX
≈ 0,6620≈ 0,43 .