Skip to main content
IBM Quantum Platform

QiskitRuntimeService

class QiskitRuntimeService(*args, **kwargs)

GitHub

Basen: object

Klasse zur Interaktion mit dem Dienst „ IBM Quantum Compute “ (früher „ Qiskit Runtime “).

Empfohlene Verwendung:

  • Direkte Instanziierung:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(
        channel="ibm_quantum_platform", # optional
        token="API_KEY",
        instance="CRN" # recommended
        )
  • Speichern des Standardkontos:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    QiskitRuntimeService.save_account(
        token="API_KEY",
        instance="CRN",
        set_as_default = True
        )
    
    service = QiskitRuntimeService()

Für die Dienstauthentifizierung bei einem nicht-lokalen Kanal ist mindestens die Information token erforderlich. Für den Kanal local ist keine Authentifizierung erforderlich. Für nicht-lokale Kanäle wird empfohlen, immer die entsprechende instance bereitzustellen, um API-Aufrufe zu minimieren. Wenn kein instance definiert ist, ruft der Dienst alle Instanzen ab, auf die innerhalb des Kontos zugegriffen werden kann, gefiltert nach region, plans_preference und tags. Wenn plans_preference nicht eingestellt ist, werden kostenlose und Testinstanzen gegenüber bezahlten Instanzen bevorzugt.

Bei Verwendung mehrerer Instanzen wird intern verwaltet, QiskitRuntimeService welche Instanz zu einem bestimmten Zeitpunkt aktiv ist. Methoden wie backend(), backends(), job() und jobs() können dazu führen, dass die aktive Instanz gewechselt wird. Es wird empfohlen, die active_instance() Methode zu verwenden, um zu prüfen, welche Instanz aktiv ist, oder für eine feinere Steuerung ein separates QiskitRuntimeService Objekt pro Instanz zu verwenden.

Beachten Sie auch, dass nur ein Konto pro API-Token verwendet werden kann. Das API-Token ist mit dem Konto verknüpft, in dem es erstellt wurde. Wenn Sie mehrere Konten verwenden möchten, müssen Sie mehrere API-Tokens erstellen.

Der Dienst versucht, ein Konto aus einer Datei zu laden, wenn (a) bei der Instanziierung keine explizite token angegeben wurde oder (b) eine name angegeben ist, selbst wenn dem Dienstkonstruktor eine explizite token angegeben wurde. Das Konto wird anhand der folgenden Kriterien ausgewählt:

  • filenameWenn a filename angegeben wird, werden die Kontodaten von geladen,

    ansonsten werden sie aus der Standardkonfigurationsdatei geladen.

  • Wenn a name angegeben wird, werden die entsprechenden Kontodaten von

    die Konfigurationsdatei, einschließlich channel, token, instance, region plans_preference,, sowie die erweiterten Konfigurationsparameter: url, url_resolver, private_endpoint, verify, und proxies. Wichtiger Hinweis : Ein bei der Instanziierung angegebener expliziter instance Wert überschreibt den Wert der geladenen instance.

  • Wenn nichts name angegeben ist: Wenn channel angegeben ist, lädt der Dienst die

    das Standardkonto, das diesem Kanal in der Konfigurationsdatei zugeordnet ist. set_as_default=TrueAndernfalls wird auf das allgemeine Standardkonto zurückgegriffen, das beim Aufruf save_account() mit definiert wurde.

Da gilt, qiskit-ibm-runtime``0.49 kann auf diese Klasse auch über zugegriffen werden qiskit_ibm_runtime.IBMQuantumComputeService.

