Lumaktaw sa pangunahing nilalaman

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​

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)

I-upload sa Qiskit Serverless​

Sundin ang mga tagubilin sa pahina ng Panimula sa Qiskit Functions para mag-authenticate gamit ang iyong 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.