Skip to main content
IBM Quantum Platform

QiskitRuntimeService

class QiskitRuntimeService(*args, **kwargs)

GitHub

Bases : object

Classe permettant d'interagir avec le service « IBM Quantum Compute » (anciennement « Qiskit Runtime »).

Utilisations recommandées :

  • Instanciation directe :

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(
        channel="ibm_quantum_platform", # optional
        token="API_KEY",
        instance="CRN" # recommended
        )
  • Sauvegarde du compte par défaut :

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

Les informations minimales requises pour l'authentification du service sur un canal non local sont les suivantes : token. Le canal local ne nécessite pas d'authentification. Pour les canaux non locaux, il est recommandé de toujours fournir l'adresse instance afin de minimiser les appels à l'API. Si une adresse instance n'est pas définie, le service recherchera toutes les instances accessibles dans le compte, filtrées par region, plans_preference, et tags. Si plans_preference n'est pas défini, les instances gratuites et d'essai seront prioritaires sur les instances payantes.

En cas d'utilisation de plusieurs instances, QiskitRuntimeService le système gérera en interne l'instance active à un moment donné. Des méthodes telles que backend(), backends(), job() et jobs() peuvent entraîner la modification de l'instance active. Il est recommandé d'utiliser la active_instance() méthode pour vérifier quelle instance est active, ou d'utiliser un objet distinct QiskitRuntimeService par instance pour un contrôle plus précis.

Notez également qu'un seul compte par jeton API peut être utilisé. Le jeton API est lié au compte dans lequel il a été créé. Si vous souhaitez utiliser plusieurs comptes, vous devez créer plusieurs jetons API.

Le service tentera de charger un compte à partir d'un fichier si (a) aucun token explicite n'a été fourni lors de l'instanciation ou (b) si un name est spécifié, même si un token explicite a été fourni au constructeur du service. Le compte sera sélectionné sur la base des critères suivants :

  • Si un filename est spécifié, les informations du compte seront chargées à partir de filename,

    sinon, ils seront chargés à partir du fichier de configuration par défaut.

  • Si un name est spécifié, les informations relatives au compte correspondant seront chargées à partir de

    le fichier de configuration, y compris channel, token, instance, region, plans_preference, ainsi que les paramètres de configuration avancés : url, url_resolver, private_endpoint, verify, et proxies. instanceRemarque importante : une valeur explicitement instance fournie lors de l'instanciation remplacera la valeur du fichier chargé.

  • Si n'est pas name spécifié : si channel est spécifié, le service chargera le

    compte par défaut associé à ce canal, tel qu'il figure dans le fichier de configuration. Sinon, le système reviendra au compte par défaut général, défini lors de l'appel de save_account() avec set_as_default=True.

Étant donné que, qiskit-ibm-runtime``0.49 cette classe est également accessible sous la forme qiskit_ibm_runtime.IBMQuantumComputeService.