Parameter

  • Kanal – Zeichenfolge, die die Serviceplattform identifiziert. Dies ist ibm_quantum_platform standardmäßig auf eingestellt, kann aber zusätzlich die ibm_cloud Werte local und annehmen. ibm_cloud ist eine veraltete Option und verweist auf denselben Pfad wie ibm_quantum_platform; der empfohlene Wert lautet „ibm_quantum_platform`. Wenn ausgewählt local ist, wird der lokale Testmodus verwendet, und einfache Abfragen werden auf einem lokalen Simulator ausgeführt. Weitere Informationen finden Sie in der Dokumentation zum lokalen Testmodus unter IBM Quantum Compute. Bei nicht-lokalen Modi wird der Kanal verwendet, um den Standardwert der API „ URL “ zu ermitteln. ibm_cloud war die Kennung für die alte Plattform „ IBM Cloud “, und die URL URL wird auf die neue Adresse ibm_quantum_platform weitergeleitet.
  • Token – API-Schlüssel für „ IBM Cloud “. Für die IQP-Authentifizierung ist die Angabe eines API-Schlüssels erforderlich. Sofern nicht ausdrücklich angegeben, wird das standardmäßig gespeicherte Konto nach diesem API-Schlüssel abgefragt.
  • URL – Basis-API URL. Standardmäßig gilt dies https://cloud.ibm.com für nicht-lokale Kanäle, die auf die „ IBM Quantum Platform “ zugreifen (z. B., ibm_quantum_platform ibm_cloud). Diese „ URL “ wird von einem url_resolver verarbeitet, um Anfragen an den richtigen Service-Einstiegspunkt weiterzuleiten. url_resolver``urlWenn Sie eine benutzerdefinierte Datei bereitstellen, müssen Sie auch eine passende Datei angeben. Der Standard-Resolver schreibt die Basis- URL, in https://quantum.cloud.ibm.com/api/v[x]. um.
  • Dateiname – Vollständiger Pfad der Datei, in der das Konto angelegt wird. Standard: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
  • name – Name des Kontos, das aus der Datei geladen werden soll.
  • Instanz – Die zu verwendende Service-Instanz. ibm_quantum_platformFür ibm_cloud und handelt es sich dabei um den Namen der Cloud-Ressource ( CRN ) oder den Namen des Dienstes. Wenn dieser Parameter gesetzt ist, wird eine Instanz für die Instanziierung des Dienstes definiert; ist er nicht gesetzt, ruft der Dienst alle Instanzen ab, auf die innerhalb des Kontos gemäß den angegebenen Filterkriterien zugegriffen werden kann. Übergeben "auto" Sie diesen Parameter, um die automatische Auswahl explizit anzufordern, ohne die Warnung „Instanz nicht festgelegt“ auszulösen. Dieser Wert kann auch über save_account() in der Kontodatei gespeichert werden, sodass er bei jeder Instanziierung automatisch wirksam wird.
  • Proxys – Proxy-Konfiguration. Unterstützte optionale Schlüssel sind urls (ein Wörterbuch-Mapping-Protokoll oder ein Protokoll und Host zur „ URL “ des Proxys, dokumentiert unter https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ), username_ntlm, password_ntlm (Benutzername und Passwort zur Aktivierung der NTLM-Benutzerauthentifizierung)
  • Überprüfen – Gibt an, ob das Zertifikat des Servers unter TLS überprüft werden soll.
  • private_endpoint – Verbindung zu privaten API- URL herstellen.
  • url_resolver – Funktion zur Auflösung der URL IBM Quantum ComputeURL. Wird kein Resolver angegeben, wird ein Standard-Resolver für den Zugriff auf verschiedene Service-Endpunkte verwendet.
  • Region – Legen Sie eine Regionseinstellung für die automatische Instanzauswahl fest. Dieses Argument wird ignoriert, wenn ein instance angegeben wird. Zulässige Werte sind us-east oder eu-de. Eine Instanz mit dieser Region wird bevorzugt behandelt, wenn keine Instanz übergeben wird.
  • plans_preference – Eine nach Priorität sortierte Liste von Account-Plan-Namen für die automatische Instanzauswahl. Dieses Argument wird ignoriert, wenn ein instance angegeben wird. Es werden nur Instanzen mit den angegebenen Plan-Namen berücksichtigt. Wenn Sie beispielsweise die Nutzung Ihrer Premium-Konten vermeiden möchten, können Sie einfach angeben, "open" dass nur Ihre Open-Plan-Instanzen verwendet werden sollen. Zu den zulässigen Werten gehören (unter anderem): open, premium, flex, on-prem, pay-as-you-go.
  • Tags – Legen Sie eine Liste von Tags fest, um die verfügbaren Instanzen für die automatische Instanzauswahl zu filtern. Dieses Argument wird ignoriert, wenn ein instance angegeben wird.
  • args (Any)
  • kwargs (Any)

Rückgabe

Ein Beispiel für QiskitRuntimeService oder QiskitRuntimeLocalService wenn der lokale Kanal eingestellt ist.

Erhöht

IBMInputValueError - Wenn eine Eingabe ungültig ist.

Rückgabetyp

QiskitRuntimeService

Erstelle eine QiskitRuntimeService Instanz.


Attribute

channel

Gibt den verwendeten Kanaltyp zurück.

Rückgabe

Der verwendete Kanaltyp.

is_local

Typ: bool

Standardwert: False

Unabhängig davon, ob es sich um einen Vor-Ort- oder einen Fernservice handelt.


Methoden

active_account

active_account()

GitHub

Gibt das IBM Quantum-Konto zurück, das derzeit für die Sitzung verwendet wird.

Rückgabe

Ein Wörterbuch mit Informationen über das Konto, das sich derzeit in der Sitzung befindet.

Rückgabetyp

[d] ictstr, str | Keine

active_instance

active_instance()

GitHub

Gibt die crn der aktuell aktiven Instanz zurück.

Rückgabetyp

str

backend

backend(name, instance=None, use_fractional_gates=False, calibration_id=None)

GitHub

Gibt ein einzelnes Backend zurück, das der angegebenen Filterung entspricht.

Bitte beachten Sie, dass die Verfügbarkeit des Backends erst bei der Übermittlung des Schaltplans überprüft wird. Um den Status des Backends vorab zu überprüfen, verwenden Sie die status() Methode des Backend-Objekts:

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend("ibm_kingston")

status = backend.status()
assert status.operational and status.status_msg == "active"

Parameter

  • name (str) – Name des Backends.
  • instance (str | None) – Geben Sie die CRN des Kontos IBM Cloud an.
  • use_fractional_gates (bool | None) – Setzen Sie den Wert auf „True“, damit die Backends Bruch-Gates einbeziehen können. Siehe „Wann sollten Fractional-Gates nicht verwendet werden?“ für Einschränkungen.
  • calibration_id (str | None) – Die Kalibrierungs-ID, die für die Instanziierung des Backends verwendet wird.

Rückgabe

Ein Backend, das der Filterung entspricht.

Erhöht

  • QiskitBackendNotFoundError - wenn kein Backend gefunden werden konnte.
  • IBMInputValueError – wenn fraktionierte Gates angefordert werden, aber vom Backend nicht unterstützt werden.

Rückgabetyp

Back-End

backends

backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)

GitHub

Gibt alle Backends zurück, die über dieses Konto zugänglich sind, vorbehaltlich einer optionalen Filterung.

Parameter

  • name (str | None) – Backend-Name, nach dem gefiltert werden soll.

  • min_num_qubits (int | None) – Mindestanzahl von Qubits, die das Backend haben muss.

  • instance (str | None) – IBM Cloud cRN-Konto

  • dynamic_circuits (bool | None) – Filtern Sie danach, ob das Backend dynamische Schaltungen unterstützt.

  • filters (Callable[[IBMBackend], bool] | None) –

    Komplexere Filter, wie Lambda-Funktionen. Zum Beispiel:

    QiskitRuntimeService.backends(
        filters=lambda backend: (
            (status := backend.status()).operational
            and status.status_msg == "active"
        )
    )

    gibt nur Backends zurück, die betriebsbereit und aktiv sind.

  • use_fractional_gates (bool | None) – Setzen Sie True, damit die Backends gebrochene Gates enthalten können. Beachten Sie, dass unsere Backends jetzt dynamische Schaltungen und gebrochene Gatter gleichzeitig unterstützen. Bei der Verwendung von dynamischen Schaltkreisen (z. B. if_else) müssen Sie dieses Kennzeichen nicht mehr deaktivieren in Ihrem Algorithmus. Kontrollflussanweisungen werden nicht aus dem Backend entfernt, wenn dieses Flag auf True gesetzt ist. Wenn None, dann sind sowohl gebrochene Gatter als auch Kontrollflussoperationen in den Backends enthalten.

  • calibration_id (str | None) – Die Kalibrierungs-ID, die für die Instanziierung des Backends verwendet wird. Dies sollte nur bei der Auswahl eines einzelnen Backends verwendet werden, da die Kalibrierungs-ID pro Backend definiert wird.

  • **kwargs* (Any* ) -

    Einfache Filter, die einen bestimmten Wert für ein Attribut in der Backend-Konfiguration oder im Status erfordern. Beispiele:

    # Get the operational real backends
    QiskitRuntimeService.backends(simulator=False, operational=True)
    
    # Get the backends with at least 127 qubits
    QiskitRuntimeService.backends(min_num_qubits=127)
    
    # Get the backends that support OpenPulse
    QiskitRuntimeService.backends(open_pulse=True)

    Die vollständige Liste der Backend-Attribute finden Sie in der Dokumentation der Klasse IBMBackend

Rückgabe

Die Liste der verfügbaren Backends, die dem Filter entsprechen.

Erhöht

  • IBMInputValueError - Wenn eine Eingabe ungültig ist.
  • QiskitBackendNotFoundError - Wenn sich das Backend in keiner Instanz befindet.

Rückgabetyp

Liste[ IBMBackend ]

delete_account

static delete_account(filename=None, name=None, channel=None)

GitHub

Löschen eines gespeicherten Kontos von der Festplatte.

Parameter

  • filename (str | None) – Name der Datei, aus der das Konto gelöscht werden soll.
  • name (str | None) – Name des zu löschenden gespeicherten Kontos.
  • channel (ChannelType | None) – Kanaltyp des zu löschenden Standardkontos. Wird ignoriert, wenn ein Kontoname angegeben wird.

Rückgabe

Wahr, wenn das Konto gelöscht wurde. False, wenn kein Konto gefunden wurde.

Rückgabetyp

Bool

delete_job

delete_job(job_id)

GitHub

Einen „ IBM Quantum Compute “-Auftrag löschen.

Beachten Sie, dass dieser Vorgang nicht rückgängig gemacht werden kann.

Parameter

job_id (str) – ID des zu löschenden Auftrags.

Erhöht

  • RuntimeJobNotFound – Der Job existiert nicht.
  • IBMRuntimeError – Methode wird nicht unterstützt.

Rückgabetyp

Keine

instances

instances()

GitHub

Gibt eine Liste der für das aktive Konto verfügbaren Instanzen zurück.

Gibt eine Liste zurück, die eine Reihe von Wörterbüchern enthält, wobei jedes Wörterbuch die folgenden Instanzkennungen enthält: „crn“, „plan“, „name“.

Rückgabe

Eine Liste mit Instanzen, die für das aktive Konto verfügbar sind.

Rückgabetyp

Sequenz[ [dic] tstr, Any]

job

job(job_id)

GitHub

Einen „ IBM Quantum Compute “-Auftrag abrufen.

Parameter

job_id (str) – Job-ID.

Rückgabe

IBM Quantum Compute Auftrag abgerufen.

Erhöht

  • RuntimeJobNotFound - Wenn es die Stelle nicht gibt.
  • IBMRuntimeError - Wenn die Anfrage fehlgeschlagen ist.

Rückgabetyp

RuntimeJobV2

jobs

jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)

GitHub

Alle „ IBM Quantum Compute “-Jobs abrufen, gegebenenfalls unter Anwendung optionaler Filterkriterien.

Parameter

  • limit (int | None) – Anzahl der abzurufenden Aufträge. None bedeutet keine Begrenzung.
  • skip (int) – Startindex für den Abruf von Aufträgen.
  • backend_name (str | None) – Name des Backends, von dem Aufträge abgerufen werden sollen.
  • pending (bool | None) – Filter nach dem Status der ausstehenden Aufträge. Wenn True, werden "QUEUED"- und "RUNNING"-Aufträge einbezogen. Wenn False, werden die Aufträge "DONE", "CANCELLED" und "ERROR" berücksichtigt.
  • program_id (str | None) – Nach Programm-ID filtern.
  • instance (str | None) – Nach der CRN-Nummer der Instanz „ IBM Cloud “ filtern. Sofern nicht anders angegeben, werden die Jobs der aktiven Instanz zurückgegeben.
  • job_tags (list[str] | None) – Nach Tags filtern, die den Jobs zugewiesen sind. Passende Stellenangebote sind mit allen Tags verknüpft.
  • session_id (str | None) – Nach Sitzungsnummer filtern. Alle Aufträge in der Sitzung werden in absteigender Reihenfolge des Erstellungsdatums der Aufträge zurückgegeben.
  • created_after (datetime | None) – Filtert nach dem angegebenen Startdatum in Ortszeit. Damit werden Aufträge gesucht, deren Erstellungsdatum nach diesem lokalen Datum/Uhrzeit liegt (größer oder gleich).
  • created_before (datetime | None) – Filtert nach dem angegebenen Enddatum in Ortszeit. Damit lassen sich Stellen finden, deren Erstellungsdatum vor diesem lokalen Datum/Uhrzeit liegt (kleiner oder gleich).
  • descending (bool) – Wenn True, werden die Aufträge in absteigender Reihenfolge des Erstellungsdatums zurückgegeben (d. h. der neueste Auftrag zuerst), bis das Limit erreicht ist.

Rückgabe

Eine Liste der Stellenangebote bei „ IBM Quantum Compute “.

Erhöht

IBMInputValueError - Wenn ein Eingabewert ungültig ist.

Rückgabetyp

Liste[ RuntimeJobV2 ]

least_busy

least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)

GitHub

Gibt das am wenigsten ausgelastete verfügbare Backend zurück.

Parameter

  • min_num_qubits (int | None) – Mindestanzahl von Qubits, die das Backend haben muss.

  • instance (str | None) – IBM Cloud konto CRN.

  • filters (Callable[[IBMBackend], bool] | None) –

    Filter können definiert werden wie für die backends() methode. Ein Beispiel, um die operativen Backends mit 5 Qubits zu erhalten:

    QiskitRuntimeService.least_busy(n_qubits=5, operational=True)
  • use_fractional_gates (bool | None) –

    In Truediesem Fall werden nur Backends berücksichtigt, die fraktionierte Gatter enthalten, und diese fraktionierten Gatter werden in das zurückgegebene Backend aufgenommen. Siehe „Wann sollten Fractional-Gates nicht verwendet werden?“ für Einschränkungen.

  • kwargs (Any) – Zusätzliche Argumente, die an die Backend-Abfrage übergeben werden.

Rückgabe

Das Backend mit der geringsten Anzahl an ausstehenden Aufträgen.

Erhöht

QiskitBackendNotFoundError - Wenn kein Backend die Kriterien erfüllt.

Rückgabetyp

IBM-Backend

save_account

static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, set_as_default=None, private_endpoint=False, region=None, plans_preference=None, tags=None)

GitHub

Speichern Sie das Konto zur späteren Verwendung auf der Festplatte.

Parameter

  • token (str | None) – IBM Cloud API-Schlüssel.
  • url (str | None) – Die API URL. Standardmäßig wird https://cloud.ibm.com.
  • instance (str | None) – Dies ist ein optionaler Parameter zur Angabe des „ CRN “ oder des Dienstnamens. Wenn dieser Wert festgelegt ist, wird damit eine Standardinstanz für die Instanziierung des Dienstes definiert; ist er nicht festgelegt, ruft der Dienst alle Instanzen ab, auf die innerhalb des Kontos zugegriffen werden kann. Setzen Sie den Wert auf "auto" , um die automatische Auswahl explizit als Voreinstellung zu speichern. Dadurch wird die Warnung „Instanz nicht festgelegt“ bei nachfolgenden Instanziierungen unterdrückt.
  • channel (ChannelType | None) – Kanaltyp. ibm_cloud oder ibm_quantum_platform.
  • filename (str | None) – Vollständiger Pfad zu der Datei, in der das Konto gespeichert ist.
  • name (str | None) – Name des zu speichernden Kontos.
  • proxies (dict | None) – Proxy-Konfiguration. Unterstützte optionale Schlüssel sind urls (ein Wörterbuch, das das Protokoll oder den Host der Proxy-Adresse URL zuordnet; dokumentiert unter https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ), username_ntlm, password_ntlm (Benutzername und Passwort zur Aktivierung der NTLM-Benutzerauthentifizierung)
  • verify (bool | None) – Überprüfen Sie das TLS-Zertifikat des Servers.
  • overwrite (bool | None) – True wenn das bestehende Konto überschrieben werden soll.
  • set_as_default (bool | None) – Bei True wird das Konto unter dem Dateinamen als Standardkonto gespeichert.
  • private_endpoint (bool | None) – Verbindung zur privaten API URL.
  • region (RegionType | None) – Legen Sie eine regionale Einstellung fest. us-east oder eu-de. Eine Instanz mit dieser Region wird vorrangig behandelt, wenn keine Instanz übergeben wird.
  • plans_preference (PlanType | None) – Eine Liste mit Namen von Account-Plänen (open, premium, usw.), nach Präferenz geordnet. Eine Instanz mit dem ersten Wert in der Liste wird vorrangig behandelt, und es werden nur Instanzen mit den angegebenen Plannamen berücksichtigt. Wenn Sie beispielsweise die Nutzung Ihrer Premium-Konten vermeiden möchten, können Sie einfach übergeben, "open" um ausschließlich Ihre Open-Plan-Instanzen zu verwenden. plans_preference wird ignoriert, wenn ein instance angegeben ist.
  • tags (list[str] | None) – Legen Sie eine Liste von Tags fest, um verfügbare Instanzen zu filtern. Instanzen mit diesen Tags werden priorisiert, wenn keine Instanz übergeben wird.

Rückgabetyp

Keine

saved_accounts

static saved_accounts(default=None, channel=None, filename=None, name=None)

GitHub

Liste der auf der Festplatte gespeicherten Konten.

Parameter

  • default (bool | None) – Bei der Einstellung True werden nur Standardkonten zurückgegeben.
  • channel (ChannelType | None) – Kanal „ type.\ `ibm_cloud``“ oder ibm_quantum_platform.
  • filename (str | None) – Name der Datei, deren Konten zurückgegeben werden.
  • name (str | None) – Ist diese Option gesetzt, werden nur Konten mit dem angegebenen Namen zurückgegeben.

Rückgabe

Ein Wörterbuch mit Informationen über die auf der Festplatte gespeicherten Konten.

Erhöht

ValueError - Wenn ein ungültiges Konto auf der Festplatte gefunden wird.

Rückgabetyp

dict

usage

usage()

GitHub

Gibt Nutzungsinformationen für die aktuell aktive Instanz zurück.

Rückgabe

Diktat mit Angaben zur Verwendung.

Rückgabetyp

dict [str, Any]

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