Session
class Session(backend, max_time=None, *, create_new=True)
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()
Backend für diese Sitzung zurückgeben.
Rückgabe
Backend für diese Sitzung. Keine, wenn unbekannt.
Rückgabetyp
str | Keine
cancel
close
close()
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()
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)
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 derservicedurch diejenige ersetzt wird, die Zugriff auf diese hat. Bitte lesen Sie dieQiskitRuntimeServiceDokumentation zur Verwendung mehrerer Instanzen sowie dieactive_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
status
status()
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()
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