Backends
Obter lista de backends
Retorna uma lista de backends habilitados para acesso direto.
Autorização
Para chamar esse método, deve-se ter sido designado a uma ou mais funções de acesso do IAM que incluam as ações a seguir. É possível verificar seu acesso indo para Users > User > Access
quantum-computing.direct-access-backend.list
Auditoria
A chamada desse método gera os seguintes eventos de auditoria.
quantum-computing.direct-access-backend.list
Entrada
Informação |
|---|
| Este endpoint não aceita nenhuma entrada. |
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())Saída
Código de status | Descrição |
|---|---|
| 200 | Retornado quando os backends foram recuperados com sucesso. |
| 401 | Retornado quando a autenticação falhou. |
{
"backends": [
{
"locked": true,
"message": "example",
"name": "ibm_bromont",
"status": "online",
"version": "1.0.0"
}
]
}{
"additionalProperties": false,
"properties": {
"backends": {
"description": "Uma lista de nomes de back-end disponíveis para acesso direto.",
"items": {
"additionalProperties": false,
"properties": {
"locked": {
"description": "Se o backend está bloqueado por uma reserva ativa. Presente apenas em back-ends online.",
"type": "boolean"
},
"message": {
"description": "Detalhes adicionais relacionados ao status do backend.",
"type": "string"
},
"name": {
"description": "Nome do backend",
"examples": [
"ibm_bromont"
],
"type": "string"
},
"status": {
"description": "online (você pode enviar trabalhos), offline (você não pode enviar trabalhos) e pausado (você não pode enviar trabalhos).",
"enum": [
"online",
"offline",
"paused"
],
"examples": [
"online"
],
"type": "string"
},
"version": {
"description": "Versão do backend",
"examples": [
"1.0.0"
],
"type": "string"
}
},
"required": [
"name",
"status"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"required": [
"backends"
],
"type": "object"
}Obter detalhes do backend
Retorna detalhes de um backend.
Autorização
Para chamar esse método, deve-se ter sido designado a uma ou mais funções de acesso do IAM que incluam as ações a seguir. É possível verificar seu acesso indo para Users > User > Access
quantum-computing.direct-access-backend.read
Auditoria
A chamada desse método gera os seguintes eventos de auditoria.
quantum-computing.direct-access-backend.read
Entrada
Nome, Tipo | Descrição |
|---|---|
backend-name Necessário string | Exemplo: "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())Saída
Código de status | Descrição |
|---|---|
| 200 | Retornado quando os detalhes do backend foram recuperados com sucesso. |
| 401 | Retornado quando a autenticação falhou. |
| 404 | Retornado quando o backend não é encontrado. |
{
"locked": true,
"message": "example",
"name": "ibm_bromont",
"status": "online",
"version": "1.0.0"
}{
"additionalProperties": false,
"properties": {
"locked": {
"description": "Se o backend está bloqueado por uma reserva ativa. Presente apenas em back-ends online.",
"type": "boolean"
},
"message": {
"description": "Detalhes adicionais relacionados ao status do backend.",
"type": "string"
},
"name": {
"description": "Nome do backend",
"examples": [
"ibm_bromont"
],
"type": "string"
},
"status": {
"description": "online (você pode enviar trabalhos), offline (você não pode enviar trabalhos) e pausado (você não pode enviar trabalhos).",
"enum": [
"online",
"offline",
"paused"
],
"examples": [
"online"
],
"type": "string"
},
"version": {
"description": "Versão do backend",
"examples": [
"1.0.0"
],
"type": "string"
}
},
"required": [
"name",
"status"
],
"type": "object"
}Obter configuração do backend
Retorna a configuração de um backend.
Autorização
Para chamar esse método, deve-se ter sido designado a uma ou mais funções de acesso do IAM que incluam as ações a seguir. É possível verificar seu acesso indo para Users > User > Access
quantum-computing.direct-access-backend-configuration.read
Auditoria
A chamada desse método gera os seguintes eventos de auditoria.
quantum-computing.direct-access-backend-configuration.read
Entrada
Nome, Tipo | Descrição |
|---|---|
backend-name Necessário string | Exemplo: "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())Saída
Código de status | Descrição |
|---|---|
| 200 | Retornado quando a configuração do backend foi recuperada com sucesso. |
| 401 | Retornado quando a autenticação falhou. |
| 404 | Retornado quando o backend não é encontrado. |
{
"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": "Configuração do backend do dispositivo Qiskit",
"version": "1.6.0",
"definitions": {
"hamiltonian": {
"type": "object",
"description": "Hamiltoniano do backend",
"required": [
"h_latex"
],
"properties": {
"h_latex": {
"type": "string",
"description": "O hamiltoniano em formato latex"
},
"h_str": {
"type": "array",
"items": {
"type": "string"
},
"description": "O hamiltoniano em formato legível por máquina"
},
"vars": {
"type": "object",
"description": "Variáveis em h\\_str"
},
"osc": {
"type": "object",
"description": "Número de níveis para cada modo do oscilador"
}
}
},
"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": "Nome do backend"
},
"sample_name": {
"type": "string",
"description": "Nome da amostra"
},
"backend_version": {
"type": "string",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"description": "Versão do backend no formulário X.X.X"
},
"n_qubits": {
"type": "integer",
"description": "Número de qubits",
"minimum": 1,
"default": 1
},
"basis_gates": {
"type": "array",
"description": "Lista de nomes de portas básicas no backend",
"items": {
"type": "string"
},
"minItems": 0
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Matriz que agrupa qubits fisicamente acoplados entre si no backend"
},
"gates": {
"type": "array",
"description": "Lista de portas básicas no backend",
"items": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "O nome do portão, conforme será referido no QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Nomes variáveis para os parâmetros da porta (se houver)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Lista de agrupamentos de qubits que são acoplados por este portão"
},
"qasm_def": {
"type": "string",
"description": "Definição deste portão em termos de primitivas QASM U e CX"
},
"conditional": {
"type": "boolean",
"description": "Esta porta especificada suporta operações condicionais (verdadeiro/falso). Se isso não for especificado, o gate herda a propriedade condicional do backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão len(coupling_map) X n_registers que especifica (1 - rápido, 0 - lento) as operações condicionais de latência do registro no gate"
},
"description": {
"type": "string",
"description": "Descrição do funcionamento do portão"
}
}
},
"minItems": 0
},
"local": {
"type": "boolean",
"description": "O backend é local ou remoto (verdadeiro/falso)"
},
"simulator": {
"type": "boolean",
"description": "O backend é um simulador (verdadeiro/falso)",
"default": false
},
"conditional": {
"type": "boolean",
"description": "O backend suporta operações condicionais (verdadeiro/falso)",
"default": false
},
"memory": {
"type": "boolean",
"description": "O backend suporta memória (verdadeiro/falso)",
"default": false
},
"max_shots": {
"type": "integer",
"description": "Número máximo de fotos suportadas",
"minimum": 1
},
"max_experiments": {
"type": "integer",
"description": "Número máximo de experimentos suportados",
"minimum": 1
},
"n_registers": {
"type": "integer",
"description": "Número de slots de registro disponíveis para feedback (se a condição for verdadeira)",
"minimum": 1,
"default": 1
},
"register_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão n_qubits X n_registros que especifica se um qubit pode armazenar uma medição em um determinado slot de registro"
},
"configurable": {
"type": "boolean",
"description": "O backend é configurável, se o backend for um simulador (verdadeiro/falso)",
"default": false
},
"credits_required": {
"type": "boolean",
"description": "O backend requer créditos para executar uma tarefa (verdadeiro/falso)",
"default": false
},
"online_date": {
"type": "string",
"format": "date-time",
"description": "Data em que o backend ficou online"
},
"display_name": {
"type": "string",
"description": "Campo de nome alternativo para o backend"
},
"description": {
"type": "string",
"description": "Descrição do backend"
},
"tags": {
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"type": "string",
"examples": [
"credits_required"
]
}
},
"rep_delay_range": {
"type": "array",
"minItems": 0,
"description": "Intervalo de tempos de atraso entre programas (microssegundos) permitido pelo backend.",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"minimum": 0
}
}
},
"default_rep_delay": {
"type": "number",
"description": "Atraso padrão do representante.",
"minimum": 0
},
"dynamic_reprate_enabled": {
"type": "boolean",
"description": "Se o atraso entre programas pode ser definido dinamicamente usando 'rep\\_delay').",
"default": false
},
"measure_esp_enabled": {
"type": "boolean",
"description": "Se a leitura ESP é suportada pelo backend.",
"default": false
},
"supported_instructions": {
"type": "array",
"minItems": 0,
"description": "Instruções suportadas pelo backend.",
"items": {
"type": "string"
}
},
"supported_features": {
"type": "array",
"minItems": 0,
"description": "Conjunto de recursos suportados pelo backend, como qobj, qasm3, etc.",
"items": {
"type": "string"
}
},
"quantum_volume": {
"type": "integer",
"description": "Volume quântico de backend",
"minimum": 1
},
"processor_type": {
"type": "object",
"required": [
"family",
"revision"
],
"properties": {
"family": {
"type": "string",
"description": "A família de processadores indica a arquitetura do chip quântico"
},
"revision": {
"type": "string",
"description": "O número de revisão reflete as variantes de design dentro de uma determinada família de processadores. É normalmente um valor de versão semântica sem o valor do patch, por exemplo, “ 1.0 ”."
},
"segment": {
"type": "string",
"description": "O segmento, se indicado, é usado para distinguir diferentes subconjuntos da estrutura/chip qubit"
}
}
},
"qubit_lo_range": {
"type": "array",
"minItems": 1,
"description": "Faixa de frequência para o LO qubit",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_lo_range": {
"type": "array",
"minItems": 1,
"description": "Faixa de frequência para a medição LO",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"timing_constraints": {
"type": "object",
"properties": {
"granularity": {
"type": "integer",
"description": "Tamanho do bloco de dados da memória de forma de onda"
},
"min_length": {
"type": "integer",
"description": "Número mínimo de amostras necessárias para definir um pulso"
},
"pulse_alignment": {
"type": "integer",
"description": "Instrução que aciona a resolução temporal do canal de pulso em unidades de dt"
},
"acquire_alignment": {
"type": "integer",
"description": "Instrução que aciona a resolução temporal do canal de aquisição em unidades 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": "O backend suporta openPulse (verdadeiro/falso)"
},
"n_uchannels": {
"type": "integer",
"description": "Número de canais de controle adicionais",
"minimum": 0
},
"hamiltonian": {
"type": "object",
"required": [
"h_latex"
],
"description": "Hamiltoniano do backend",
"properties": {
"h_latex": {
"type": "string",
"description": "O hamiltoniano em formato latex"
},
"h_str": {
"type": "array",
"items": {
"type": "string"
},
"description": "O hamiltoniano em formato legível por máquina"
},
"vars": {
"type": "object",
"description": "Variáveis em h\\_str"
},
"osc": {
"type": "object",
"description": "Número de níveis para cada modo do oscilador"
}
}
},
"u_channel_lo": {
"type": "array",
"minItems": 0,
"description": "Relação entre os LO do canal U em termos dos LO 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": "Níveis de medição disponíveis no backend",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 2
}
},
"dt": {
"type": "number",
"description": "Discretização do tempo para os canais drive e U",
"minimum": 0
},
"dtm": {
"type": "number",
"description": "Discretização temporal para os canais de medição",
"minimum": 0
},
"rep_times": {
"type": "array",
"minItems": 1,
"description": "Tempos de execução do programa (microssegundos) suportados pelo backend.",
"items": {
"type": "number",
"minimum": 0
}
},
"meas_map": {
"type": "array",
"minItems": 1,
"description": "Agrupamento de medições multiplexadas",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 0
}
}
},
"channel_bandwidth": {
"type": "array",
"minItems": 2,
"description": "Largura de banda de todos os canais (qubit, medição e U)",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_kernels": {
"type": "array",
"minItems": 1,
"description": "Kernels de medição disponíveis",
"items": {
"type": "string"
}
},
"discriminators": {
"type": "array",
"minItems": 1,
"description": "Discriminadores disponíveis",
"items": {
"type": "string"
}
},
"acquisition_latency": {
"type": "array",
"minItems": 1,
"description": "Matriz de dimensão n_qubits x n_registros. Latência (em unidades de dt) para gravar um resultado de medição do qubit n no slot de registro m.",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
}
},
"conditional_latency": {
"type": "array",
"minItems": 1,
"description": "Matriz de dimensão n_canais [d->u->m] x n_registros. Latência (em unidades de dt) para realizar uma operação condicional no canal n a partir do slot de registro m",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "number"
}
}
},
"parametric_pulses": {
"type": "array",
"minItems": 0,
"description": "Uma lista de formas de pulso paramétricas disponíveis",
"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": "Um dicionário em que cada entrada representa uma configuração de canal e contém valores de configuração, como o mapeamento do canal para qubits."
}
}
},
"gateconfig": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "O nome do portão, conforme será referido no QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Nomes variáveis para os parâmetros da porta (se houver)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Lista de agrupamentos de qubits que são acoplados por este portão"
},
"qasm_def": {
"type": "string",
"description": "Definição deste portão em termos de primitivas QASM U e CX"
},
"conditional": {
"type": "boolean",
"description": "Esta porta especificada suporta operações condicionais (verdadeiro/falso). Se isso não for especificado, o gate herda a propriedade condicional do backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão len(coupling_map) X n_registers que especifica (1 - rápido, 0 - lento) as operações condicionais de latência do registro no gate"
},
"description": {
"type": "string",
"description": "Descrição do funcionamento do portão"
}
}
},
"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": "Nome do backend"
},
"sample_name": {
"type": "string",
"description": "Nome da amostra"
},
"backend_version": {
"type": "string",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"description": "Versão do backend no formulário X.X.X"
},
"n_qubits": {
"type": "integer",
"description": "Número de qubits",
"minimum": 1,
"default": 1
},
"basis_gates": {
"type": "array",
"description": "Lista de nomes de portas básicas no backend",
"items": {
"type": "string"
},
"minItems": 0
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Matriz que agrupa qubits fisicamente acoplados entre si no backend"
},
"gates": {
"type": "array",
"description": "Lista de portas básicas no backend",
"items": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "O nome do portão, conforme será referido no QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Nomes variáveis para os parâmetros da porta (se houver)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Lista de agrupamentos de qubits que são acoplados por este portão"
},
"qasm_def": {
"type": "string",
"description": "Definição deste portão em termos de primitivas QASM U e CX"
},
"conditional": {
"type": "boolean",
"description": "Esta porta especificada suporta operações condicionais (verdadeiro/falso). Se isso não for especificado, o gate herda a propriedade condicional do backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão len(coupling_map) X n_registers que especifica (1 - rápido, 0 - lento) as operações condicionais de latência do registro no gate"
},
"description": {
"type": "string",
"description": "Descrição do funcionamento do portão"
}
}
},
"minItems": 0
},
"local": {
"type": "boolean",
"description": "O backend é local ou remoto (verdadeiro/falso)"
},
"simulator": {
"type": "boolean",
"description": "O backend é um simulador (verdadeiro/falso)",
"default": false
},
"conditional": {
"type": "boolean",
"description": "O backend suporta operações condicionais (verdadeiro/falso)",
"default": false
},
"memory": {
"type": "boolean",
"description": "O backend suporta memória (verdadeiro/falso)",
"default": false
},
"max_shots": {
"type": "integer",
"description": "Número máximo de fotos suportadas",
"minimum": 1
},
"max_experiments": {
"type": "integer",
"description": "Número máximo de experimentos suportados",
"minimum": 1
},
"n_registers": {
"type": "integer",
"description": "Número de slots de registro disponíveis para feedback (se a condição for verdadeira)",
"minimum": 1,
"default": 1
},
"register_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão n_qubits X n_registros que especifica se um qubit pode armazenar uma medição em um determinado slot de registro"
},
"configurable": {
"type": "boolean",
"description": "O backend é configurável, se o backend for um simulador (verdadeiro/falso)",
"default": false
},
"credits_required": {
"type": "boolean",
"description": "O backend requer créditos para executar uma tarefa (verdadeiro/falso)",
"default": false
},
"online_date": {
"type": "string",
"format": "date-time",
"description": "Data em que o backend ficou online"
},
"display_name": {
"type": "string",
"description": "Campo de nome alternativo para o backend"
},
"description": {
"type": "string",
"description": "Descrição do backend"
},
"tags": {
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"type": "string",
"examples": [
"credits_required"
]
}
},
"rep_delay_range": {
"type": "array",
"minItems": 0,
"description": "Intervalo de tempos de atraso entre programas (microssegundos) permitido pelo backend.",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"minimum": 0
}
}
},
"default_rep_delay": {
"type": "number",
"description": "Atraso padrão do representante.",
"minimum": 0
},
"dynamic_reprate_enabled": {
"type": "boolean",
"description": "Se o atraso entre programas pode ser definido dinamicamente usando 'rep\\_delay').",
"default": false
},
"measure_esp_enabled": {
"type": "boolean",
"description": "Se a leitura ESP é suportada pelo backend.",
"default": false
},
"supported_instructions": {
"type": "array",
"minItems": 0,
"description": "Instruções suportadas pelo backend.",
"items": {
"type": "string"
}
},
"supported_features": {
"type": "array",
"minItems": 0,
"description": "Conjunto de recursos suportados pelo backend, como qobj, qasm3, etc.",
"items": {
"type": "string"
}
},
"quantum_volume": {
"type": "integer",
"description": "Volume quântico de backend",
"minimum": 1
},
"processor_type": {
"type": "object",
"required": [
"family",
"revision"
],
"properties": {
"family": {
"type": "string",
"description": "A família de processadores indica a arquitetura do chip quântico"
},
"revision": {
"type": "string",
"description": "O número de revisão reflete as variantes de design dentro de uma determinada família de processadores. É normalmente um valor de versão semântica sem o valor do patch, por exemplo, “ 1.0 ”."
},
"segment": {
"type": "string",
"description": "O segmento, se indicado, é usado para distinguir diferentes subconjuntos da estrutura/chip qubit"
}
}
},
"qubit_lo_range": {
"type": "array",
"minItems": 1,
"description": "Faixa de frequência para o LO qubit",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_lo_range": {
"type": "array",
"minItems": 1,
"description": "Faixa de frequência para a medição LO",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"timing_constraints": {
"type": "object",
"properties": {
"granularity": {
"type": "integer",
"description": "Tamanho do bloco de dados da memória de forma de onda"
},
"min_length": {
"type": "integer",
"description": "Número mínimo de amostras necessárias para definir um pulso"
},
"pulse_alignment": {
"type": "integer",
"description": "Instrução que aciona a resolução temporal do canal de pulso em unidades de dt"
},
"acquire_alignment": {
"type": "integer",
"description": "Instrução que aciona a resolução temporal do canal de aquisição em unidades 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": "O backend suporta openPulse (verdadeiro/falso)"
},
"n_uchannels": {
"type": "integer",
"description": "Número de canais de controle adicionais",
"minimum": 0
},
"hamiltonian": {
"type": "object",
"required": [
"h_latex"
],
"description": "Hamiltoniano do backend",
"properties": {
"h_latex": {
"type": "string",
"description": "O hamiltoniano em formato latex"
},
"h_str": {
"type": "array",
"items": {
"type": "string"
},
"description": "O hamiltoniano em formato legível por máquina"
},
"vars": {
"type": "object",
"description": "Variáveis em h\\_str"
},
"osc": {
"type": "object",
"description": "Número de níveis para cada modo do oscilador"
}
}
},
"u_channel_lo": {
"type": "array",
"minItems": 0,
"description": "Relação entre os LO do canal U em termos dos LO 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": "Níveis de medição disponíveis no backend",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 2
}
},
"dt": {
"type": "number",
"description": "Discretização do tempo para os canais drive e U",
"minimum": 0
},
"dtm": {
"type": "number",
"description": "Discretização temporal para os canais de medição",
"minimum": 0
},
"rep_times": {
"type": "array",
"minItems": 1,
"description": "Tempos de execução do programa (microssegundos) suportados pelo backend.",
"items": {
"type": "number",
"minimum": 0
}
},
"meas_map": {
"type": "array",
"minItems": 1,
"description": "Agrupamento de medições multiplexadas",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 0
}
}
},
"channel_bandwidth": {
"type": "array",
"minItems": 2,
"description": "Largura de banda de todos os canais (qubit, medição e U)",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_kernels": {
"type": "array",
"minItems": 1,
"description": "Kernels de medição disponíveis",
"items": {
"type": "string"
}
},
"discriminators": {
"type": "array",
"minItems": 1,
"description": "Discriminadores disponíveis",
"items": {
"type": "string"
}
},
"acquisition_latency": {
"type": "array",
"minItems": 1,
"description": "Matriz de dimensão n_qubits x n_registros. Latência (em unidades de dt) para gravar um resultado de medição do qubit n no slot de registro m.",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
}
},
"conditional_latency": {
"type": "array",
"minItems": 1,
"description": "Matriz de dimensão n_canais [d->u->m] x n_registros. Latência (em unidades de dt) para realizar uma operação condicional no canal n a partir do slot de registro m",
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "number"
}
}
},
"parametric_pulses": {
"type": "array",
"minItems": 0,
"description": "Uma lista de formas de pulso paramétricas disponíveis",
"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": "Um dicionário em que cada entrada representa uma configuração de canal e contém valores de configuração, como o mapeamento do canal para 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": "Nome do backend"
},
"sample_name": {
"type": "string",
"description": "Nome da amostra"
},
"backend_version": {
"type": "string",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"description": "Versão do backend no formulário X.X.X"
},
"n_qubits": {
"type": "integer",
"description": "Número de qubits",
"minimum": 1,
"default": 1
},
"basis_gates": {
"type": "array",
"description": "Lista de nomes de portas básicas no backend",
"items": {
"type": "string"
},
"minItems": 0
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Matriz que agrupa qubits fisicamente acoplados entre si no backend"
},
"gates": {
"type": "array",
"description": "Lista de portas básicas no backend",
"items": {
"type": "object",
"required": [
"name",
"parameters",
"qasm_def"
],
"properties": {
"name": {
"type": "string",
"description": "O nome do portão, conforme será referido no QASM"
},
"parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Nomes variáveis para os parâmetros da porta (se houver)"
},
"coupling_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer"
}
},
"description": "Lista de agrupamentos de qubits que são acoplados por este portão"
},
"qasm_def": {
"type": "string",
"description": "Definição deste portão em termos de primitivas QASM U e CX"
},
"conditional": {
"type": "boolean",
"description": "Esta porta especificada suporta operações condicionais (verdadeiro/falso). Se isso não for especificado, o gate herda a propriedade condicional do backend.",
"default": false
},
"latency_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão len(coupling_map) X n_registers que especifica (1 - rápido, 0 - lento) as operações condicionais de latência do registro no gate"
},
"description": {
"type": "string",
"description": "Descrição do funcionamento do portão"
}
}
},
"minItems": 0
},
"local": {
"type": "boolean",
"description": "O backend é local ou remoto (verdadeiro/falso)"
},
"simulator": {
"type": "boolean",
"description": "O backend é um simulador (verdadeiro/falso)",
"default": false
},
"conditional": {
"type": "boolean",
"description": "O backend suporta operações condicionais (verdadeiro/falso)",
"default": false
},
"memory": {
"type": "boolean",
"description": "O backend suporta memória (verdadeiro/falso)",
"default": false
},
"max_shots": {
"type": "integer",
"description": "Número máximo de fotos suportadas",
"minimum": 1
},
"max_experiments": {
"type": "integer",
"description": "Número máximo de experimentos suportados",
"minimum": 1
},
"n_registers": {
"type": "integer",
"description": "Número de slots de registro disponíveis para feedback (se a condição for verdadeira)",
"minimum": 1,
"default": 1
},
"register_map": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
0,
1
]
}
},
"description": "Uma matriz de dimensão n_qubits X n_registros que especifica se um qubit pode armazenar uma medição em um determinado slot de registro"
},
"configurable": {
"type": "boolean",
"description": "O backend é configurável, se o backend for um simulador (verdadeiro/falso)",
"default": false
},
"credits_required": {
"type": "boolean",
"description": "O backend requer créditos para executar uma tarefa (verdadeiro/falso)",
"default": false
},
"online_date": {
"type": "string",
"format": "date-time",
"description": "Data em que o backend ficou online"
},
"display_name": {
"type": "string",
"description": "Campo de nome alternativo para o backend"
},
"description": {
"type": "string",
"description": "Descrição do backend"
},
"tags": {
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"type": "string",
"examples": [
"credits_required"
]
}
},
"rep_delay_range": {
"type": "array",
"minItems": 0,
"description": "Intervalo de tempos de atraso entre programas (microssegundos) permitido pelo backend.",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"minimum": 0
}
}
},
"default_rep_delay": {
"type": "number",
"description": "Atraso padrão do representante.",
"minimum": 0
},
"dynamic_reprate_enabled": {
"type": "boolean",
"description": "Se o atraso entre programas pode ser definido dinamicamente usando 'rep\\_delay').",
"default": false
},
"measure_esp_enabled": {
"type": "boolean",
"description": "Se a leitura ESP é suportada pelo backend.",
"default": false
},
"supported_instructions": {
"type": "array",
"minItems": 0,
"description": "Instruções suportadas pelo backend.",
"items": {
"type": "string"
}
},
"supported_features": {
"type": "array",
"minItems": 0,
"description": "Conjunto de recursos suportados pelo backend, como qobj, qasm3, etc.",
"items": {
"type": "string"
}
},
"quantum_volume": {
"type": "integer",
"description": "Volume quântico de backend",
"minimum": 1
},
"processor_type": {
"type": "object",
"required": [
"family",
"revision"
],
"properties": {
"family": {
"type": "string",
"description": "A família de processadores indica a arquitetura do chip quântico"
},
"revision": {
"type": "string",
"description": "O número de revisão reflete as variantes de design dentro de uma determinada família de processadores. É normalmente um valor de versão semântica sem o valor do patch, por exemplo, “ 1.0 ”."
},
"segment": {
"type": "string",
"description": "O segmento, se indicado, é usado para distinguir diferentes subconjuntos da estrutura/chip qubit"
}
}
},
"qubit_lo_range": {
"type": "array",
"minItems": 1,
"description": "Faixa de frequência para o LO qubit",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"meas_lo_range": {
"type": "array",
"minItems": 1,
"description": "Faixa de frequência para a medição LO",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
},
"timing_constraints": {
"type": "object",
"properties": {
"granularity": {
"type": "integer",
"description": "Tamanho do bloco de dados da memória de forma de onda"
},
"min_length": {
"type": "integer",
"description": "Número mínimo de amostras necessárias para definir um pulso"
},
"pulse_alignment": {
"type": "integer",
"description": "Instrução que aciona a resolução temporal do canal de pulso em unidades de dt"
},
"acquire_alignment": {
"type": "integer",
"description": "Instrução que aciona a resolução temporal do canal de aquisição em unidades de dt"
}
}
}
}
},
{
"required": [
"open_pulse"
],
"properties": {
"open_pulse": {
"enum": [
false
]
}
}
}
]
}
]
}Obter a configuração das faixas do back-end
Obter a configuração das faixas de execução para o backend especificado.
Autorização
Para chamar esse método, deve-se ter sido designado a uma ou mais funções de acesso do IAM que incluam as ações a seguir. É possível verificar seu acesso indo para Users > User > Access
quantum-computing.direct-access-lane-configuration.list
Auditoria
A chamada desse método gera os seguintes eventos de auditoria.
quantum-computing.direct-access-lane-configuration.list
Entrada
Nome, Tipo | Descrição |
|---|---|
backend-name Necessário 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())Saída
Código de status | Descrição |
|---|---|
| 200 | Configuração das faixas de execução do backend. A soma de `ibm_quantum_compute.lanes` e `hpc_workload_manager.lanes` deve estar entre 1 e o número máximo de faixas permitido para o backend especificado (inclusive). |
| 401 | Retornado quando a autenticação falhou. |
| 404 | Retornado quando o backend não é encontrado. |
{
"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"
}Obter propriedades do backend
Retorna as propriedades de um backend.
Autorização
Para chamar esse método, deve-se ter sido designado a uma ou mais funções de acesso do IAM que incluam as ações a seguir. É possível verificar seu acesso indo para Users > User > Access
quantum-computing.direct-access-backend-properties.read
Auditoria
A chamada desse método gera os seguintes eventos de auditoria.
quantum-computing.direct-access-backend-properties.read
Entrada
Nome, Tipo | Descrição |
|---|---|
backend-name Necessário string | Exemplo: "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())Saída
Código de status | Descrição |
|---|---|
| 200 | Retornado quando as propriedades do backend foram recuperadas com sucesso. |
| 401 | Retornado quando a autenticação falhou. |
| 404 | Retornado quando o backend não é encontrado. |
{
"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 esquema de propriedades do backend",
"version": "1.0.0",
"definitions": {
"gate": {
"properties": {
"gate": {
"type": "string"
},
"parameters": {
"items": {
"description": "Parâmetro registrado como nome-data-unidade-valor",
"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": "Parâmetros gerais do sistema",
"items": {
"description": "Parâmetro registrado como nome-data-unidade-valor",
"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": "Parâmetro registrado como nome-data-unidade-valor",
"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": "Nome do backend",
"type": "string"
},
"backend_version": {
"description": "Versão do backend no formulário X.X.X",
"pattern": "[0-9]+.[0-9]+.[0-9]+$",
"type": "string"
},
"gates": {
"description": "Parâmetros do portão do sistema",
"items": {
"properties": {
"gate": {
"type": "string"
},
"parameters": {
"items": {
"description": "Parâmetro registrado como nome-data-unidade-valor",
"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": "Parâmetros gerais do sistema",
"items": {
"description": "Parâmetro registrado como nome-data-unidade-valor",
"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": "Data/hora da última atualização de uma propriedade.",
"format": "date-time",
"type": "string"
},
"qubits": {
"description": "Parâmetros do qubit do sistema",
"items": {
"items": {
"description": "Parâmetro registrado como nome-data-unidade-valor",
"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"
}