Skip to main content
IBM Quantum Platform

Einführung in die Ausführungsmodi von Quantencomputern

Als der „ IBM Quantum -Compute-Service“ eingeführt wurde, konnten Nutzer Circuits nur als einzelne Jobs ausführen. Mit dem Aufkommen verschiedener Arten von Quanten-Workloads wurde deutlich, dass unterschiedliche Planungsstrategien erforderlich sind. Die Ausführungsmodi legen fest, wie Ihre Jobs eingeplant werden. Durch die Wahl des richtigen Ausführungsmodus können Sie sicherstellen, dass Ihre Workloads innerhalb Ihres Budgets effizient ausgeführt werden. Es gibt drei Ausführungsmodi: Job, Sitzung und Stapelverarbeitung.


Jobmodus

Eine einzelne einfache Anfrage, die ohne Kontextmanager gestellt wird. Schaltkreise und Eingaben werden als „Primitive Unified Blocks“ (PUBs) gebündelt und als Ausführungsaufgabe an den Quantencomputer übermittelt. Um den Job-Modus zu aktivieren, geben Sie dies mode=backend bei der Instanziierung eines Primitivs an. Beispiele zur Verwendung finden Sie unter „Estimator“ und „Sampler “.


Stapelbetrieb

Ein Multi-Job-Manager für die effiziente Durchführung von Experimenten, die aus Multi-Job-Workloads bestehen. Diese Workloads bestehen aus unabhängig voneinander ausführbaren Jobs, die keine bedingte Beziehung zueinander haben. Im Batch-Modus reichen Benutzer ihre Aufträge alle auf einmal ein.

Das System parallelisiert oder verknüpft den Vorverarbeitungsschritt (klassische Berechnung) jedes einzelnen Jobs, um die Quantenausführung über alle Jobs hinweg enger zu bündeln, und führt dann die Quantenausführung jedes Jobs in schneller Folge aus, um die effizientesten Ergebnisse zu erzielen. Weitere Informationen zum Thema Threading finden Sie auf der FAQ-Seite zum Ausführungsmodus.

Eine Reihe von Aufträgen, die im Batch-Modus ausgeführt werden.  Der klassische Rechenteil eines jeden Auftrags erfolgt gleichzeitig, dann werden alle Aufträge an die QPU geschickt.  Die QPU ist ab dem Zeitpunkt, an dem der erste Auftrag die QPU erreicht, bis zum Abschluss des letzten Auftrags auf der QPU für Ihre Nutzung gesperrt.  Es gibt keine Lücke zwischen den Aufträgen, in der die QPU im Leerlauf ist.
So funktioniert ein Batch
Hinweise
  • Bei der Stapelverarbeitung wird nicht garantiert, dass die Aufträge in der Reihenfolge ausgeführt werden, in der sie eingereicht werden. Auch wenn Ihre Batch-Aufträge so eng wie möglich beieinander liegen, erhalten sie keinen exklusiven Zugriff auf das Backend. Daher können Ihre Batch-Aufträge parallel zu den Aufträgen anderer Benutzer laufen, wenn die Verarbeitungskapazität der QPU ausreichend ist. Darüber hinaus könnten QPU-Kalibrierungsaufträge zwischen den Stapelaufträgen laufen.
  • Die Wartezeit verringert sich nicht für den ersten Auftrag, der innerhalb eines Batches eingereicht wird. Daher bieten Batches keine Vorteile bei der Ausführung eines einzelnen Auftrags.

Um im Batch-Modus zu arbeiten, geben Sie bei der Instanziierung eines Primitivs mode=batch an oder führen Sie den Auftrag in einem Batch-Kontextmanager aus. Beispiele finden Sie unter Aufträge in einem Batch ausführen.


Sitzungsmodus

