BackendV2
class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)
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()
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
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
versionatributo, poisversionse refere à versão daBackendinterface abstrata do objeto, enquantobackend_versionserve 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
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.versionque é a versão da interface Backend interface abstrata.
Métodos
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 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
run
abstractmethod run(run_input, **options)
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
QuantumCircuitobjetos 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
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 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