ข้ามไปยังเนื้อหาหลัก

ย้ายโค้ดไปยัง Qiskit Serverless

ตัวอย่างต่อไปนี้แสดงวิธีย้ายโค้ดที่มีอยู่เพื่อใช้ประโยชน์จาก Qiskit Serverless

หมายเหตุ

โค้ดต่อไปนี้ถือว่าคุณบันทึก credentials ไว้แล้ว หากยังไม่ได้ทำ ให้ทำตามคำแนะนำใน ตั้งค่าบัญชี IBM Cloud ของคุณ เพื่อ authenticate ด้วย API key ของคุณ

อัปเดตการทดลอง

from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit.circuit.random import random_circuit

qc_random = [(random_circuit(20, 20, measure=True)) for _ in range(30)]
optimization_level = 3

service = QiskitRuntimeService(channel="ibm_quantum_platform")
backend = service.get_backend(backend_name)

pass_manager = generate_preset_pass_manager(
optimization_level=optimization_level, backend=backend
)

# @distribute_task(target={"cpu": 1})
def transpile_parallel(circuit, pass_manager):
"""Distributed transpilation for an abstract circuit into an ISA circuit for a given backend."""

isa_circuit = pass_manager.run(circuit)

return isa_circuit

transpiled_circuits = [
transpile_parallel(circuit, pass_manager)
for circuit in circuits
]

print(transpiled_circuits)

อัปโหลดไปยัง Qiskit Serverless

ทำตามคำแนะนำในหน้า บทนำสู่ Qiskit Functions เพื่อ authenticate ด้วย API key ของคุณ

from qiskit_ibm_catalog import QiskitServerless, QiskitFunction

# Authenticate to the remote cluster and submit the pattern for remote execution.
serverless = QiskitServerless()

transpile_remote_demo = QiskitFunction(
title="transpile_remote_serverless",
entrypoint="transpile_remote.py",
working_dir="./source_files/",
)

serverless.upload(transpile_remote_demo)

ผลลัพธ์

'transpile_remote_serverless'

รันจากระยะไกลใน Qiskit Serverless

from qiskit.circuit.random import random_circuit
from qiskit_ibm_runtime import QiskitRuntimeService

# Setup inputs
qc_random = [(random_circuit(20, 20, measure=True)) for _ in range(30)]
backend = "ibm_brisbane"
optimization_level = 3

# Running program
transpile_remote_serverless = serverless.load('transpile_remote_serverless')
job = transpile_remote_serverless.run(
circuits=qc_random,
backend=backend,
optimization_level=optimization_level
)

job.job_id

ผลลัพธ์

'727e921d-512d-4b7d-af97-fe29e93ce7ea'

ขั้นตอนถัดไป

คำแนะนำ
Source: IBM Quantum docs — updated 23 ก.พ. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569