Paramètres

  • channel – Chaîne de caractères identifiant la plateforme de services. Cette option est définie ibm_quantum_platform par défaut sur, mais peut également prendre les ibm_cloud valeurs local et. ibm_cloud Il s'agit d'une option héritée qui pointe vers le même chemin que ibm_quantum_platform; la valeur recommandée est ibm\_quantum\_platform\. Si cette option est local sélectionnée, le mode de test local sera utilisé et les requêtes primitives s'exécuteront sur un simulateur local. Pour plus d'informations, consultez la documentation relative au mode de test local sur IBM Quantum Compute. Pour les modes non locaux, ce canal sert à déterminer la valeur par défaut de l'API « URL ». ibm_cloud Il s'agissait de l'identifiant de l'ancienne plateforme IBM Cloud, et son URL URL sera redirigée vers la nouvelle ibm_quantum_platform adresse.
  • token – Clé API d' IBM Cloud. Il est nécessaire de fournir une clé API pour l'authentification IQP. Si elle n'est pas fournie explicitement, cette clé API sera récupérée dans le compte enregistré par défaut.
  • url – API de base URL. La valeur par défaut est https://cloud.ibm.com pour les canaux non locaux accédant à l'adresse IBM Quantum Platform (par exemple, ibm_quantum_platform, ibm_cloud). Cette adresse URL est traitée par un url_resolver afin d'acheminer les requêtes vers le point d'entrée du service approprié. url_resolver``urlSi vous fournissez un fichier de configuration personnalisé, vous devez également fournir un fichier correspondant. Le résolveur par défaut réécrit l' URL e de base en https://quantum.cloud.ibm.com/api/v[x].
  • nom_fichier – Chemin d'accès complet du fichier dans lequel le compte est créé. Par défaut : _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
  • nom – Nom du compte à charger à partir du fichier.
  • instance – L'instance du service à utiliser. Pour ibm_cloud et ibm_quantum_platform, il s'agit du nom de la ressource cloud ( CRN ) ou du nom du service. Si ce paramètre est défini, il permettra de définir une instance pour l'instanciation du service; s'il n'est pas défini, le service récupérera toutes les instances accessibles au sein du compte selon les critères de filtrage spécifiés. Passez "auto" ce paramètre pour demander explicitement la sélection automatique sans déclencher l'avertissement « instance non définie ». Cette valeur peut également être enregistrée dans le fichier de configuration via save_account() afin qu'elle s'applique automatiquement à chaque instanciation.
  • Proxys – Configuration des proxys. Les clés optionnelles prises en charge sont urls (un protocole de mappage de dictionnaire ou un protocole et un hôte vers l' URL du proxy, documenté à l'adresse https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ), username_ntlm, password_ntlm (nom d'utilisateur et mot de passe pour activer l'authentification utilisateur NTLM)
  • Vérifier – Indique s'il faut vérifier le certificat d' TLS s du serveur.
  • private_endpoint – Se connecter à l' URL de l'API privée.
  • url_resolver – Fonction utilisée pour résoudre l'adresse IBM Quantum ComputeURL. Si aucune information n'est fournie, un résolveur par défaut sera utilisé pour accéder aux différents points de terminaison des services.
  • région – Définissez une préférence de région pour la sélection automatique des instances. Cet argument est ignoré si un instance est spécifié. Les valeurs acceptées sont us-east ou eu-de. Une instance associée à cette région sera privilégiée si aucune instance n'est fournie.
  • plans_preference – Une liste des noms de plans de compte classés par ordre de priorité pour la sélection automatique des instances. Cet argument est ignoré si un instance est spécifié. Seules les instances portant les noms de forfait indiqués seront prises en compte. Par exemple, si vous souhaitez éviter d'utiliser vos comptes premium, il vous suffit de passer le paramètre "open" pour n'utiliser que vos instances en mode ouvert. Les valeurs autorisées comprennent (sans s'y limiter) : open, premium, flex, on-prem, pay-as-you-go.
  • balises – Définissez une liste de balises pour filtrer les instances disponibles en vue d'une sélection automatique. Cet argument est ignoré si un instance est spécifié.

Retours

Une instance de QiskitRuntimeService ou QiskitRuntimeLocalService si le canal local est défini.

Augmentations

IBMInputValueError - Si une entrée n'est pas valide.

Créer une QiskitRuntimeService instance.


Attributs

channel

Retourne le type de canal utilisé.

Retours

Le type de canal utilisé.


Méthodes

active_account

active_account()

GitHub

Retourne le compte IBM Quantum actuellement utilisé pour la session.

Retours

Un dictionnaire contenant des informations sur le compte en cours de session.

Type de retour

[d] ictstr, str | Aucun

active_instance

active_instance()

GitHub

Renvoie le crn de l'instance active actuelle.

Type de retour

str

backend

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

GitHub

Renvoie un seul backend correspondant au filtrage spécifié.

Veuillez noter que la disponibilité du backend n'est vérifiée qu'au moment de l'envoi du circuit. Pour vérifier l'état du backend à l'avance, utilisez la status() méthode sur l'objet backend :

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend()

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

Paramètres

  • name (str) – Nom du backend.
  • instance (str | None) – Indiquez le CRN du compte IBM Cloud.
  • use_fractional_gates (bool | None) – Définissez cette valeur sur « True » pour permettre aux backends d'inclure des portes fractionnaires. Pour connaître les restrictions d 'utilisation, consultez la section « Quand ne pas utiliser les portes fractionnaires ».
  • calibration_id (str | None) – L'identifiant de calibration utilisé pour l'instanciation du backend.

Retours

Un backend correspondant au filtrage.

Augmentations

  • QiskitBackendNotFoundError - si aucun backend n'a pu être trouvé.
  • IBMInputValueError – si des portes fractionnaires sont demandées mais ne sont pas prises en charge par le backend.

Type de retour

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

Renvoie tous les backends accessibles via ce compte, sous réserve d'un filtrage optionnel.

Paramètres

  • name (str | None) – Nom du backend à filtrer.

  • min_num_qubits (int | None) – Nombre minimum de qubits que le backend doit posséder.

  • instance (str | None) – IBM Cloud compte CRN

  • dynamic_circuits (bool | None) – Filtrer en fonction de la prise en charge des circuits dynamiques par le backend.

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

    Filtres plus complexes, tels que les fonctions lambda. Par exemple :

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

    ne renverra que les backends opérationnels et actifs.

  • use_fractional_gates (bool | None) – Mettre True pour permettre aux backends d'inclure des portes fractionnaires. Notez que nos backends prennent désormais en charge simultanément les circuits dynamiques et les portes fractionnaires. Il n'est plus nécessaire de désactiver ce drapeau lors de l'utilisation de circuits dynamiques (par exemple if_else) dans votre algorithme. Les instructions de flux de contrôle ne sont pas supprimées du backend lorsque cet indicateur est à True. Si None, les portes fractionnaires et les opérations de flux de contrôle sont incluses dans les backends.

  • calibration_id (str | None) – L'identifiant de calibration utilisé pour l'instanciation du backend. Cette option ne doit être utilisée que lors de la sélection d'un seul backend, car l'identifiant d'étalonnage est défini pour chaque backend.

  • **kwargs* (Any* ) -

    Filtres simples qui requièrent une valeur spécifique pour un attribut de la configuration ou de l'état du backend. Exemples :

    # 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)

    Pour la liste complète des attributs du backend, voir la documentation de la classe IBMBackend

Retours

La liste des backends disponibles qui correspondent au filtre.

Augmentations

  • IBMInputValueError - Si une entrée n'est pas valide.
  • QiskitBackendNotFoundError - Si le backend n'est dans aucune instance.

Type de retour

liste[ IBMBackend ]

delete_account

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

GitHub

Supprimer un compte enregistré sur le disque.

Paramètres

  • filename (str | None) – Nom du fichier dans lequel le compte doit être supprimé.
  • name (str | None) – Nom du compte enregistré à supprimer.
  • channel (ChannelType | None) – Type de canal du compte par défaut à supprimer. Ce paramètre est ignoré si un nom de compte est fourni.

Retours

Vrai si le compte a été supprimé. Faux si aucun compte n'a été trouvé.

Type de retour

booléen

delete_job

delete_job(job_id)

GitHub

Supprimer une tâche « IBM Quantum Compute ».

Notez que cette opération ne peut pas être annulée.

Paramètres

job_id (str) – ID du travail à supprimer.

Augmentations

  • RuntimeJobNotFound – Le poste n'existe pas.
  • IBMRuntimeError – La méthode n'est pas prise en charge.

Type de retour

Aucun

instances

instances()

GitHub

Renvoie une liste des instances disponibles pour le compte actif.

Renvoie une liste contenant une série de dictionnaires, chacun comportant les identifiants d'instance suivants : « crn », « plan », « name ».

Retours

Une liste des instances disponibles pour le compte actif.

Type de retour

Séquence[ [dic] tstr, Any]

job

job(job_id)

GitHub

Récupérer une tâche « IBM Quantum Compute ».

Paramètres

job_id (str) – Job ID.

Retours

IBM Quantum Compute tâche récupérée.

Augmentations

  • RuntimeJobNotFound - Si l'emploi n'existe pas.
  • IBMRuntimeError - Si la demande a échoué.

Type de retour

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

Récupérer toutes les missions d' IBM Quantum Compute, en appliquant éventuellement des critères de filtrage.

Paramètres

  • limit (int | None) – Nombre de travaux à récupérer. None signifie qu'il n'y a pas de limite.
  • skip (int) – Index de départ pour l'extraction des travaux.
  • backend_name (str | None) – Nom du backend à partir duquel les travaux doivent être récupérés.
  • pending (bool | None) – Filtre sur l'état des travaux en attente. Si True, les travaux "QUEUED" et "RUNNING" sont inclus. Si False, les travaux "DONE", "CANCELLED" et "ERROR" sont inclus.
  • program_id (str | None) – Filtrer par ID de programme.
  • instance (str | None) – Filtrer par IBM Cloud crn d'instance.
  • job_tags (list[str] | None) – Filtrer par mots-clés attribués aux emplois. Les emplois correspondants sont associés à toutes les balises.
  • session_id (str | None) – Filtre sur l'identifiant de la session. Tous les travaux de la session seront renvoyés dans l'ordre de leur date de création.
  • created_after (datetime | None) – Filtre sur la date de début donnée, en heure locale. Cette fonction permet de rechercher les emplois dont la date de création est postérieure (supérieure ou égale) à cette date/heure locale.
  • created_before (datetime | None) – Filtre sur la date de fin donnée, en heure locale. Cette fonction est utilisée pour rechercher les emplois dont la date de création est antérieure (inférieure ou égale) à cette date/heure locale.
  • descending (bool) – Si True, les travaux sont renvoyés dans l'ordre décroissant de leur date de création (c'est-à-dire le plus récent en premier) jusqu'à ce que la limite soit atteinte.

