Skip to main content
IBM Quantum Platform

BackendV2

class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)

GitHub

Bases: Backend, ABC

Classe abstrata para backends

Essa classe abstrata deve ser usada para todos os objetos de back-end criados por um provedor. Essa versão difere das classes de back-end abstratas anteriores pelo fato de o atributo configuration não existir mais. Em vez disso, são adicionados atributos que expõem propriedades imutáveis necessárias equivalentes do dispositivo de backend. Por exemplo, backend.configuration().n_qubits está acessível a partir de backend.num_qubits agora.

O atributo options do backend é usado para conter as opções dinâmicas configuráveis pelo usuário do backend. Ele deve ser usado mais para opções de tempo de execução que configuram como o backend é usado. Por exemplo, algo como um campo shots para um backend que executa experimentos, que conteria um int para o número de disparos a serem executados.

Um objeto de backend pode, opcionalmente, conter métodos chamados get_translation_stage_plugin e get_scheduling_stage_plugin. Se esses métodos estiverem presentes em um objeto de back-end e esse objeto for utilizado para transpile() ou, generate_preset_pass_manager() o processo de transpilagem utilizará, por padrão, a saída desses métodos nas etapas de agendamento e de compilação da tradução. Isso permite que um backend com requisitos personalizados de compilação especifique um plugin de etapa para essas etapas, a fim de possibilitar a transformação personalizada do circuito e garantir que ele seja executável no backend. Esses ganchos estão habilitados por padrão e só devem ser usados para ativar etapas adicionais de compilação se forem necessárias para garantir que um circuito seja executável no backend ou atinja o nível de desempenho esperado. Esses métodos não recebem argumentos de entrada e devem retornar um valor str representando o nome do método, que deve ser um plug-in de stage (consulte: qiskit.transpiler.preset_passmanagers.plugin para obter mais detalhes sobre plug-ins). O caso de uso típico esperado é que um provedor de backend implemente um plug-in de etapa para translation ou scheduling que contenha as etapas de compilação personalizadas e, em seguida, que os métodos de gancho no objeto de backend retornem o nome do plug-in, de modo que o transpile() utilize por padrão ao selecionar esse backend como destino.

As subclasses desse método devem substituir o método público run() e o método interno _default_options():

_default_options

abstractmethod classmethod _default_options()

GitHub

Retornar as opções padrão

Esse método retornará um objeto de subclasse qiskit.providers.Options objeto de subclasse que será usado para as opções padrão. Esses devem ser os parâmetros padrão a serem usados para as opções do backend.

Retorna

Um objeto de opções com

valores padrão definidos

Tipo de retorno

qiskit.providers.Options

Inicializar um backend baseado em BackendV2

Parâmetros

  • provedor - Uma referência reversa opcional ao objeto do provedor do qual o backend é proveniente
  • name (str | None) – Um nome opcional para o backend
  • description (str | None) – Uma descrição opcional do backend
  • online_date (datetime | None) – Uma data e hora opcionais em que o backend foi colocado em operação
  • backend_version (str | None) – Uma string opcional indicando a versão do backend. Isso difere do version atributo, pois version se refere à versão da Backend interface abstrata do objeto, enquanto backend_version serve para controlar as versões do próprio backend.
  • fields - kwargs para os valores a serem usados para substituir as opções padrão.

Aumentos

AttributeError - Se for especificado um campo que esteja fora das opções do backend


Atributos

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 backend 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.

Aumentos

NotImplementedError - se o backend não for compatível com a consulta do intervalo de tempo do sinal de saída

instruction_durations

Retorna o InstructionDurations objeto.

instructions

Uma lista de tuplas de instruções no backend do formulário (instruction, (qubits))

max_circuits

O número máximo de circuitos que podem ser executados em um único trabalho.

Se não houver limite, isso retornará None

meas_map

Retorna o agrupamento de medições que são multiplexadas

Isso deverá ser implementado se o backend for compatível com o agendamento do Pulse.

Retorna

O agrupamento de medições que são multiplexadas

Aumentos

NotImplementedError - se o backend não suportar a consulta do mapeamento de medição

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 back-end.

Retorna

o provedor responsável pelo back-end.

Tipo de retorno

provedor

target

A qiskit.transpiler.Target para o backend.

Tipo de retorno

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.versionque é a versão da interface Backend interface abstrata.


Métodos

qubit_properties

qubit_properties(qubit)

GitHub

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 objeto 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 ]

run

abstractmethod run(run_input, **options)

GitHub

Executar no back-end.

Esse método retorna um objeto Job que executa circuitos. Dependendo do backend, essa pode ser uma chamada assíncrona ou sincronizada. Fica a critério do provedor decidir se a execução deve ser bloqueada até que a execução seja concluída ou não: a classe Job pode lidar com qualquer situação.

Parâmetros

  • run_input (QuantumCircuit orlist) – Um indivíduo ou uma lista de QuantumCircuit objetos a serem executados no back-end.
  • options - Qualquer opção kwarg a ser passada para o backend para executar a configuração. Se uma chave também estiver presente no atributo/objeto de opções, a expectativa é que o valor especificado seja usado em vez do valor definido no objeto de opções.

Retorna

O objeto de trabalho para a execução

Tipo de retorno

job

set_options

set_options(**fields)

GitHub

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 alguma 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

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