Lewati ke konten utama

Porting kode ke Qiskit Serverless

Contoh berikut menunjukkan cara porting kode yang sudah ada untuk memanfaatkan Qiskit Serverless.

catatan

Kode berikut mengasumsikan bahwa kamu sudah menyimpan kredensial. Kalau belum, ikuti petunjuk di Siapkan akun IBM Cloud-mu untuk autentikasi dengan API key-mu.

Perbarui eksperimen​

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)

Upload ke Qiskit Serverless​

Ikuti petunjuk di halaman Pengenalan Qiskit Functions untuk autentikasi dengan API key-mu.

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)

Output

'transpile_remote_serverless'

Jalankan dari jarak jauh di 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

Output

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

Langkah berikutnya​

Rekomendasi
  • Baca paper di mana para peneliti menggunakan Qiskit Serverless dan quantum-centric supercomputing untuk menjelajahi kimia kuantum.
Source: IBM Quantum docs β€” updated 23 Feb 2026
English version on doQumentation β€” updated 7 Mei 2026
This translation based on the English version of 11 Mar 2026