Skip to main content
IBM Quantum Platform

IBMBackend

class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None)

GitHub

Bases: BackendV2

Classe de backend que faz interface com um backend do IBM Quantum.

Nota
  • Você não deve instanciar a classe IBMBackend diretamente. Em vez disso, use os métodos fornecidos por uma instância QiskitRuntimeService para 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_jobs

Aqui 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.Target objeto 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_delay se não for especificado pelo usuário e dynamic_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 version atributo, pois version se refere à versão da interface abstrata Backend do objeto, enquanto backend_version serve 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

A qiskit.transpiler.Target para o backend.

Retorna

Destino

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__

__call__()

GitHub

Retorna a instância do backend quando chamada como função.

Tipo de retorno

IBMBackend

check_faulty

check_faulty(circuit)

GitHub

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

GitHub

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” para

    suporte a circuitos dinâmicos.

  • parallel_compilation: um booleano que indica se o backend pode ou não processar vários

    trabalhos de uma só vez. Partes da computação clássica serão paralelizadas.

Retorna

A configuração do backend.

Tipo de retorno

QasmBackendConfiguration

get_translation_stage_plugin

get_translation_stage_plugin()

GitHub

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)

GitHub

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 BackendProperties cujo 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()

GitHub

Recupera a configuração mais recente do backend e atualiza o destino atual do backend.

Tipo de retorno

Nenhum

run

run(*args, **kwargs)

GitHub

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

GitHub

Retorna o status do backend.

Nota

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

BackendStatus

target_history

target_history(datetime=None)

GitHub

A qiskit.transpiler.Target para o backend.

Retorna

Alvo com propriedades encontradas em datetime

Parâmetros

datetime (python_datetime | None)

Tipo de retorno

Destino

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.