Systèmes de back-end
Obtenir la liste des backends
Renvoie une liste des backends activés pour l'accès direct.
Autorisation
Pour appeler cette méthode, vous devez vous voir attribuer un ou plusieurs rôles d'accès IAM incluant les actions suivantes. Vous pouvez vérifier votre accès en vous rendant sur Users > User > Access
quantum-computing.direct-access-backend.list
Audit
L'appel de cette méthode génère les événements d'audit suivants.
quantum-computing.direct-access-backend.list
Entrée
Informations |
|---|
| Ce noeud final n'accepte aucun paramètre en entrée. |
curl -X GET \
'<YOUR_QSA_URL>/v1/backends' \
-H 'Accept: application/json'import requests
response = requests.request(
"GET",
"<YOUR_QSA_URL>/v1/backends",
headers={
"Accept": "application/json"
},
)
print(response.json())Sortie
Code d'état | Description |
|---|---|
| 200 | Renvoyé lorsque les backends ont été récupérés avec succès. |
| 401 | Renvoyé lorsque l'authentification a échoué. |
{
"backends": [
{
"locked": true,
"message": "example",
"name": "ibm_bromont",
"status": "online",
"version": "1.0.0"
}
]
}{
"additionalProperties": false,
"properties": {
"backends": {
"description": "Liste des noms de backend disponibles pour un accès direct.",
"items": {
"additionalProperties": false,
"properties": {
"locked": {
"description": "Si le backend est bloqué par une réservation en cours. Présent uniquement pour les backends en ligne.",
"type": "boolean"
},
"message": {
"description": "Informations supplémentaires relatives à l'état du backend.",
"type": "string"
},
"name": {
"description": "Nom du backend",
"examples": [
"ibm_bromont"
],
"type": "string"
},
"status": {
"description": "en ligne (vous pouvez envoyer des tâches), hors ligne (vous ne pouvez pas envoyer de tâches) et en pause (vous ne pouvez pas envoyer de tâches).",
"enum": [
"online",
"offline",
"paused"
],
"examples": [
"online"
],
"type": "string"
},
"version": {
"description": "Version du backend",
"examples": [
"1.0.0"
],
"type": "string"
}
},
"required": [
"name",
"status"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"backends"
],
"type": "object"
}Obtenir les détails du backend
Renvoie les détails d'un backend.
Autorisation
Pour appeler cette méthode, vous devez vous voir attribuer un ou plusieurs rôles d'accès IAM incluant les actions suivantes. Vous pouvez vérifier votre accès en vous rendant sur Users > User > Access
quantum-computing.direct-access-backend.read
Audit
L'appel de cette méthode génère les événements d'audit suivants.
quantum-computing.direct-access-backend.read
Entrée
Nom, type | Description |
|---|---|
backend-name Obligatoire string | Exemple: "ibm_bromont" |
curl -X GET \
'<YOUR_QSA_URL>/v1/backends/{backend-name}' \
-H 'Accept: application/json'import requests
response = requests.request(
"GET",
"<YOUR_QSA_URL>/v1/backends/{backend-name}",
headers={
"Accept": "application/json"
},
)
print(response.json())Sortie
Code d'état | Description |
|---|---|
| 200 | Renvoyé lorsque les détails du backend ont été récupérés avec succès. |
| 401 | Renvoyé lorsque l'authentification a échoué. |
| 404 | Renvoyé lorsque le backend est introuvable. |
{
"locked": true,
"message": "example",
"name": "ibm_bromont",
"status": "online",
"version": "1.0.0"
}{
"additionalProperties": false,
"properties": {
"locked": {
"description": "Si le backend est bloqué par une réservation en cours. Présent uniquement pour les backends en ligne.",
"type": "boolean"
},
"message": {
"description": "Informations supplémentaires relatives à l'état du backend.",
"type": "string"
},
"name": {
"description": "Nom du backend",
"examples": [
"ibm_bromont"
],
"type": "string"
},
"status": {
"description": "en ligne (vous pouvez envoyer des tâches), hors ligne (vous ne pouvez pas envoyer de tâches) et en pause (vous ne pouvez pas envoyer de tâches).",
"enum": [
"online",
"offline",
"paused"
],
"examples": [
"online"
],
"type": "string"
},
"version": {
"description": "Version du backend",
"examples": [
"1.0.0"
],
"type": "string"
}
},
"required": [
"name",
"status"
],
"type": "object"
}Obtenir la configuration backend
Renvoie la configuration d'un backend.
Autorisation
Pour appeler cette méthode, vous devez vous voir attribuer un ou plusieurs rôles d'accès IAM incluant les actions suivantes. Vous pouvez vérifier votre accès en vous rendant sur Users > User > Access
quantum-computing.direct-access-backend-configuration.read
Audit
L'appel de cette méthode génère les événements d'audit suivants.
quantum-computing.direct-access-backend-configuration.read
Entrée
Nom, type | Description |
|---|---|
backend-name Obligatoire string | Exemple: "ibm_bromont" |
curl -X GET \
'<YOUR_QSA_URL>/v1/backends/{backend-name}/configuration' \
-H 'Accept: application/json'import requests
response = requests.request(
"GET",
"<YOUR_QSA_URL>/v1/backends/{backend-name}/configuration",
headers={
"Accept": "application/json"
},
)
print(response.json())Sortie
Code d'état | Description |
|---|---|
| 200 | Renvoyé lorsque la configuration du backend a été récupérée avec succès. |
| 401 | Renvoyé lorsque l'authentification a échoué. |
| 404 | Renvoyé lorsque le backend est introuvable. |
{
"backend_name": "example",
"sample_name": "example",
"backend_version": "example",
"n_qubits": 1,
"basis_gates": [
"example"
],
"coupling_map": [
[
1
]
],
"gates": [
{
"name": "example",
"parameters": [
"example"
],
"coupling_map": [
[
1
]
],
"qasm_def": "example",
"conditional": true,
"latency_map": [
[
0
]
],
"description": "example"
}
],
"local": true,
"simulator": true,
"conditional": true,
"memory": true,
"max_shots": 1,
"max_experiments": 1,
"n_registers": 1,
"register_map": [
[
0
]
],
"configurable": true,
"credits_required": true,
"online_date": "example",
"display_name": "example",
"description": "example",
"tags": [
"credits_required"
],
"rep_delay_range": [
[
1
]
],
"default_rep_delay": 1,
"dynamic_reprate_enabled": true,
"measure_esp_enabled": true,
"supported_instructions": [
"example"
],
"supported_features": [
"example"
],
"quantum_volume": 1,
"processor_type": {
"family": "example",
"revision": "example",
"segment": "example"
},
"qubit_lo_range": [
[
1
]
],
"meas_lo_range": [
[
1
]
],
"timing_constraints": {
"granularity": 1,
"min_length": 1,
"pulse_alignment": 1,
"acquire_alignment": 1
},
"open_pulse": true,
"n_uchannels": 1,
"hamiltonian": {
"h_latex": "example",
"h_str": [
"example"
],
"vars": {},
"osc": {}
},
"u_channel_lo": [
[
{
"q": 1,
"scale": [
1
]
}
]
],
"meas_levels": [
1
],
"dt": 1,
"dtm": 1,
"rep_times": [
1
],
"meas_map": [
[
1
]
],
"channel_bandwidth": [
[
1
]
],
"meas_kernels": [
"example"
],
"discriminators": [
"example"
],
"acquisition_latency": [
[
1
]
],
"conditional_latency": [
[
1
]
],
"parametric_pulses": [
"example"
],
"channels": {}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://www.qiskit.org/schemas/backend_config_schema.json",
"description": "Configuration du backend du dispositif Qiskit",
"version": "1.6.0",
"definitions": {
"hamiltonian": {
"type": "object",
"description": "Hamiltonien du backend",
"required": [
"h_latex"
],
"properties": {
"h_latex": {
"type": "string",
"description": "Le hamiltonien sous forme de latex"
},
"h_str": {
"type": "array",
"items": {
"type": "string"
},
"description": "Le hamiltonien sous forme lisible par machine"
},
"vars": {
"type": "object",
"description": "Variables dans h\\_str"
},
"osc": {
"type": "object",
"description": "Nombre de niveaux pour chaque mode d'oscillateur"
}
}
},
"coreconfig": {
"type": "object",
"required": [
"backend_name",
"backend_version",
"n_qubits",
"basis_gates",
"gates",
"local",
"simulator",
"conditional",
"memory",
"max_shots"
],
"properties": {
"backend_name": {
"type": "string",
"description": "Nom du backend"
},
"sample_name": {
"type": "string",
"description": "Nom d'échantillon"
},
"backend_version": {
"type": "string",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"description": "Version backend sous la forme X.X.X"
},
"n_qubits": {
"type": "integer",
"description": "Nombre de qubits",
"minimum": 1,
"default": 1
},
"basis_gates": {
"type": "array",
"description": "Liste des noms des portes de base sur le backend",
"items": {
"type": "string"
},
"minItems": 0
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Groupe de qubits physiquement couplés entre eux à l'arrière-plan"
},
"gates": {
"type": "array",
"description": "Liste des portes de base sur le backend",
"items": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "Le nom de la porte tel qu'il sera utilisé dans QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Noms variables pour les paramètres de porte (le cas échéant)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Liste des groupes de qubits couplés par cette porte"
},
"qasm_def": {
"type": "string",
"description": "Définition de cette porte en termes de primitives QASM U et CX"
},
"conditional": {
"type": "boolean",
"description": "Cette porte spécifique prend en charge les opérations conditionnelles (vrai/faux). Si cela n'est pas spécifié, la porte hérite de la propriété conditionnelle du backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Tableau de dimension len(coupling\\_map) X n\\_registers qui spécifie (1 - rapide, 0 - lent) les opérations conditionnelles de latence du registre sur la porte"
},
"description": {
"type": "string",
"description": "Description du fonctionnement de la porte"
}
}
},
"minItems": 0
},
"local": {
"type": "boolean",
"description": "Le backend est local ou distant (vrai/faux)"
},
"simulator": {
"type": "boolean",
"description": "Le backend est un simulateur (vrai/faux)",
"default": false
},
"conditional": {
"type": "boolean",
"description": "Le backend prend en charge les opérations conditionnelles (vrai/faux)",
"default": false
},
"memory": {
"type": "boolean",
"description": "Le backend prend en charge la mémoire (vrai/faux)",
"default": false
},
"max_shots": {
"type": "integer",
"description": "Nombre maximal de prises de vue prises en charge",
"minimum": 1
},
"max_experiments": {
"type": "integer",
"description": "Nombre maximal d'expériences prises en charge",
"minimum": 1
},
"n_registers": {
"type": "integer",
"description": "Nombre d'emplacements de registre disponibles pour le retour d'information (si la condition est vraie)",
"minimum": 1,
"default": 1
},
"register_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Un tableau de dimension n\\_qubits X n\\_registers qui spécifie si un qubit peut stocker une mesure dans un emplacement de registre donné"
},
"configurable": {
"type": "boolean",
"description": "Le backend est configurable, si le backend est un simulateur (vrai/faux)",
"default": false
},
"credits_required": {
"type": "boolean",
"description": "Le backend nécessite des crédits pour exécuter une tâche (vrai/faux)",
"default": false
},
"online_date": {
"type": "string",
"format": "date-time",
"description": "Date à laquelle le backend a été mis en ligne"
},
"display_name": {
"type": "string",
"description": "Champ de nom alternatif pour le backend"
},
"description": {
"type": "string",
"description": "Description du backend"
},
"tags": {
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"type": "string",
"examples": [
"credits_required"
]
}
},
"rep_delay_range": {
"type": "array",
"minItems": 0,
"description": "Plage de temps de retard entre les programmes (microsecondes) autorisée par le backend.",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"minimum": 0
}
}
},
"default_rep_delay": {
"type": "number",
"description": "Délai de réponse par défaut.",
"minimum": 0
},
"dynamic_reprate_enabled": {
"type": "boolean",
"description": "Si le délai entre les programmes peut être défini dynamiquement à l'aide de « rep\\_delay »).",
"default": false
},
"measure_esp_enabled": {
"type": "boolean",
"description": "Si la lecture ESP est prise en charge par le backend.",
"default": false
},
"supported_instructions": {
"type": "array",
"minItems": 0,
"description": "Instructions prises en charge par le backend.",
"items": {
"type": "string"
}
},
"supported_features": {
"type": "array",
"minItems": 0,
"description": "Ensemble de fonctionnalités prises en charge par le backend, telles que qobj, qasm3, etc.",
"items": {
"type": "string"
}
},
"quantum_volume": {
"type": "integer",
"description": "Volume quantique backend",
"minimum": 1
},
"processor_type": {
"type": "object",
"required": [
"family",
"revision"
],
"properties": {
"family": {
"type": "string",
"description": "La famille de processeurs indique l'architecture de la puce quantique"
},
"revision": {
"type": "string",
"description": "Le numéro de révision reflète les variantes de conception au sein d'une famille de processeurs donnée. Il s'agit généralement d'une valeur de version sémantique sans valeur de correctif, par exemple « 1.0 »."
},
"segment": {
"type": "string",
"description": "Le segment, s'il est indiqué, sert à distinguer différents sous-ensembles de la structure/puce quantique"
}
}
},
"qubit_lo_range": {
"type": "array",
"minItems": 1,
"description": "Gamme de fréquences pour le LO qubit",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_lo_range": {
"type": "array",
"minItems": 1,
"description": "Plage de fréquences pour la mesure LO",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"timing_constraints": {
"type": "object",
"properties": {
"granularity": {
"type": "integer",
"description": "Taille des blocs de données de la mémoire de forme d'onde"
},
"min_length": {
"type": "integer",
"description": "Nombre minimum d'échantillons requis pour définir une impulsion"
},
"pulse_alignment": {
"type": "integer",
"description": "Temps de déclenchement de l'instruction de résolution du canal d'impulsion en unités de dt"
},
"acquire_alignment": {
"type": "integer",
"description": "Temps de déclenchement de l'instruction de résolution du canal d'acquisition en unités de dt"
}
}
}
}
},
"openpulse_config": {
"required": [
"open_pulse",
"n_uchannels",
"hamiltonian",
"u_channel_lo",
"meas_levels",
"qubit_lo_range",
"meas_lo_range",
"dt",
"dtm",
"rep_times",
"meas_kernels",
"discriminators"
],
"properties": {
"open_pulse": {
"enum": [
true
],
"description": "Le backend prend en charge openPulse (vrai/faux)"
},
"n_uchannels": {
"type": "integer",
"description": "Nombre de canaux de contrôle supplémentaires",
"minimum": 0
},
"hamiltonian": {
"type": "object",
"required": [
"h_latex"
],
"description": "Hamiltonien du backend",
"properties": {
"h_latex": {
"type": "string",
"description": "Le hamiltonien sous forme de latex"
},
"h_str": {
"type": "array",
"items": {
"type": "string"
},
"description": "Le hamiltonien sous forme lisible par machine"
},
"vars": {
"type": "object",
"description": "Variables dans h\\_str"
},
"osc": {
"type": "object",
"description": "Nombre de niveaux pour chaque mode d'oscillateur"
}
}
},
"u_channel_lo": {
"type": "array",
"minItems": 0,
"description": "Relation entre les LO en U et les LO en qubit",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"q": {
"type": "integer"
},
"scale": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "number"
}
]
}
}
}
}
}
},
"meas_levels": {
"type": "array",
"minItems": 1,
"maxitems": 3,
"description": "Niveaux de mesure disponibles sur le backend",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 2
}
},
"dt": {
"type": "number",
"description": "Discrétisation temporelle pour les canaux d'entraînement et U",
"minimum": 0
},
"dtm": {
"type": "number",
"description": "Discrétisation temporelle pour les canaux de mesure",
"minimum": 0
},
"rep_times": {
"type": "array",
"minItems": 1,
"description": "Temps d'exécution des programmes (en microsecondes) pris en charge par le backend.",
"items": {
"type": "number",
"minimum": 0
}
},
"meas_map": {
"type": "array",
"minItems": 1,
"description": "Regroupement de mesures multiplexées",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 0
}
}
},
"channel_bandwidth": {
"type": "array",
"minItems": 2,
"description": "Bande passante de tous les canaux (qubit, mesure et U)",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_kernels": {
"type": "array",
"minItems": 1,
"description": "Noyaux de mesure disponibles",
"items": {
"type": "string"
}
},
"discriminators": {
"type": "array",
"minItems": 1,
"description": "Discriminateurs disponibles",
"items": {
"type": "string"
}
},
"acquisition_latency": {
"type": "array",
"minItems": 1,
"description": "Tableau de dimension n\\_qubits x n\\_registers. Latence (en unités de dt) pour écrire un résultat de mesure du qubit n dans l'emplacement de registre m.",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
}
},
"conditional_latency": {
"type": "array",
"minItems": 1,
"description": "Tableau de dimension n_canaux [d->u->m] x n_registres. Latence (en unités de dt) pour effectuer une opération conditionnelle sur le canal n à partir de l'emplacement de registre m",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "number"
}
}
},
"parametric_pulses": {
"type": "array",
"minItems": 0,
"description": "Liste des formes d'impulsion paramétriques disponibles",
"items": {
"type": "string"
}
},
"channels": {
"type": "object",
"patternProperties": {
"^[a-z0-9]+$": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"purpose": {
"type": "string"
},
"operates": {
"type": "object",
"properties": {
"qubits": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
}
}
}
}
}
}
},
"description": "Un dictionnaire dans lequel chaque entrée représente une configuration de canal et contient des valeurs de configuration telles que le mappage du canal vers les qubits."
}
}
},
"gateconfig": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "Le nom de la porte tel qu'il sera utilisé dans QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Noms variables pour les paramètres de porte (le cas échéant)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Liste des groupes de qubits couplés par cette porte"
},
"qasm_def": {
"type": "string",
"description": "Définition de cette porte en termes de primitives QASM U et CX"
},
"conditional": {
"type": "boolean",
"description": "Cette porte spécifique prend en charge les opérations conditionnelles (vrai/faux). Si cela n'est pas spécifié, la porte hérite de la propriété conditionnelle du backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Tableau de dimension len(coupling\\_map) X n\\_registers qui spécifie (1 - rapide, 0 - lent) les opérations conditionnelles de latence du registre sur la porte"
},
"description": {
"type": "string",
"description": "Description du fonctionnement de la porte"
}
}
},
"complexnumber": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "number"
}
]
}
}
},
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"backend_name",
"backend_version",
"n_qubits",
"basis_gates",
"gates",
"local",
"simulator",
"conditional",
"memory",
"max_shots"
],
"properties": {
"backend_name": {
"type": "string",
"description": "Nom du backend"
},
"sample_name": {
"type": "string",
"description": "Nom d'échantillon"
},
"backend_version": {
"type": "string",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"description": "Version backend sous la forme X.X.X"
},
"n_qubits": {
"type": "integer",
"description": "Nombre de qubits",
"minimum": 1,
"default": 1
},
"basis_gates": {
"type": "array",
"description": "Liste des noms des portes de base sur le backend",
"items": {
"type": "string"
},
"minItems": 0
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Groupe de qubits physiquement couplés entre eux à l'arrière-plan"
},
"gates": {
"type": "array",
"description": "Liste des portes de base sur le backend",
"items": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "Le nom de la porte tel qu'il sera utilisé dans QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Noms variables pour les paramètres de porte (le cas échéant)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Liste des groupes de qubits couplés par cette porte"
},
"qasm_def": {
"type": "string",
"description": "Définition de cette porte en termes de primitives QASM U et CX"
},
"conditional": {
"type": "boolean",
"description": "Cette porte spécifique prend en charge les opérations conditionnelles (vrai/faux). Si cela n'est pas spécifié, la porte hérite de la propriété conditionnelle du backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Tableau de dimension len(coupling\\_map) X n\\_registers qui spécifie (1 - rapide, 0 - lent) les opérations conditionnelles de latence du registre sur la porte"
},
"description": {
"type": "string",
"description": "Description du fonctionnement de la porte"
}
}
},
"minItems": 0
},
"local": {
"type": "boolean",
"description": "Le backend est local ou distant (vrai/faux)"
},
"simulator": {
"type": "boolean",
"description": "Le backend est un simulateur (vrai/faux)",
"default": false
},
"conditional": {
"type": "boolean",
"description": "Le backend prend en charge les opérations conditionnelles (vrai/faux)",
"default": false
},
"memory": {
"type": "boolean",
"description": "Le backend prend en charge la mémoire (vrai/faux)",
"default": false
},
"max_shots": {
"type": "integer",
"description": "Nombre maximal de prises de vue prises en charge",
"minimum": 1
},
"max_experiments": {
"type": "integer",
"description": "Nombre maximal d'expériences prises en charge",
"minimum": 1
},
"n_registers": {
"type": "integer",
"description": "Nombre d'emplacements de registre disponibles pour le retour d'information (si la condition est vraie)",
"minimum": 1,
"default": 1
},
"register_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Un tableau de dimension n\\_qubits X n\\_registers qui spécifie si un qubit peut stocker une mesure dans un emplacement de registre donné"
},
"configurable": {
"type": "boolean",
"description": "Le backend est configurable, si le backend est un simulateur (vrai/faux)",
"default": false
},
"credits_required": {
"type": "boolean",
"description": "Le backend nécessite des crédits pour exécuter une tâche (vrai/faux)",
"default": false
},
"online_date": {
"type": "string",
"format": "date-time",
"description": "Date à laquelle le backend a été mis en ligne"
},
"display_name": {
"type": "string",
"description": "Champ de nom alternatif pour le backend"
},
"description": {
"type": "string",
"description": "Description du backend"
},
"tags": {
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"type": "string",
"examples": [
"credits_required"
]
}
},
"rep_delay_range": {
"type": "array",
"minItems": 0,
"description": "Plage de temps de retard entre les programmes (microsecondes) autorisée par le backend.",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"minimum": 0
}
}
},
"default_rep_delay": {
"type": "number",
"description": "Délai de réponse par défaut.",
"minimum": 0
},
"dynamic_reprate_enabled": {
"type": "boolean",
"description": "Si le délai entre les programmes peut être défini dynamiquement à l'aide de « rep\\_delay »).",
"default": false
},
"measure_esp_enabled": {
"type": "boolean",
"description": "Si la lecture ESP est prise en charge par le backend.",
"default": false
},
"supported_instructions": {
"type": "array",
"minItems": 0,
"description": "Instructions prises en charge par le backend.",
"items": {
"type": "string"
}
},
"supported_features": {
"type": "array",
"minItems": 0,
"description": "Ensemble de fonctionnalités prises en charge par le backend, telles que qobj, qasm3, etc.",
"items": {
"type": "string"
}
},
"quantum_volume": {
"type": "integer",
"description": "Volume quantique backend",
"minimum": 1
},
"processor_type": {
"type": "object",
"required": [
"family",
"revision"
],
"properties": {
"family": {
"type": "string",
"description": "La famille de processeurs indique l'architecture de la puce quantique"
},
"revision": {
"type": "string",
"description": "Le numéro de révision reflète les variantes de conception au sein d'une famille de processeurs donnée. Il s'agit généralement d'une valeur de version sémantique sans valeur de correctif, par exemple « 1.0 »."
},
"segment": {
"type": "string",
"description": "Le segment, s'il est indiqué, sert à distinguer différents sous-ensembles de la structure/puce quantique"
}
}
},
"qubit_lo_range": {
"type": "array",
"minItems": 1,
"description": "Gamme de fréquences pour le LO qubit",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_lo_range": {
"type": "array",
"minItems": 1,
"description": "Plage de fréquences pour la mesure LO",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"timing_constraints": {
"type": "object",
"properties": {
"granularity": {
"type": "integer",
"description": "Taille des blocs de données de la mémoire de forme d'onde"
},
"min_length": {
"type": "integer",
"description": "Nombre minimum d'échantillons requis pour définir une impulsion"
},
"pulse_alignment": {
"type": "integer",
"description": "Temps de déclenchement de l'instruction de résolution du canal d'impulsion en unités de dt"
},
"acquire_alignment": {
"type": "integer",
"description": "Temps de déclenchement de l'instruction de résolution du canal d'acquisition en unités de dt"
}
}
}
}
},
{
"required": [
"open_pulse",
"n_uchannels",
"hamiltonian",
"u_channel_lo",
"meas_levels",
"qubit_lo_range",
"meas_lo_range",
"dt",
"dtm",
"rep_times",
"meas_kernels",
"discriminators"
],
"properties": {
"open_pulse": {
"enum": [
true
],
"description": "Le backend prend en charge openPulse (vrai/faux)"
},
"n_uchannels": {
"type": "integer",
"description": "Nombre de canaux de contrôle supplémentaires",
"minimum": 0
},
"hamiltonian": {
"type": "object",
"required": [
"h_latex"
],
"description": "Hamiltonien du backend",
"properties": {
"h_latex": {
"type": "string",
"description": "Le hamiltonien sous forme de latex"
},
"h_str": {
"type": "array",
"items": {
"type": "string"
},
"description": "Le hamiltonien sous forme lisible par machine"
},
"vars": {
"type": "object",
"description": "Variables dans h\\_str"
},
"osc": {
"type": "object",
"description": "Nombre de niveaux pour chaque mode d'oscillateur"
}
}
},
"u_channel_lo": {
"type": "array",
"minItems": 0,
"description": "Relation entre les LO en U et les LO en qubit",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"q": {
"type": "integer"
},
"scale": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "number"
}
]
}
}
}
}
}
},
"meas_levels": {
"type": "array",
"minItems": 1,
"maxitems": 3,
"description": "Niveaux de mesure disponibles sur le backend",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 2
}
},
"dt": {
"type": "number",
"description": "Discrétisation temporelle pour les canaux d'entraînement et U",
"minimum": 0
},
"dtm": {
"type": "number",
"description": "Discrétisation temporelle pour les canaux de mesure",
"minimum": 0
},
"rep_times": {
"type": "array",
"minItems": 1,
"description": "Temps d'exécution des programmes (en microsecondes) pris en charge par le backend.",
"items": {
"type": "number",
"minimum": 0
}
},
"meas_map": {
"type": "array",
"minItems": 1,
"description": "Regroupement de mesures multiplexées",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 0
}
}
},
"channel_bandwidth": {
"type": "array",
"minItems": 2,
"description": "Bande passante de tous les canaux (qubit, mesure et U)",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_kernels": {
"type": "array",
"minItems": 1,
"description": "Noyaux de mesure disponibles",
"items": {
"type": "string"
}
},
"discriminators": {
"type": "array",
"minItems": 1,
"description": "Discriminateurs disponibles",
"items": {
"type": "string"
}
},
"acquisition_latency": {
"type": "array",
"minItems": 1,
"description": "Tableau de dimension n\\_qubits x n\\_registers. Latence (en unités de dt) pour écrire un résultat de mesure du qubit n dans l'emplacement de registre m.",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
}
},
"conditional_latency": {
"type": "array",
"minItems": 1,
"description": "Tableau de dimension n_canaux [d->u->m] x n_registres. Latence (en unités de dt) pour effectuer une opération conditionnelle sur le canal n à partir de l'emplacement de registre m",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "number"
}
}
},
"parametric_pulses": {
"type": "array",
"minItems": 0,
"description": "Liste des formes d'impulsion paramétriques disponibles",
"items": {
"type": "string"
}
},
"channels": {
"type": "object",
"patternProperties": {
"^[a-z0-9]+$": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"purpose": {
"type": "string"
},
"operates": {
"type": "object",
"properties": {
"qubits": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
}
}
}
}
}
}
},
"description": "Un dictionnaire dans lequel chaque entrée représente une configuration de canal et contient des valeurs de configuration telles que le mappage du canal vers les qubits."
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"backend_name",
"backend_version",
"n_qubits",
"basis_gates",
"gates",
"local",
"simulator",
"conditional",
"memory",
"max_shots"
],
"properties": {
"backend_name": {
"type": "string",
"description": "Nom du backend"
},
"sample_name": {
"type": "string",
"description": "Nom d'échantillon"
},
"backend_version": {
"type": "string",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"description": "Version backend sous la forme X.X.X"
},
"n_qubits": {
"type": "integer",
"description": "Nombre de qubits",
"minimum": 1,
"default": 1
},
"basis_gates": {
"type": "array",
"description": "Liste des noms des portes de base sur le backend",
"items": {
"type": "string"
},
"minItems": 0
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Groupe de qubits physiquement couplés entre eux à l'arrière-plan"
},
"gates": {
"type": "array",
"description": "Liste des portes de base sur le backend",
"items": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "Le nom de la porte tel qu'il sera utilisé dans QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Noms variables pour les paramètres de porte (le cas échéant)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Liste des groupes de qubits couplés par cette porte"
},
"qasm_def": {
"type": "string",
"description": "Définition de cette porte en termes de primitives QASM U et CX"
},
"conditional": {
"type": "boolean",
"description": "Cette porte spécifique prend en charge les opérations conditionnelles (vrai/faux). Si cela n'est pas spécifié, la porte hérite de la propriété conditionnelle du backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Tableau de dimension len(coupling\\_map) X n\\_registers qui spécifie (1 - rapide, 0 - lent) les opérations conditionnelles de latence du registre sur la porte"
},
"description": {
"type": "string",
"description": "Description du fonctionnement de la porte"
}
}
},
"minItems": 0
},
"local": {
"type": "boolean",
"description": "Le backend est local ou distant (vrai/faux)"
},
"simulator": {
"type": "boolean",
"description": "Le backend est un simulateur (vrai/faux)",
"default": false
},
"conditional": {
"type": "boolean",
"description": "Le backend prend en charge les opérations conditionnelles (vrai/faux)",
"default": false
},
"memory": {
"type": "boolean",
"description": "Le backend prend en charge la mémoire (vrai/faux)",
"default": false
},
"max_shots": {
"type": "integer",
"description": "Nombre maximal de prises de vue prises en charge",
"minimum": 1
},
"max_experiments": {
"type": "integer",
"description": "Nombre maximal d'expériences prises en charge",
"minimum": 1
},
"n_registers": {
"type": "integer",
"description": "Nombre d'emplacements de registre disponibles pour le retour d'information (si la condition est vraie)",
"minimum": 1,
"default": 1
},
"register_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Un tableau de dimension n\\_qubits X n\\_registers qui spécifie si un qubit peut stocker une mesure dans un emplacement de registre donné"
},
"configurable": {
"type": "boolean",
"description": "Le backend est configurable, si le backend est un simulateur (vrai/faux)",
"default": false
},
"credits_required": {
"type": "boolean",
"description": "Le backend nécessite des crédits pour exécuter une tâche (vrai/faux)",
"default": false
},
"online_date": {
"type": "string",
"format": "date-time",
"description": "Date à laquelle le backend a été mis en ligne"
},
"display_name": {
"type": "string",
"description": "Champ de nom alternatif pour le backend"
},
"description": {
"type": "string",
"description": "Description du backend"
},
"tags": {
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"type": "string",
"examples": [
"credits_required"
]
}
},
"rep_delay_range": {
"type": "array",
"minItems": 0,
"description": "Plage de temps de retard entre les programmes (microsecondes) autorisée par le backend.",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"minimum": 0
}
}
},
"default_rep_delay": {
"type": "number",
"description": "Délai de réponse par défaut.",
"minimum": 0
},
"dynamic_reprate_enabled": {
"type": "boolean",
"description": "Si le délai entre les programmes peut être défini dynamiquement à l'aide de « rep\\_delay »).",
"default": false
},
"measure_esp_enabled": {
"type": "boolean",
"description": "Si la lecture ESP est prise en charge par le backend.",
"default": false
},
"supported_instructions": {
"type": "array",
"minItems": 0,
"description": "Instructions prises en charge par le backend.",
"items": {
"type": "string"
}
},
"supported_features": {
"type": "array",
"minItems": 0,
"description": "Ensemble de fonctionnalités prises en charge par le backend, telles que qobj, qasm3, etc.",
"items": {
"type": "string"
}
},
"quantum_volume": {
"type": "integer",
"description": "Volume quantique backend",
"minimum": 1
},
"processor_type": {
"type": "object",
"required": [
"family",
"revision"
],
"properties": {
"family": {
"type": "string",
"description": "La famille de processeurs indique l'architecture de la puce quantique"
},
"revision": {
"type": "string",
"description": "Le numéro de révision reflète les variantes de conception au sein d'une famille de processeurs donnée. Il s'agit généralement d'une valeur de version sémantique sans valeur de correctif, par exemple « 1.0 »."
},
"segment": {
"type": "string",
"description": "Le segment, s'il est indiqué, sert à distinguer différents sous-ensembles de la structure/puce quantique"
}
}
},
"qubit_lo_range": {
"type": "array",
"minItems": 1,
"description": "Gamme de fréquences pour le LO qubit",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_lo_range": {
"type": "array",
"minItems": 1,
"description": "Plage de fréquences pour la mesure LO",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"timing_constraints": {
"type": "object",
"properties": {
"granularity": {
"type": "integer",
"description": "Taille des blocs de données de la mémoire de forme d'onde"
},
"min_length": {
"type": "integer",
"description": "Nombre minimum d'échantillons requis pour définir une impulsion"
},
"pulse_alignment": {
"type": "integer",
"description": "Temps de déclenchement de l'instruction de résolution du canal d'impulsion en unités de dt"
},
"acquire_alignment": {
"type": "integer",
"description": "Temps de déclenchement de l'instruction de résolution du canal d'acquisition en unités de dt"
}
}
}
}
},
{
"required": [
"open_pulse"
],
"properties": {
"open_pulse": {
"enum": [
false
]
}
}
}
]
}
]
}Récupérer la configuration des voies arrière
Récupérer la configuration des voies d'exécution pour le backend spécifié.
Autorisation
Pour appeler cette méthode, vous devez vous voir attribuer un ou plusieurs rôles d'accès IAM incluant les actions suivantes. Vous pouvez vérifier votre accès en vous rendant sur Users > User > Access
quantum-computing.direct-access-lane-configuration.list
Audit
L'appel de cette méthode génère les événements d'audit suivants.
quantum-computing.direct-access-lane-configuration.list
Entrée
Nom, type | Description |
|---|---|
backend-name Obligatoire string |
curl -X GET \
'<YOUR_QSA_URL>/v1/backends/{backend-name}/lanes' \
-H 'Accept: application/json'import requests
response = requests.request(
"GET",
"<YOUR_QSA_URL>/v1/backends/{backend-name}/lanes",
headers={
"Accept": "application/json"
},
)
print(response.json())Sortie
Code d'état | Description |
|---|---|
| 200 | Configuration des voies d'exécution en arrière-plan. La somme de `ibm_quantum_compute.lanes` et `hpc_workload_manager.lanes` doit être comprise entre 1 et le nombre maximal de voies autorisé pour le backend spécifié (ces valeurs incluses). |
| 401 | Renvoyé lorsque l'authentification a échoué. |
| 404 | Renvoyé lorsque le backend est introuvable. |
{
"hpc_workload_manager": {
"lanes": 1
},
"ibm_quantum_compute": {
"lanes": 1
}
}{
"additionalProperties": false,
"properties": {
"hpc_workload_manager": {
"additionalProperties": false,
"properties": {
"lanes": {
"format": "int64",
"type": "integer"
}
},
"required": [
"lanes"
],
"type": "object"
},
"ibm_quantum_compute": {
"additionalProperties": false,
"properties": {
"lanes": {
"format": "int64",
"type": "integer"
}
},
"required": [
"lanes"
],
"type": "object"
}
},
"required": [
"hpc_workload_manager",
"ibm_quantum_compute"
],
"type": "object"
}Obtenir les propriétés du backend
Renvoie les propriétés d'un backend.
Autorisation
Pour appeler cette méthode, vous devez vous voir attribuer un ou plusieurs rôles d'accès IAM incluant les actions suivantes. Vous pouvez vérifier votre accès en vous rendant sur Users > User > Access
quantum-computing.direct-access-backend-properties.read
Audit
L'appel de cette méthode génère les événements d'audit suivants.
quantum-computing.direct-access-backend-properties.read
Entrée
Nom, type | Description |
|---|---|
backend-name Obligatoire string | Exemple: "ibm_bromont" |
curl -X GET \
'<YOUR_QSA_URL>/v1/backends/{backend-name}/properties' \
-H 'Accept: application/json'import requests
response = requests.request(
"GET",
"<YOUR_QSA_URL>/v1/backends/{backend-name}/properties",
headers={
"Accept": "application/json"
},
)
print(response.json())Sortie
Code d'état | Description |
|---|---|
| 200 | Renvoyé lorsque les propriétés backend ont été récupérées avec succès. |
| 401 | Renvoyé lorsque l'authentification a échoué. |
| 404 | Renvoyé lorsque le backend est introuvable. |
{
"backend_name": "example",
"backend_version": "example",
"gates": [
{
"gate": "example",
"parameters": [
{
"date": "example",
"name": "example",
"unit": "example",
"value": 1
}
],
"qubits": [
1
]
}
],
"general": [
{
"date": "example",
"name": "example",
"unit": "example",
"value": 1
}
],
"last_update_date": "example",
"qubits": [
[
{
"date": "example",
"name": "example",
"unit": "example",
"value": 1
}
]
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://www.qiskit.org/schemas/backend_props_schema.json",
"description": "OpenQuantum schéma des propriétés du backend",
"version": "1.0.0",
"definitions": {
"gate": {
"properties": {
"gate": {
"type": "string"
},
"parameters": {
"items": {
"description": "Paramètre enregistré sous la forme nom-date-unité-valeur",
"properties": {
"date": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"name",
"date",
"unit",
"value"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"qubits": {
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"qubits",
"gate",
"parameters"
],
"type": "object"
},
"general_parameters": {
"description": "Paramètres généraux du système",
"items": {
"description": "Paramètre enregistré sous la forme nom-date-unité-valeur",
"properties": {
"date": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"name",
"date",
"unit",
"value"
],
"type": "object"
},
"minItems": 0,
"type": "array"
},
"nduv": {
"description": "Paramètre enregistré sous la forme nom-date-unité-valeur",
"properties": {
"date": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"name",
"date",
"unit",
"value"
],
"type": "object"
}
},
"properties": {
"backend_name": {
"description": "Nom du backend",
"type": "string"
},
"backend_version": {
"description": "Version backend sous la forme X.X.X",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"type": "string"
},
"gates": {
"description": "Paramètres de la porte du système",
"items": {
"properties": {
"gate": {
"type": "string"
},
"parameters": {
"items": {
"description": "Paramètre enregistré sous la forme nom-date-unité-valeur",
"properties": {
"date": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"name",
"date",
"unit",
"value"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"qubits": {
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"qubits",
"gate",
"parameters"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"general": {
"description": "Paramètres généraux du système",
"items": {
"description": "Paramètre enregistré sous la forme nom-date-unité-valeur",
"properties": {
"date": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"name",
"date",
"unit",
"value"
],
"type": "object"
},
"minItems": 0,
"type": "array"
},
"last_update_date": {
"description": "Date/heure de la dernière mise à jour d'une propriété.",
"format": "date-time",
"type": "string"
},
"qubits": {
"description": "Paramètres des qubits du système",
"items": {
"items": {
"description": "Paramètre enregistré sous la forme nom-date-unité-valeur",
"properties": {
"date": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"name",
"date",
"unit",
"value"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"backend_name",
"backend_version",
"last_update_date",
"qubits",
"gates",
"general"
],
"type": "object"
}