IBMBackend
class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None)
Bases: BackendV2
Classe de backend que faz interface com um backend do IBM Quantum.
- Você não deve instanciar a classe
IBMBackenddiretamente. Em vez disso, use os métodos fornecidos por uma instânciaQiskitRuntimeServicepara recuperar e manipular backends.
Essa classe representa um backend do IBM Quantum. Seus atributos e métodos fornecem informações sobre o backend. Por exemplo, o método status() retorna uma instância de BackendStatus . A instância contém os atributos operational e pending_jobs , que informam se o backend está operacional e também o número de trabalhos na fila do servidor para o backend, respectivamente:
status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobsAqui está a lista de atributos disponíveis na classe IBMBackend :
name: nome do backend.
backend_version: versão de backend no formato X.Y.Z.
num_qubits: número de qubits.
alvo: A
qiskit.transpiler.Targetobjeto para o backend.basis_gates: lista dos nomes dos portões da base no backend.
gates: lista de portões de base no backend.
local: o backend é local ou remoto.
simulador: o backend é um simulador.
condicional: o backend oferece suporte a operações condicionais.
open_pulse: o backend suporta pulso aberto.
memória: o backend oferece suporte à memória.
coupling_map (lista): O mapa de acoplamento do dispositivo
supported_instructions ( [Liststr] ): Instruções compatíveis com o backend.
dynamic_reprate_enabled (bool): se o atraso entre as primitivas pode ser definido dinamicamente (ou seja, por meio de
rep_delay). O padrão é False.rep_delay_range ( [Listfloat] ): lista 2d que define o intervalo suportado de atrasos de repetição para backend em μs. A primeira entrada é a extremidade inferior do intervalo, a segunda entrada é a extremidade superior do intervalo. Opcional, mas será especificado quando
dynamic_reprate_enabled=True.default_rep_delay (float): Valor de
rep_delayse não for especificado pelo usuário edynamic_reprate_enabled=True.n_uchannels: Número de canais u.
u_channel_lo: Relação de canal U no dispositivo los.
meas_levels: Níveis de medição suportados.
qubit_lo_range: Intervalos de Qubit lo para cada qubit com forma (min, max) em GHz.
meas_lo_range: Faixas de lo de medição para cada qubit com forma (mín, máx) em GHz.
dt: Intervalo de tempo do canal de acionamento do Qubit em nanossegundos.
dtm: Intervalo de tempo do canal de acionamento de medição em nanossegundos.
rep_times: Tempos de repetição suportados (tempo de execução do programa) para backend em μs.
meas_kernels: Kernels de medição suportados.
discriminadores: Discriminadores suportados.
hamiltoniano: Um dicionário opcional com campos que caracterizam o sistema hamiltoniano.
channel_bandwidth (lista): Largura de banda de todos os canais (qubit, medição e U)
aquisição_latência (lista): 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.
condicional_latência (lista): Matriz de dimensão n_channels [d->u->m] x n_registers. Latência (em unidades de dt) para realizar uma operação condicional no canal n a partir do slot de registro m
meas_map (lista): Agrupamento de medições que são multiplexadas
sample_name (str): Nome de amostra para o backend
n_registers (int): Número de slots de registro disponíveis para feedback (se a condicional for True)
register_map (lista): Uma matriz de dimensão n_qubits X n_registers que especifica se um qubit pode armazenar uma medida em um determinado slot de registro.
configurable (bool): True se o backend for configurável, se o backend for um simulador
credits_required (bool): True se o backend exigir créditos para executar um trabalho.
online_date (datetime): A data em que o dispositivo ficou on-line
display_name (str): Campo de nome alternativo para o backend
description (str): Uma descrição para o backend
tags (lista): Uma lista de tags de string para descrever o backend
version: versão da classe
Backend(Ex: 1, 2)canais: Um dicionário opcional que contém informações de cada canal - sua finalidade, tipo e qubits operados.
parametric_pulses (lista): Uma lista de formas de pulso compatíveis com o backend. Por exemplo:
['gaussian', 'constant']processor_type (dict): Tipo de processador para esse backend. Um dicionário com o formato
{"family": <str>, "revision": <str>, segment: <str>}, como{"family": "Canary", "revision": "1.0", segment: "A"}.
- família: Família de processadores desse backend.
- revisão: Versão da revisão deste processador.
- segmento: Segmento ao qual este processador pertence em um chip maior.
Parâmetros
- configuration (QasmBackendConfiguration) – Configuração do backend.
- service (QiskitRuntimeService) – Instância de
QiskitRuntimeService. - api_client (RuntimeClient) – IBM cliente usado para se comunicar com o servidor.
- instance (str | None) – A instância do serviço a ser utilizada.
- calibration_id (str | None) – Um ID de calibração opcional a ser usado para esse backend
Inicializar um backend baseado em BackendV2
Parâmetros
- provider – Uma referência opcional ao objeto provider do qual o backend é proveniente
- nome – Um nome opcional para o backend
- descrição – Uma descrição opcional do backend
- online_date – Uma data e hora opcionais em que o backend foi colocado em operação
- backend_version – Uma string opcional indicando a versão do backend. Isso difere do
versionatributo, poisversionse refere à versão da interface abstrataBackenddo objeto, enquantobackend_versionserve para controlar as versões do próprio backend. - campos – argumentos para os valores a serem usados para substituir as opções padrão.
- configuration (QasmBackendConfiguration)
- service (QiskitRuntimeService)
- api_client (RuntimeClient)
- instance (str | None)
- calibration_id (str | None)
Aumentos
AttributeError – Se for especificado um campo que não esteja entre as opções do backend
Atributos
calibration_id
O ID de calibração usado para esse backend.
coupling_map
Retorna o CouplingMap objeto
dt
Retorna a resolução de tempo do sistema dos sinais de entrada
Isso deverá ser implementado se o back-end for compatível com o agendamento do Pulse.
Retorna
O intervalo de tempo do sinal de entrada em segundos. Se o backend não definir dt, None será retornado.
dtm
Retorna a resolução de tempo do sistema dos sinais de saída.
Retorna
O intervalo de tempo do sinal de saída em segundos.
id_warning_issued
Valor Padrão: False
instruction_durations
Retorna o InstructionDurations objeto.
instructions
Uma lista de tuplas de instruções no backend do formulário (instruction, (qubits))
max_circuits
Retorna o número máximo de circuitos que podem ser executados em um único trabalho.
Essa propriedade costumava retornar o valor max_experiments da configuração de backend, mas esse valor não é mais uma representação precisa dos limites do circuito de backend. Novos campos serão adicionados para indicar novos limites.
meas_map
Retorna o agrupamento das medições que são multiplexadas.
Isso deverá ser implementado se o back-end for compatível com o agendamento do Pulse.
Retorna
O agrupamento de medições que são multiplexadas
num_qubits
Retorna o número de qubits que o backend possui.
operation_names
Uma lista de nomes de instruções que o backend suporta.
operations
Uma lista de Instruction instâncias que o backend suporta.
options
Retorna as opções para o backend
As opções de um backend são os parâmetros dinâmicos que definem como o backend é usado. Elas são usadas para controlar o run() método.
provider
Retorna o provedor de backend.
Retorna
o provedor responsável pelo back-end.
Tipo de retorno
provedor
service
Retorne o service objeto.
Retorna
Uma instância de QiskitRuntimeService
target
version
Valor Padrão: 2
name
Nome do backend.
description
Descrição opcional legível por humanos.
online_date
Data em que o back-end ficou on-line.
backend_version
Versão do backend que está sendo fornecida. Isso não é o mesmo que BackendV2.version, que é a versão da interface abstrata Backend .
Métodos
__call__
check_faulty
check_faulty(circuit)
Verifique se o circuito de entrada usa qubits ou bordas com defeito.
Parâmetros
circuit (QuantumCircuit) – Circuito a ser verificado.
Aumentos
ValueError - Se for encontrada uma instrução operando em um qubit ou borda com defeito.
Tipo de retorno
Nenhum
configuration
configuration()
Retorna a configuração do backend.
A configuração do backend contém informações fixas sobre o backend, como nome, número de qubits, portas de base, mapa de acoplamento, volume quântico etc.
Informações sobre a configuração do backend podem ser encontradas na API REST Obter configuração do backend.
Mais detalhes sobre as propriedades de configuração do backend podem ser encontrados aqui QasmBackendConfiguration.
IBM os backends também podem incluir as seguintes propriedades:
-
supported_features: uma lista de strings de recursos compatíveis, como “qasm3” parasuporte a circuitos dinâmicos.
-
parallel_compilation: um booleano que indica se o backend pode ou não processar váriostrabalhos de uma só vez. Partes da computação clássica serão paralelizadas.
Retorna
A configuração do backend.
Tipo de retorno
get_translation_stage_plugin
get_translation_stage_plugin()
Retorna o nome do plug-in do estágio de tradução padrão para backends IBM.
Tipo de retorno
str
properties
properties(refresh=False, datetime=None)
Retorna as propriedades de backend, sujeitas a filtragem opcional.
Esses dados descrevem as propriedades dos qubits (como T1 e T2 ), as propriedades das portas (como comprimento e erro da porta) e outras propriedades gerais do backend.
Informações sobre as propriedades do backend podem ser encontradas na API REST Obter configuração do backend.
Parâmetros
- refresh (bool) – Se
True, consulte novamente o servidor para obter as propriedades de backend. Caso contrário, retorna uma versão em cache. - datetime (python_datetime | None) – Ao especificar uma data e hora, esta função retorna uma instância do objeto
BackendPropertiescujo carimbo de data/hora é o mais próximo, mas anterior, à data e hora especificadas.
Retorna
As propriedades de backend ou None se as propriedades de backend não estiverem disponíveis no momento.
Aumentos
- TypeError - Se um argumento de entrada não for do tipo correto.
- NotImplementedError - Se a data e hora forem especificadas quando o tempo de execução da nuvem for usado.
Tipo de retorno
BackendProperties | Nenhum
qubit_properties
qubit_properties(qubit)
Retorna QubitProperties para um determinado qubit.
Se não houver nenhuma definição ou se o backend não suportar a consulta desses detalhes, esse método não precisará ser implementado.
Parâmetros
qubit (int | list[int]) – O qubit para o qual se deseja obter o QubitProperties objeto. Isso pode ser um único número inteiro para 1 qubit ou uma lista de qubits, e uma lista de QubitProperties objetos será retornada na mesma ordem
Retorna
O objeto QubitProperties para o qubit especificado. Se uma lista de qubits for fornecida, uma lista será retornada. Se estiverem faltando propriedades em um qubit, isso pode ser feito em None.
Aumentos
NotImplementedError - se o backend não for compatível com a consulta das propriedades do qubit
Tipo de retorno
QubitProperties | lista[ QubitProperties ]
refresh
refresh()
Recupera a configuração mais recente do backend e atualiza o destino atual do backend.
Tipo de retorno
Nenhum
run
run(*args, **kwargs)
Executar uma tarefa no backend.
Aumentos
IBMBackendError - O método run() não é mais suportado.
Tipo de retorno
Nenhum
set_options
set_options(**fields)
Definir os campos de opções para o backend
Esse método é usado para atualizar as opções de um backend. Se você precisar alterar qualquer uma das opções antes da execução, basta passar o kwarg com o novo valor para as opções.
Parâmetros
fields - Os campos para atualizar as opções
Aumentos
AttributeError - Se o campo passado não fizer parte das opções
status
status()
Retorna o status do backend.
Se a instância BackendStatus retornada tiver operational=True , mas status_msg="internal", o backend estará aceitando trabalhos, mas não os processando.
Retorna
O status do backend.
Aumentos
IBMBackendApiProtocolError - Se o status do backend não puder ser formatado corretamente.
Tipo de retorno
target_history
target_history(datetime=None)
A qiskit.transpiler.Target para o backend.
Retorna
Alvo com propriedades encontradas em datetime
Parâmetros
datetime (python_datetime | None)
Tipo de retorno
Destino