Skip to main content
IBM Quantum Platform

Port-Code zu „ Qiskit Serverless “

Tip

Qiskit Serverless wird aktualisiert, und seine Funktionen ändern sich schnell. Während dieser Entwicklungsphase finden Sie Release Notes und die aktuellste Dokumentation auf der Seite „ Qiskit Serverless “ () unter GitHub.

Das folgende Beispiel zeigt, wie Sie vorhandenen Code portieren können, um Qiskit Serverless zu nutzen.

Note

Der folgende Code geht davon aus, dass Sie Ihre Anmeldedaten gespeichert haben. Wenn Sie dies noch nicht getan haben, folgen Sie den Anweisungen unter Einrichten Ihres IBM Cloud Kontos, um sich mit Ihrem API-Schlüssel zu authentifizieren.


Aktualisieren Sie das Experiment

Note

Erstellen Sie in der serverlosen Version den Laufzeitservice mit get_runtime_service() (aus qiskit_serverless) anstelle von QiskitRuntimeService(), damit die von ihm gestarteten „ IBM Quantum® Compute “-Service-Jobs und -Sitzungen dem übergeordneten „ Qiskit Serverless “-Job zugeordnet werden. Weitere Informationen finden Sie unter „Schreiben Sie Ihr erstes Programm für Qiskit Serverless “.

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)

Hochladen auf Qiskit Serverless

Folgen Sie den Anweisungen auf der Seite Einführung in die Qiskit-Funktionen, um sich mit Ihrem API-Schlüssel zu authentifizieren.

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)

Ausgabe

'transpile_remote_serverless'

Fernsteuerung in „ 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

Ausgabe

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

Nächste Schritte

Empfehlungen
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.