Ein spezielles Fenster zur Ausführung einer Workload mit mehreren Aufträgen. Während dieses Zeitfensters hat der Benutzer exklusiven Zugriff auf das System, und es können keine anderen Aufträge ausgeführt werden – einschließlich Kalibrierungsaufträge. Dadurch können Nutzer auf vorhersehbarere Weise mit Variationsalgorithmen experimentieren und sogar mehrere Experimente gleichzeitig durchführen, wobei sie die Parallelität im Stack nutzen. Durch die Verwendung von Sitzungen lassen sich Verzögerungen vermeiden, die dadurch entstehen, dass jeder Auftrag einzeln in die Warteschlange gestellt wird. Dies kann insbesondere bei iterativen Aufgaben nützlich sein, die eine häufige Kommunikation zwischen klassischen und Quantenressourcen erfordern. Die Kostenfunktion in der Abbildung entspricht der eines Quantenvariationsalgorithmus, der auf dem lokalen Rechner eines Benutzers ausgeführt wird.

Ein Satz von Aufträgen wird im Sitzungsmodus ausgeführt, der andere im Batch-Modus.  Zwischen den einzelnen Aufträgen liegt die interaktive TTL (Interactive Time to Live).  Das aktive Fenster wird mit dem Start des ersten Auftrags geöffnet und geschlossen, sobald der letzte Auftrag abgeschlossen ist. Nachdem der letzte Auftrag der ersten Auftragsreihe abgeschlossen ist, wird das aktive Fenster beendet und die Sitzung angehalten (jedoch nicht geschlossen).  Anschließend beginnt eine weitere Reihe von Aufträgen, und die Aufträge werden auf ähnliche Weise fortgesetzt. Die QPU steht Ihnen während der gesamten Sitzung zur Verfügung.
So funktioniert eine Sitzung.

Um im Sitzungsmodus zu arbeiten, geben Sie mode=session an, wenn Sie ein Primitiv instanziieren, oder führen Sie den Auftrag in einem Sitzungskontextmanager aus. Beispiele finden Sie unter Aufträge in einer Sitzung ausführen.

Hinweise
  • Die Warteschlangenzeit verringert sich nicht für den ersten Auftrag, der innerhalb einer Sitzung übermittelt wird. Daher bieten Sitzungen bei der Ausführung eines einzelnen Auftrags keine Vorteile.
  • Open-Plan-Benutzer können keine Sitzungsaufträge einreichen.

Grundlegender Arbeitsablauf

Der grundlegende Arbeitsablauf für Stapel und Sitzungen ist ähnlich:

  1. Der erste Auftrag eines Stapels oder einer Sitzung kommt in die normale Warteschlange. Bei Stapeln wird der gesamte Stapel von Aufträgen gemeinsam eingeplant.
  2. Wenn der erste Auftrag läuft, beginnt der Timer für die maximale Lebenszeit (TTL) zu laufen und wird nicht gestoppt oder pausiert, bis das Ende erreicht ist.
  3. Der interaktive TTL-Timer startet nach Beendigung jedes Auftrags. Wenn innerhalb des interaktiven TTL-Fensters keine Workload-Aufträge bereitstehen, wird die Workload vorübergehend deaktiviert und die normale Auftragsauswahl wieder aufgenommen. Ein Auftrag kann den deaktivierten Workload reaktivieren, wenn der Batch oder die Session ihren maximalen TTL-Wert noch nicht erreicht hat.
    Note

    Der Auftrag muss die normale Warteschlange durchlaufen, um die Arbeitslast zu reaktivieren.

  4. Wenn der maximale TTL-Wert erreicht ist, endet der Workload und alle verbleibenden Aufträge in der Warteschlange schlagen fehl. Ein laufender Auftrag wird nicht zu Ende geführt, wenn dadurch das Kostenlimit der Instanz überschritten würde.

Das folgende Video veranschaulicht den grundlegenden Arbeitsablauf am Beispiel von Sitzungen:

Ausführliche Informationen zu den TTL-Timern finden Sie im Leitfaden Maximale Ausführungszeit.


Nächste Schritte

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