Skip to main content
IBM Quantum Platform

Session

class Session(backend, max_time=None, *, create_new=True)

GitHub

Basen: object

Klasse zum Erstellen einer „ IBM Quantum Compute “-Sitzung (früher „ Qiskit Runtime “).

Mit einem „ IBM Quantum Compute “ können session Sie eine Reihe von iterativen Aufrufen an den Quantencomputer gruppieren. Eine Sitzung wird gestartet, sobald der erste Auftrag innerhalb dieser Sitzung gestartet wird. Nachfolgende Aufträge innerhalb der Sitzung werden vom Scheduler priorisiert.

Mit dieser Klasse Session können Sie eine „ IBM Quantum Compute “-Sitzung öffnen und Aufträge an eine oder mehrere Primitive übermitteln.

Zum Beispiel:

from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, Session, SamplerV2 as Sampler

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Bell Circuit
qr = QuantumRegister(2, name="qr")
cr = ClassicalRegister(2, name="cr")
qc = QuantumCircuit(qr, cr, name="bell")
qc.h(qr[0])
qc.cx(qr[0], qr[1])
qc.measure(qr, cr)

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_circuit = pm.run(qc)

with Session(backend=backend) as session:
    sampler = Sampler(mode=session)
    job = sampler.run([isa_circuit])
    pub_result = job.result()[0]
    print(f"Sampler job ID: {job.job_id()}")
    print(f"Counts: {pub_result.data.cr.get_counts()}")

Parameter

  • backend (BackendV2) – Instanz der Klasse Backend .
  • max_time (int | str | None) – Maximale Dauer, während der eine „ IBM Quantum Compute “-Sitzung offen bleiben kann, bevor sie zwangsweise geschlossen wird. Kann als Sekundenwert (int) oder als Zeichenfolge wie „ “2h “, „ 30m “ oder „ 40s” “ angegeben werden. Dieser Wert muss unter dem vom System vorgegebenen Höchstwert liegen.
  • create_new (bool | None) – Wenn True, wird der POST-Session-API-Endpunkt aufgerufen, um eine neue Sitzung zu erstellen. Verhindert das Erstellen einer neuen Sitzung, wenn aufgerufen from_id() wird.

Erhöht

ValueError - Wenn ein Eingabewert ungültig ist.


Attribute

service

Rückgabe des mit dieser Sitzung verbundenen Dienstes.

Rückgabe

qiskit_ibm_runtime.QiskitRuntimeService die mit dieser Sitzung verbunden sind.

session_id

Gibt die Sitzungs-ID zurück.

Rückgabe

Die Sitzungs-ID. Keine, wenn das Backend ein Simulator ist.


Methoden

backend

backend()

GitHub

Backend für diese Sitzung zurückgeben.

Rückgabe

Backend für diese Sitzung. Keine, wenn unbekannt.

Rückgabetyp

str | Keine

cancel

cancel()

GitHub

Abbrechen aller ausstehenden Aufträge in einer Sitzung.

Rückgabetyp

Keine

close

close()

GitHub

Beenden Sie die Sitzung, damit keine neuen Aufträge mehr angenommen werden.

Schließen Sie die Sitzung, so dass keine neuen Aufträge mehr angenommen werden, aber vorhandene Aufträge in der Warteschlange oder laufende Aufträge bis zum Abschluss ausgeführt werden. Die Sitzung wird beendet, sobald keine Aufträge mehr anstehen.

Rückgabetyp

Keine

details

details()

GitHub

Details zur Sitzung zurückgeben.

Rückgabe

