Lumaktaw sa pangunahing nilalaman
Ang proyektong ito ay nasa beta. Nakakita ng bug? Mag-bukas ng GitHub issue. May tanong o ideya? Magtanong sa Discussions — gusto naming marinig ang iyong feedback!
Gaano kaganda ang kalidad ng pagsasalin sa pahinang ito?

I-port ang code sa Qiskit Serverless

tip

Ang Qiskit Serverless ay nagbe-bago, at mabilis na nagbabago ang mga feature nito. Sa panahon ng development phase na ito, mahanap ang mga release notes at pinakabagong dokumentasyon sa pahina ng Qiskit Serverless GitHub.

Ipinapakita ng sumusunod na halimbawa kung paano i-port ang kasalukuyang code para gamitin ang Qiskit Serverless.

tala

Ipinapalagay ng sumusunod na code na nai-save mo na ang iyong mga kredensyal. Kung hindi pa, sundin ang mga tagubilin sa I-set up ang iyong IBM Cloud account para mag-authenticate gamit ang iyong API key.

I-update ang eksperimento​

tala

Sa bersyon ng Serverless, gawin ang runtime service gamit ang get_runtime_service() (mula sa qiskit_serverless) sa halip na QiskitRuntimeService(), upang masubaybayan ang mga IBM Quantum® Compute Service job at session na inilulunsad nito laban sa parent na Qiskit Serverless job. Tingnan ang Isulat ang iyong unang Qiskit Serverless program para sa mga detalye.

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 to Qiskit Serverless​

Follow the instructions on the Introduction to Qiskit Functions page to authenticate with your 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)

Output

'transpile_remote_serverless'

Patakbuhin nang remote sa 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'

Mga susunod na hakbang​

Mga Rekomendasyon
  • Basahin ang isang papel kung saan gumamit ang mga mananaliksik ng Qiskit Serverless at quantum-centric supercomputing para tuklasin ang quantum chemistry.