Retours

Une liste d'offres d'emploi chez IBM Quantum Compute.

Augmentations

IBMInputValueError - Si une valeur d'entrée n'est pas valide.

Type de retour

liste[ RuntimeJobV2 ]

least_busy

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

GitHub

Renvoie le backend disponible le moins occupé.

Paramètres

  • min_num_qubits (int | None) – Nombre minimum de qubits que le backend doit posséder.

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

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

    Les filtres peuvent être définis comme pour la méthode backends() méthode. Un exemple pour obtenir les backends opérationnels avec 5 qubits :

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

    TrueDans ce cas, seuls les backends comportant des portes fractionnaires sont pris en compte, et ces portes fractionnaires sont incluses dans le backend renvoyé. Pour connaître les restrictions d 'utilisation, consultez la section « Quand ne pas utiliser les portes fractionnaires ».

  • kwargs (Any) – Arguments supplémentaires transmis à la requête du backend.

Retours

Le backend ayant le plus petit nombre de travaux en attente.

Augmentations

QiskitBackendNotFoundError - Si aucun backend ne correspond aux critères.

Type de retour

IBMBackend

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

Sauvegarder le compte sur le disque pour une utilisation ultérieure.

Paramètres

  • token (str | None) – IBM Cloud Clé API.
  • url (str | None) – L'API URL. La valeur par défaut est https://cloud.ibm.com.
  • instance (str | None) – Il s'agit d'un paramètre facultatif permettant de spécifier l' CRN ou le nom du service. Si ce paramètre est défini, il déterminera l'instance par défaut à utiliser pour l'instanciation du service; s'il n'est pas défini, le service récupérera toutes les instances accessibles au sein du compte. Définissez la valeur sur "auto" pour enregistrer explicitement la sélection automatique comme préférence, ce qui supprime l'avertissement « instance non définie » lors des instanciations suivantes.
  • channel (ChannelType | None) – Type de canal. ibm_cloud ou ibm_quantum_platform.
  • filename (str | None) – Chemin complet du fichier dans lequel le compte est enregistré.
  • name (str | None) – Nom du compte à sauvegarder.
  • proxies (dict | None) – Configuration du serveur proxy. Les clés optionnelles prises en charge sont urls (un dictionnaire associant le protocole ou le protocole et l'hôte à l' URL e du proxy, documenté à l'adresse https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ), username_ntlm, password_ntlm (nom d'utilisateur et mot de passe pour activer l'authentification utilisateur NTLM)
  • verify (bool | None) – Vérifiez le certificat TLS du serveur.
  • overwrite (bool | None) – True si le compte existant doit être remplacé.
  • set_as_default (bool | None) – Si True, le compte est enregistré dans le nom du fichier, en tant que compte par défaut.
  • private_endpoint (bool | None) – Connexion à l'API privée URL.
  • region (RegionType | None) – Définissez une préférence régionale. us-east ou eu-de. Une instance associée à cette région sera priorisée si aucune instance n'est fournie.
  • plans_preference (PlanType | None) – Une liste des noms de plans de compte (open, premium, etc.), classés par ordre de préférence. Une instance correspondant à la première valeur de la liste sera privilégiée, et seules les instances portant les noms de plans indiqués seront prises en compte. Par exemple, si vous souhaitez éviter d'utiliser vos comptes premium, il vous suffit de passer le paramètre "open" pour n'utiliser que vos instances en mode « open plan ». plans_preference est ignoré si un instance est spécifié.
  • tags (list[str] | None) – Définissez une liste de balises pour filtrer les instances disponibles. Les instances comportant ces balises seront prioritaires si aucune instance n'est transmise.

Type de retour

Aucun

saved_accounts

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

GitHub

Liste des comptes enregistrés sur le disque.

Paramètres

  • default (bool | None) – Si la valeur est True, seuls les comptes par défaut sont renvoyés.
  • channel (ChannelType | None) – Canal type.\ \ibm_cloud`` ou ibm_quantum_platform.
  • filename (str | None) – Nom du fichier dont les comptes sont renvoyés.
  • name (str | None) – Si cette option est activée, seuls les comptes portant le nom donné sont renvoyés.

Retours

Un dictionnaire contenant des informations sur les comptes enregistrés sur le disque.

Augmentations

ValueError - Si un compte non valide est trouvé sur le disque.

Type de retour

dict

usage

usage()

GitHub

Renvoie des informations sur l'utilisation de l'instance active actuelle.

Retours

Dict avec détails d'utilisation.

Type de retour

dict [str, Any]

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.