Skip to main content
IBM Quantum Platform

Code portuaire à Qiskit Serverless

Tip

Qiskit Serverless est en cours de mise à niveau et ses fonctionnalités évoluent rapidement. Pendant cette phase de développement, vous trouverez les notes de mise à jour et la documentation la plus récente sur la page Qiskit ServerlessGitHub.

L'exemple suivant montre comment porter un code existant pour tirer parti de Qiskit Serverless.

Note

Le code suivant suppose que vous avez enregistré vos données d'identification. Si ce n'est pas le cas, suivez les instructions de la section Configurer votre compte IBM Cloud pour vous authentifier avec votre clé API.


Mettre à jour l'expérience

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)

Télécharger sur Qiskit Serverless

Suivez les instructions de la page Introduction aux fonctions Qiskit pour vous authentifier avec votre clé API.

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)

Sortie

'transpile_remote_serverless'

Exécution à distance dans l' 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

Sortie

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

Etapes suivantes

Recommandations
  • Lisez un article dans lequel des chercheurs ont utilisé Qiskit Serverless et le supercalculateur centré sur le quantique pour explorer la chimie quantique.
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.