Ein Wörterbuch mit den Details der Sitzungen.

  • idid der Sitzung.
  • backend_name: für die Sitzung verwendetes Backend.
  • interactive_timeout: Die maximale Leerlaufzeit (in Sekunden) zwischen Aufträgen, die auftreten darf, bevor die Sitzung deaktiviert wird.
  • max_time: Maximal zulässige Zeit (in Sekunden) für die Sitzung, vorbehaltlich der Plangrenzen.
  • active_timeout: Die maximale Zeit (in Sekunden), die eine Sitzung aktiv bleiben kann.
  • state: Status der Sitzung - offen, aktiv, inaktiv oder geschlossen.
  • accepting_jobs: Ob die Sitzung Aufträge annimmt oder nicht.
  • last_job_started: Zeitstempel für den Beginn des letzten Auftrags in der Sitzung.
  • last_job_completed: Zeitstempel für die Beendigung des letzten Auftrags in der Sitzung.
  • started_at: Zeitstempel für den Beginn der Sitzung.
  • closed_at: Zeitstempel, wann die Sitzung beendet wurde.
  • activated_at: Zeitstempel, wann der Sitzungsstatus in aktiv geändert wurde.
  • mode: Ausführungsmodus der Sitzung.
  • usage_time: Die Nutzungszeit dieser Sitzung oder dieses Stapels in Sekunden. Die Nutzung ist definiert als die Zeit, die ein Quantensystem für die Ausführung eines Auftrags benötigt.

Rückgabetyp

dict [str, Any] | None

from_id

classmethod from_id(session_id, service, use_fractional_gates=False, calibration_id=None)

GitHub

Erstelle ein Session-Objekt mit einem bestimmten session_id.

Zum Beispiel:

from qiskit_ibm_runtime import QiskitRuntimeService, Session
service = QiskitRuntimeService()
job = service.job(<job_id>)
existing_session_id = job.session_id

new_session = Session.from_id(existing_session_id, service)

Parameter

  • session_id (str) – Die ID der zu erstellenden Sitzung. Dies muss eine bereits vorhandene Sitzungs-ID sein.
  • QiskitRuntimeServiceservice (QiskitRuntimeService) – Instanz der Klasse. session_idWenn Sie mehrere Instanzen verwenden, beachten Sie bitte, dass die aktive Cloud-Instanz in der service durch diejenige ersetzt wird, die Zugriff auf diese hat. Bitte lesen Sie die QiskitRuntimeService Dokumentation zur Verwendung mehrerer Instanzen sowie die active_instance() Methode zur Überprüfung, welche Instanz aktiv ist.
  • use_fractional_gates (bool) – Ob für das Backend, das zur Erstellung der Sitzung verwendet wird, Teil-Gates zugelassen werden sollen oder nicht.
  • calibration_id (str | None) – Die Kalibrierungs-ID für das Backend, das zum Erstellen der Sitzung verwendet wird.

Erhöht

  • IBMInputValueError – Falls die angegebene session_id nicht existiert.
  • IBMRuntimeError – Wenn das Backend der Sitzung unbekannt ist.

Rückgabe

Eine neue Session mit dem angegebenen session_id

Rückgabetyp

Sitzung

status

status()

GitHub

Rückgabe des aktuellen Sitzungsstatus.

Rückgabe

Sitzungsstatus als Zeichenkette.

  • Pending: Sitzung ist erstellt, aber nicht aktiv. Sie wird aktiv, wenn der nächste Auftrag dieser Sitzung aus der Warteschlange genommen wird.
  • In progress, accepting new jobs: Sitzung ist aktiv und nimmt neue Aufträge an.
  • In progress, not accepting new jobs: Sitzung ist aktiv und nimmt keine neuen Aufträge an.
  • Closed: max_time ist abgelaufen oder die Sitzung wurde explizit beendet.
  • None: Statusangaben sind nicht verfügbar.

Rückgabetyp

str | Keine

usage

usage()

GitHub

Rückgabe der Sitzungsnutzung in Sekunden.

Die Sitzungsnutzung ist die Zeit vom Start des ersten Auftrags bis zur Inaktivität der Sitzung, ihrer Schließung oder der Beendigung des letzten Auftrags, je nachdem, was zuletzt eintritt.

Die Batch-Nutzung ist die Zeit, die alle Aufträge auf der QPU verbringen.

Rückgabetyp

schwimmer | Keine

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