Langkau ke kandungan utama

Pindahkan kod ke Qiskit Serverless

petua

Qiskit Serverless sedang menerima naik taraf, dan ciri-cirinya berubah dengan pantas. Sepanjang fasa pembangunan ini, dapatkan nota keluaran dan dokumentasi terkini di halaman GitHub Qiskit Serverless.

Contoh berikut menunjukkan cara memindahkan kod sedia ada untuk memanfaatkan Qiskit Serverless.

nota

Kod berikut mengandaikan bahawa anda telah menyimpan kelayakan anda. Jika belum, ikuti arahan dalam Sediakan akaun IBM Cloud anda untuk mengesahkan dengan kunci API anda.

Kemaskini 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)

Muat naik ke Qiskit Serverless

Ikuti arahan pada halaman Pengenalan kepada Fungsi Qiskit untuk mengesahkan dengan kunci API anda.

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 jauh dalam 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 seterusnya

Cadangan
  • Baca kertas kerja di mana penyelidik menggunakan Qiskit Serverless dan pengkomputeran super berpusatkan kuantum untuk meneroka kimia kuantum.