“天衍”量子云平台短期内将支持:
- tianyan504
- tianyan176
- tianyan176-2
- tianyan24
四台量子计算真机。本文以 tianyan24 为例,展示如何下载并查看真机参数。有了这些参数之后,大家可以使用不同算法进行比特映射等操作,来完成自己的特定任务。
第一步:导入 Cqlib 库。Cqlib 是“天衍”云平台的的官方编程语言,如果没有安装可以使用 pip install cqlib 进行安装。
from cqlib import TianYanPlatform
login_key = "your_key"
platform = TianYanPlatform(login_key=login_key, machine_name="tianyan24")
config = platform.download_config() # 下载参数
print("config = ", config)
config = {
'calibrationTime': '2024-11-28 20:43:18',
'computerId': 'tianyan24',
'disabledCouplers': 'G12,G1,G0,G24,G25,G21,G9,G10,G2,G13,G11',
'disabledQubits': 'Q10,Q2',
'overview': {'name': '',
'type': '',
'qubits': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'couplers': ['G0', 'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9', 'G10', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G19', 'G20', 'G21', 'G22', 'G23', 'G24', 'G25', 'G26', 'G27', 'G28', 'G29', 'G30', 'G31', 'G32', 'G33'],
'readouts': ['R01', 'R02', 'R03', 'R04'],
'coupler_map': {'G0': ['Q1', 'Q0'], 'G1': ['Q2', 'Q1'], 'G2': ['Q3', 'Q2'], 'G3': ['Q4', 'Q3'], 'G4': ['Q5', 'Q4'], 'G5': ['Q6', 'Q5'], 'G6': ['Q7', 'Q6'], 'G7': ['Q8', 'Q7'], 'G8': ['Q9', 'Q8'], 'G9': ['Q10', 'Q9'], 'G10': ['Q11', 'Q10'], 'G11': ['Q12', 'Q0'], 'G12': ['Q13', 'Q1'], 'G13': ['Q14', 'Q2'], 'G14': ['Q15', 'Q3'], 'G15': ['Q16', 'Q4'], 'G16': ['Q17', 'Q5'], 'G17': ['Q18', 'Q6'], 'G18': ['Q19', 'Q7'], 'G19': ['Q20', 'Q8'], 'G20': ['Q21', 'Q9'], 'G21': ['Q22', 'Q10'], 'G22': ['Q23', 'Q11'], 'G23': ['Q13', 'Q12'], 'G24': ['Q14', 'Q13'], 'G25': ['Q15', 'Q14'], 'G26': ['Q16', 'Q15'], 'G27': ['Q17', 'Q16'], 'G28': ['Q18', 'Q17'], 'G29': ['Q19', 'Q18'], 'G30': ['Q20', 'Q19'], 'G31': ['Q21', 'Q20'], 'G32': ['Q22', 'Q21'], 'G33': ['Q23', 'Q22']},
'qubits_length': 24,
'couplers_length': 34,
'readouts_length': 4,
'T1': 44.65,
'T2': 14.13,
'cz_error': 4.59,
'1q_gate_error': 0.2,
'readout_error': 7.78},
'qubit': {'frequency': {'f01': {'param_list': [4.5592, 5.1303, 5.1853, 4.6958, 5.2098, 4.5831, 5.3867, 4.7093, 5.4019, 5.5217, 5.2354, 4.5245, 5.2571, 4.6257, 5.3022, 4.6534, 5.2576, 4.6534, 5.4227, 4.7492, 5.3169, 4.8901],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': 'GHz',
'update_time': '2024-11-20 00:12:01'}},
'relatime': {'T1': {'param_list': [26.5098, 39.3908, 43.3382, 57.2312, 34.5405, 45.5744, 42.1052, 58.6229, 38.1913, 30.9913, 26.1173, 37.5066, 35.8077, 45.0977, 40.6975, 65.1163, 56.9447, 52.5195, 61.9386, 46.3395, 34.6058, 63.2074],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': 'us',
'update_time': '2024-11-19 23:56:38'},
'T2': {'param_list': [8.5874, 4.4595, 7.5631, 21.7137, 20.9959, 5.7953, 15.4973, 4.5458, 21.0929, 18.4278, 7.7743, 12.5815, 5.2754, 10.5279, 8.6959, 16.4883, 24.1362, 26.3389, 28.0844, 6.358, 4.0161, 31.9544],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': 'us',
'update_time': '2024-11-20 00:12:01'}},
'singleQubit': {'gate error': {'param_list': [0.17, 0.15, 0.11, 0.08, 0.16, 0.11, 0.12, 0.08, 0.22, 0.22, 1.15, 0.08, 0.22, 0.13, 0.19, 0.11, 0.09, 0.1, 0.26, 0.25, 0.2, 0.11],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': '%',
'update_time': '2024-11-19 23:22:57'},
'X/2 amplitude': {'param_list': [0.3016, 0.2615, 0.2725, 0.2732, 0.3093, 0.3104, 0.4957, 0.2906, 0.5831, 0.2965, 0.3029, 0.4562, 0.4174, 0.3276, 0.3852, 0.2736, 0.4323, 0.3168, 0.669, 0.2593, 0.3978, 0.1527],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': '',
'update_time': '2024-11-19 23:15:53'},
'X/2 length': {'param_list': [30, 40, 40, 40, 40, 40, 40, 40, 40, 60, 30, 25, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': '',
'update_time': '2024-11-19 21:47:27'}}},
'readout': {'readoutArray': {'Readout Error': {'param_list': [5.23, 4.44, 9.3, 12.97, 7.29, 20.44, 7.54, 5.58, 4.41, 7.05, 3.37, 3.33, 2.81, 6.25, 7.58, 12.43, 5.45, 6.11, 5.48, 16.27, 8.03, 9.87],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': '%', 'update_time': '2024-11-22 18:06:44'},
'|0> readout fidelity': {'param_list': [0.973, 0.9733, 0.9577, 0.9484, 0.9332, 0.7189, 0.9561, 0.9669, 0.9792, 0.9532, 0.9842, 0.9904, 0.9841, 0.9808, 0.9496, 0.9775, 0.9749, 0.9791, 0.9852, 0.8831, 0.8885, 0.9532],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': '',
'update_time': '2024-11-22 18:06:44'},
'|1> readout fidelity': {'param_list': [0.9225, 0.9378, 0.8563, 0.7922, 0.9209, 0.8723, 0.8932, 0.9215, 0.9326, 0.9058, 0.9483, 0.9431, 0.9598, 0.8942, 0.8988, 0.7739, 0.9161, 0.8987, 0.9053, 0.7915, 0.951, 0.8493],
'qubit_used': ['Q0', 'Q1', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23'],
'unit': '',
'update_time': '2024-11-22 18:06:44'}}},
'status': 0,
'twoQubitGate': {'czGate': {'gate error': {'param_list': [7.98, 2.95, 2.49, 4.97, 1.23, 4.4, 1.48, 2.57, 3.04, 1.43, 1.51, 10.18, 5.01, 7.46, 17.2, 2.47, 2.48, 1.29, 1.28, 7.5, 7.48, 6.16, 3.0],
'qubit_used': ['G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G14', 'G15', 'G16', 'G17', 'G18', 'G19', 'G20', 'G22', 'G23', 'G26', 'G27', 'G28', 'G29', 'G30', 'G31', 'G32', 'G33'],
'unit': '%',
'update_time': '2024-11-22 18:09:25'}}}}
从上面的结果中,我们就可以看到 tianyan24 的各种参数。假设我们想挑选出单量子比特门精度最高的 20 个比特,并进行比特映射为例,可仿照下面的操作进行。注意,该案例仅作为展示,不具有明显的现实意义。
qubits_and_errors = config['qubit']['singleQubit']['gate error']
qubits = [int(x[1:]) for x in qubits_and_errors['qubit_used']]
errors = qubits_and_errors['param_list']
num_qubits = 20
sorted_data = sorted(list(zip(qubits, errors)), key=lambda x:x[1]) # 根据误差大小对比特进行排序
qubits = [x[0] for x in sorted_data[:num_qubits]]
print("单比特门保真度最高的 20 个物理比特为:\n", qubits)
qubit_mapping = {i:j for i, j in zip(range(num_qubits), qubits)}
print("\nqubit_mapping:\n")
单比特门保真度最高的 20 个物理比特为:
[4, 8, 13, 18, 19, 3, 6, 17, 23, 7, 15, 1, 5, 0, 16, 22, 9, 11, 14, 21]
qubit_mapping:
{0: 4, 1: 8, 2: 13, 3: 18, 4: 19, 5: 3, 6: 6, 7: 17, 8: 23, 9: 7, 10: 15, 11: 1, 12: 5, 13: 0, 14: 16, 15: 22, 16: 9, 17: 11, 18: 14, 19: 21}