Referência da API do Quantum Elements Orbit
Qiskit Functions — ferramentas pré-desenvolvidas por organizações parceiras — abstraem partes do fluxo de trabalho de desenvolvimento de software para simplificar e acelerar a descoberta de algoritmos e o desenvolvimento de aplicativos em escala de serviços públicos. Clique para visualizar o guia desta função do Qiskit.
Guia do Orbit da Quantum Elements
O Quantum Elements Orbit é uma função do Qiskit que prepara circuitos quânticos para um backend selecionado do IBM Quantum®, insere o desacoplamento dinâmico (DD) em janelas de inatividade programadas e executa a carga de trabalho resultante por meio de uma primitiva do Qiskit Runtime. O Orbit aceita PUBs do Sampler e do Estimator e retorna um padrão PrimitiveResult com metadados específicos do Orbit anexados ao resultado de nível superior e a cada resultado do PUB (PUB).
Se backend_name for omitido, o Orbit seleciona um backend do IBM Quantum elegível e menos ocupado disponível para o serviço Qiskit Runtime. Se options for omitido ou None, o Orbit utiliza seus padrões integrados: transpilar e agendar circuitos, inserir a estratégia DD padrão, enviar ao serviço e anexar os metadados de inserção de DD ao resultado.
Entradas
A chamada típica envia PUBs, seleciona uma primitiva, seleciona opcionalmente um backend e, opcionalmente, passa opções específicas do Orbit:
job = orbit.run(
primitive="sampler",
pubs=[pub, pub, pub],
backend_name="ibm_boston",
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True,
},
]
},
)
result = job.result()pubs fornece os circuitos e as entradas primitivas necessárias para a execução. primitive seleciona o contrato primitivo “ Qiskit Runtime ”. backend_name seleciona o backend IBM Quantum ou pode ser omitido para permitir que o Orbit escolha o backend menos ocupado. options controla a inserção de DD do Orbit, as opções d Qiskit Runtime, o comportamento da visualização prévia/simulador e os recursos de metadados. Veja abaixo todos os detalhes sobre cada entrada.
pubs
Tipo: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]
Um ou mais PUBs que correspondem à primitiva selecionada.
- Necessário: sim
- Tipos de entrada válidos: iterável de objetos do tipo Sampler PUB ou iterável de objetos do tipo Estimator PUB
Cada PUB deve corresponder ao contrato de entrada da primitiva selecionada.
- Para
primitive="sampler"Cada PUB segue o formato PUB Sampler, como por exemplo:(circuit, parameter_values, shots). - Para
primitive="estimator"Cada PUB segue o formato do Estimator PUB, como por exemplo:(circuit, observables, parameter_values, precision). - Os circuitos não precisam ser circuitos ISA no caminho padrão
options.transpilation_mode="optimize"; o Orbit os transpila e os agenda internamente.
primitive
Tipo: str
Seleciona qual primitiva Qiskit Runtime o Orbit utiliza para execução.
- Necessário: sim
- Tipos de entrada válidos:
str
A primitiva determina o que cada PUB de deve conter e quais dados de resultado cada uma PubResult retorna.
- Opções:
"sampler"/"estimator" - Use
"sampler"para dados em forma de cadeia de bits amostrados. - Use
"estimator"para valores esperados e erros-padrão.
backend_name
Tipo: str or None
Valor Padrão: None
Nome do backend do IBM Quantum no qual será executado.
-
Obrigatório: Não
-
Valor padrão:
None -
Tipos de entrada válidos:
strouNone -
Quando omitido ou
None, o Orbit determina um backend operacional elegível que não seja um simulador comleast_busy(). -
Exemplo:
"ibm_boston"
options
Tipo: dict or None
Valor Padrão: None
Opções específicas de função que controlam o comportamento de execução do Orbit.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos:
dictouNone
As opções controlam a transpilagem, a inserção de DD, as opções de “ Qiskit Runtime ”, o modo de visualização, o modo simulador, a exportação de informações do backend e a mitigação de erros de medição.
- Chaves de opção desconhecidas são rejeitadas.
- Insira
None,{}, ou não insira nadaoptionspara usar todos os valores padrão. - Exemplo:
{
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True
}
]
}Lista de opções
preview
Tipo: bool
Valor Padrão: False
Se o Orbit retorna um relatório de inserção de DD sem enviar um trabalho de “ Qiskit Runtime ”.
-
Obrigatório: Não
-
Valor padrão:
False -
Tipos de entrada válidos:
bool -
TrueNesse caso, não é utilizado tempo da QPU; o orbit simplesmente faz o pré-processamento dos circuitos empubse fornece um relatório de inserção. -
Quando
False(valor padrão), uma tarefa do tipo “ Qiskit Runtime ” com circuitos modificados pelo Orbit é enviada e processada. -
Se tanto
previewquantosimulatorforemTrue, o modo de visualização tem prioridade e a execução do simulador é ignorada.
debug_return_circuits
Tipo: bool
Valor Padrão: False
Se o modo de visualização inclui o circuito pós-Orbit preparado para cada PUB nos metadados.
-
Obrigatório: Não
-
Valor padrão:
False -
Tipos de entrada válidos:
bool -
Usado apenas quando
preview=True. -
TrueQuando isso ocorre, cada relatório do PUB incluidebugCircuit.circuit,debugCircuit.usedQubits, e as contagens de operações. Isso também inclui o princípio do “melhor esforço”debugCircuit.qasmquando o Qiskit consegue exportar o circuito. -
Deixe essa opção desativada para execuções normais, pois as cargas úteis do circuito podem ser grandes.
transpilation_mode
Tipo: string
Valor Padrão: optimize
Como a Orbit prepara os circuitos d PUB e antes da inserção do DD.
-
Obrigatório: Não
-
Valor padrão:
"optimize" -
Valores válidos para a entrada:
"optimize","prepare", ou"validate" -
"optimize"executa repetidamente a transpilação do Qiskitoptimization_level=2e mantém o candidato com a menor profundidade de dois qubits para circuitos estáticos e dinâmicos. -
"prepare"executa a preparação do Qiskitoptimization_level=0e o agendamento do ALAP. Sephysical_layoutfor fornecido, o Orbit primeiro materializa o circuito nesses índices de fios físicos e utiliza o método de layout trivial do Qiskit. -
"validate"considera que o circuito de entrada já está fisicamente preparado. O Orbit verifica a compatibilidade do backend sempre que possível, não realiza remapeamento, roteamento, otimização nem correção de programação antes da inserção do DD e ignoraphysical_layouta operação, exibindo um aviso.
physical_layout
Tipo: object or null
Valor Padrão: None
Mapeamento opcional de qubits lógicos para físicos.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos: objeto com chaves e valores inteiros não negativos, ou
None
Exemplo: {"0": 85, "1": 89} mapeia o qubit lógico 0 para o qubit físico 85 e o qubit lógico 1 para o qubit físico 89. Python Os chamadores podem usar chaves inteiras; as chaves dos objetos JSON são cadeias de caracteres.
- No
"optimize"modo, isso é passado como uma semente inicial do layout, e o mapeamento final pode sofrer alterações durante a otimização/roteamento. - No
"prepare"modo, o Orbit materializa o circuito nesses índices de fios físicos e, em seguida, utiliza uma preparaçã level-0 a comlayout_method="trivial". Os SWAPs de roteamento explícito ainda podem alterar o estado quântico durante a execução. - No
"validate"modo, os fios do circuito fornecidos são os que prevalecem; portanto,physical_layouté ignorado e gera um aviso.
num_transpilation_steps
Tipo: int
Valor Padrão: 300
Número de tentativas de Orbit com sementes de transpilação estocástica em transpilation_mode="optimize".
- Obrigatório: Não
- Valor padrão:
300 - Tipos de entrada válidos: inteiro positivo
mem
Tipo: bool or None
Valor Padrão: None
Se o Orbit aplica a mitigação de erros de medição exclusivamente por meio do Sampler, utilizando o recurso “ M3 ”.
-
Obrigatório: Não
-
Valor padrão:
None -
Tipos de entrada válidos:
boolouNone -
Quando
True, aplica a mitigação de erros de medição às imagens provenientes desampler. -
Quando
False, não realiza o pós-processamento das imagens. -
NoneQuando o modo Orbit está ativado, o MEM é habilitado para os PUBs do Sampler executados; já os modos raw e custom ignoram o MEM, a menos que estejam configurados para o contrário. -
O
ExplicitTruerequerprimitive="sampler",preview=False, esimulator=False. -
As contagens brutas do Sampler são preservadas, e as contagens mitigadas são anexadas aos metadados do Orbit.
-
Caso a mitigação falhe durante o pós-processamento, o Orbit preserva o resultado bruto e registra a falha na mitigação nos metadados.
pub_options
Tipo: list[dict] or None
Valor Padrão: None
Modos de execução e substituições do per- PUB .
-
Obrigatório: Não
-
Valor padrão:
None -
Tipos de entrada válidos:
list[dict]ouNone -
Uma entrada é transmitida para todos os PUBs; caso contrário, passe uma entrada por PUB.
-
{"mode": "raw"}utiliza uma única etapa de transpilação e agendamento do Qiskitoptimization_level=0para circuitos estáticos ou dinâmicos e ignora a otimização do Orbit, o Orbit DD, o DD dinâmico e o MEM. -
{"mode": "orbit"}usa as configurações padrão do Orbit. -
{"mode": "custom"}pode substituirtranspilation_mode,physical_layout,dd_qubits,dd_strategydynamic_dd_seq,, emempara esse PUB o. -
O modo Raw sempre usa
transpilation_mode="prepare"comphysical_layout=None, ignora o Orbit DD e desconsidera as opções globais de preparação. -
O Orbit e os PUBs personalizados herdam as variáveis globais
transpilation_modeephysical_layout, a menos que as substituam conforme PUB. -
Use PUBs duplicados com
pub_optionspara comparar os dados brutos, as configurações padrão do Orbit e uma estratégia DD personalizada em um único trabalho do Qiskit Runtime. Para uma linha de base CPMG simples, use{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}dentro do arquivodd_strategy. PUB personalizado.
Para circuitos preparados pelo chamador, use transpilation_mode="validate" para os PUBs habilitados para Orbit:
options = {
"pub_options": [
{"mode": "raw"},
{"mode": "orbit", "transpilation_mode": "validate"},
{
"mode": "custom",
"transpilation_mode": "validate",
"dd_qubits": None,
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"mem": False,
},
]
}dd_strategy
Tipo: list[list[dict]]
Estratégias de DD ordenadas a serem aplicadas aos circuitos d PUB.
-
Obrigatório: Não
-
Valor padrão:
[[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]] -
Tipos de entrada válidos:
list[list[dict]] -
Opções: Lista externa não vazia de listas de estratégias não vazias.
-
A lista externa indexa PUBs ou circuitos. Se for fornecida apenas uma estratégia, o Orbit a transmite para todos os PUBs.
-
Cada lista interna é aplicada, rodada por rodada, ao mesmo circuito.
-
Cada rodada requer
dd_sequence;pulse_densityo valor padrão é0.25;dd_repso valor padrão é1.
dd_strategy campos redondos
Tipo: str or dict or list
- Campo:
dd_sequenceSequência a ser inserida para uma rodada de DD. - Necessário: sim
- Tipos de entrada válidos:
str,dict, ou grupo de pulsos personalizadolist - Opções:
"auto", um nome de sequência embutido, um dicionário de variantes, como{"name": "ur", "variant": "8"}, ou uma lista personalizada de grupos de pulsos, como[[0.0], ["Y"], ["Xb", 0.5]]. - Nomes predefinidos, organizados por slots de pulso: as sequências de dois slots são
"CPMG","pureY", e"superHahn"; as sequências de quatro slots são"XY4"e"superCPMG"; as sequências de oito slots são"XY8"; as sequências de dezesseis slots são"superEuler"; as sequências de vinte slots são"KDD". - Famílias embutidas parametrizadas:
"CDD-n"com inteiron >= 1("CDD-1"é equivalente a"XY4"e a sequência cresce recursivamente);"UR-n"ou"URn"com inteiro parn >= 4(por exemplo,"UR-8"ou"URn8"); e"T-n"ou"Tn"com inteiro parn >= 2(por exemplo,"T-8"ou"Tn8"). - Variantes integradas do RGA:
"RGA-2x","RGA-4","RGA-4p","RGA-8a""RGA-8c","RGA-16a","RGA-16b",,"RGA-32a","RGA-32c","RGA-64a","RGA-64c", e"RGA-256a". - Os nomes de sequências integradas não diferenciam maiúsculas de minúsculas e ignoram separadores, como hífens e sublinhados. Por exemplo,
"RGA-8a"e"rga8a"são equivalentes, assim como"UR-n-8"e"UR8". - Os valores numéricos personalizados correspondem a fases em unidades de pi para rotações de pi no plano xy.
0.0é +X e0.5é +Y. - Os aliases de string personalizados incluem
"X","Y","Xb", e"Yb".
Tipo: float
- Campo:
pulse_densityFração de cada intervalo ocioso disponível para os pulsos DD desta rodada. - Obrigatório: Não
- Valor padrão:
0.25 - Tipos de entrada válidos:
floatouint - Opções: Navegar de
0.0até1.0 0.0deixa lacunas sem preenchimento nessa rodada.1.0agrupa os pulsos da forma mais densa que a temporização da sequência permite.
Tipo: int
Valor Padrão: 1
- Campo:
dd_repsNúmero de repetições da sequência DD desta rodada dentro de cada intervalo de inatividade qualificado. - Obrigatório: Não
- Valor padrão:
1 - Tipos de entrada válidos:
int - Opções: Número inteiro >= 1
dynamic_dd_seq
Tipo: str or dict or list or None
Valor Padrão: XY8
Sequência DD utilizada para a inserção DD de alimentação direta de circuito dinâmico do Orbit.
-
Obrigatório: Não
-
Valor padrão:
"XY8" -
Tipos de entrada válidos:
str,dict, grupolistde pulsos personalizado ouNone -
Opções: As mesmas formas de sequência que
dd_strategy[].dd_sequence, ouNonepara desativar o estágio de inserção dinâmica de alimentação direta. -
Aplica-se quando o Orbit detecta lógica condicional ou fluxo de controle e utiliza o pipeline DD de circuito dinâmico.
-
Primeiro é executada a passagem normal
dd_strategy; em seguida, o Orbit aplica essa sequência às regiões dinâmicas de feedforward identificadas.
dd_qubits
Tipo: list[int] or None
Valor Padrão: None
Lista global de permissões padrão de índices de qubits elegíveis para inserção no Orbit DD.
-
Obrigatório: Não
-
Valor padrão:
None -
Tipos de entrada válidos:
list[int]ouNone -
Opções:
Noneou uma lista de números inteiros >= 0 -
Nonevisa apenas qubits ativos/tocados. -
Uma lista pode incluir apenas qubits inativos e exclui os qubits que não constam nela.
-
pub_options[i].dd_qubitsÉ possível substituir esse valor nasorbitentradas oucustomPUB. -
Listas de permissão explícitas só podem ser fornecidas para PUBs habilitados para Orbit cujo endereço resolvido
transpilation_modeseja"validate", de modo que o chamador seja o proprietário dos índices dos qubits físicos. Os PUBs Raw ignoram o Orbit DD e não aceitamdd_qubits.
save_backend_info
Tipo: bool
Valor Padrão: False
Se o Orbit salva as propriedades de calibração do backend após a execução de uma tarefa do tipo “ Qiskit Runtime ”.
-
Obrigatório: Não
-
Valor padrão:
False -
Tipos de entrada válidos:
bool -
Opções:
True/False -
service.job(job_id).properties()Quando ativado, o Orbit consulta, grava as propriedades serializadas do backend em/datae informa o caminho salvo nos metadados do Orbit. -
As falhas são relatadas como avisos e não invalidam os resultados das primitivas que foram bem-sucedidos.
default_shots
Tipo: int
Valor Padrão: 4096
Imagens padrão utilizadas para PUBs do Sampler que não especificam imagens explicitamente.
-
Obrigatório: Não
-
Valor padrão:
4096 -
Tipos de entrada válidos:
int -
Opções: Número inteiro > 0
-
Aplica-se apenas a
primitive="sampler".
default_precision
Tipo: float
Valor Padrão: 0.015625
Precisão padrão utilizada para PUBs do Estimador que não especificam a precisão explicitamente.
-
Obrigatório: Não
-
Valor padrão:
0.015625 -
Tipos de entrada válidos:
floatouint -
Opções: Float > 0
-
Aplica-se apenas a
primitive="estimator".
runtime_options
Tipo: dict
Qiskit Runtime opções primitivas passadas para a primitiva subjacente SamplerV2 ou EstimatorV2.
-
Obrigatório: Não
-
Valor padrão:
{"resilience_level": 0, "dynamical_decoupling": {"enable": false}} -
Tipos de entrada válidos:
dict -
São aceitos dicionários de opções aninhados, incluindo opções avançadas e experimentais do
Qiskit Runtimepara a primitiva selecionada. -
O desacoplamento dinâmico em tempo de execução está desativado por padrão; portanto, a inserção de DD do Orbit é a única etapa de DD, a menos que o usuário opte por ativá-la.
Por exemplo, usuários avançados do Sampler podem ativar campos de depuração de circuitos dinâmicos:
options = {
"runtime_options": {
"experimental": {
"execution": {
"scheduler_timing": True,
"stretch_values": True,
}
}
}
}- Aviso: Portanto, deve-se alterar esse valor com cuidado, ativando manualmente abordagens específicas, como o “twirling”, sem deixar de excluir o DD.
resilience_level
Tipo: int or None
Valor Padrão: 0
Nível de resiliência do tempo de execução do estimador.
-
Obrigatório: Não
-
Valor padrão:
0 -
Tipos de entrada válidos:
intouNone -
Opções:
0/1/2/None -
Aplica-se a
primitive="estimator". -
Use
Nonepara deixar a opção “Runtime” desmarcada. -
Se estiver definido como
primitive="sampler", o Orbit o ignora e adiciona um aviso aos metadados do Orbit.
dynamical_decoupling
Tipo: dict
Opções de desacoplamento dinâmico passadas para Qiskit Runtime.
- Obrigatório: Não
- Valor padrão:
{"enable": false} - Tipos de entrada válidos:
dict
enable
Tipo: bool
Valor Padrão: False
Se deve ser ativada a inserção de DD do tipo “ Qiskit Runtime ”, além da inserção de DD do tipo “Orbit”.
-
Obrigatório: Não
-
Valor padrão:
False -
Tipos de entrada válidos:
bool -
Opções:
True/False -
Quando ativado, o Orbit exibe um aviso, pois a aplicação simultânea do Runtime DD e do Orbit DD pode causar um comportamento inesperado.
sequence_type
Tipo: str or None
Valor Padrão: None
Tipo de sequência DD opcional em tempo de execução.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos:
strouNone
É repassado para Qiskit Runtime quando fornecido.
scheduling_method
Tipo: str or None
Valor Padrão: None
Método opcional de agendamento DD em tempo de execução.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos:
strouNone
É repassado para Qiskit Runtime quando fornecido.
extra_slack_distribution
Tipo: str or None
Valor Padrão: None
Distribuição opcional do Runtime DD com folga adicional.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos:
strouNone
É repassado para Qiskit Runtime quando fornecido.
skip_reset_qubits
Tipo: bool or None
Valor Padrão: None
Configuração opcional do Runtime DD que determina se os qubits de reinicialização são ignorados.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos:
boolouNone
É repassado para Qiskit Runtime quando fornecido.
max_execution_time
Tipo: int or None
Valor Padrão: None
Limite flexível para o tempo máximo de execução da tarefa Qiskit Runtime.
- Obrigatório: Não
- Valor padrão:
None - Tipos de entrada válidos:
intouNone
O valor é especificado em segundos.
- Opções:
Noneou um número inteiro > 0 - Quando
None, é utilizado o padrão do Runtime.
simulator
Tipo: bool
Valor Padrão: False
Se o Orbit executa a carga de trabalho em um simulador Aer local, em vez de em uma QPU real.
- Obrigatório: Não
- Valor padrão:
False - Tipos de entrada válidos:
bool
O simulador é executado dentro do contêiner de funções.
- Opções:
True/False - É ignorado quando
previewéTrue. - É retornado um objeto normal
PrimitiveResultcom os metadados do Orbit anexados.
simulator_noise
Tipo: str
Valor Padrão: backend
Modelo de ruído utilizado quando simulator é True.
-
Obrigatório: Não
-
Valor padrão:
"backend" -
Tipos de entrada válidos:
str -
Opções:
"backend"/"ideal" -
"backend"utilizaAerSimulator.from_backend(backend), sempre que possível. -
AerSimulator``"ideal"usa um arquivo simples e sem ruído.
gate_dur
Tipo: int or None
Valor Padrão: None
Duração de um gate ou pulso DD.
-
Obrigatório: Não
-
Valor padrão:
None -
Tipos de entrada válidos:
intouNone -
Aviso: Utilize um valor explícito apenas para testes controlados ou quando houver um motivo específico e comprovado relacionado ao backend.
-
O valor utiliza as mesmas unidades que o backend usa para atrasos, normalmente
dt. -
Opções:
Noneou um número inteiro > 0 -
Quando
Noneo Orbit determina um valor compatível com o backend a partir debackend.targetutilizando a duração mais longa calibrada do gate X ou sqrt(X).
Saídas
A função retorna um Qiskit PrimitiveResult contendo um PubResultPUB por entrada. O Orbit preserva os dados de resultado das normais da primitiva selecionada e adiciona metadados do Orbit em quantum_elements_orbit.
Tipo: PrimitiveResult
Resultado padrão de uma primitiva do Qiskit com metadados do Orbit anexados.
primitive="sampler"Para cadaPubResult.data, há dados de resultados do Sampler, como matrizes de bits de registro clássico.primitive="estimator"Para cadaPubResult.data, há dados de resultados do estimador, como valores esperados e erros-padrão.- No modo de visualização, cada um
PubResult.dataestá vazio porque nenhuma primitivaQiskit Runtimefoi enviada.
Metadados de nível superior
metadata["quantum_elements_orbit"]
Tipo: dict[str, Any]
Relatório agregado do Orbit para a chamada de função completa.
functionVersion
Tipo: str
Versão do Orbit Core que gerou o resultado.
preview
Tipo: bool
Se o resultado foi gerado no modo de visualização.
simulator
Tipo: bool
Se o modo simulador foi solicitado.
simulatorNoise
Tipo: str
Modo de ruído do simulador: "backend" ou "ideal".
primitive
Tipo: str
Primitiva selecionada: "sampler" ou "estimator".
ddStrategy
Tipo: list[list[dict]]
Estratégia de DD normalizada utilizada na simulação.
pubOptions
Tipo: list[dict[str, Any]]
Resolvidos os modos de execução e substituições por PUB. ddStrategyCada entrada inclui o índice PUB, o modo, o valor resolvido transpilationMode, physicalLayout, mem, orbitEnabled ddQubits, dynamicDdSeq,, e, quando aplicável, o valor resolvido por PUB.
dynamicDdSeq
Tipo: str or dict or list or None
Sequência DD de alimentação direta com circuito dinâmico utilizada para a execução.
ddQubits
Tipo: list[int] or None
Lista de qubits DD globais permitidos, definida como padrão para a execução. Os relatórios do Per- PUB incluem a lista de permissões resolvida para cada PUB.
runtimeOptions
Tipo: dict[str, Any]
Opções de tempo de execução que o Orbit tentou aplicar, incluindo resilienceLevel e dynamicalDecoupling.
transpilationMode
Tipo: string
Modo de preparação de circuito global solicitado para PUBs habilitados para Orbit.
physicalLayout
Tipo: dict or None
Solicitação de mapeamento global do layout lógico para o físico para PUBs compatíveis com o Orbit.
numTranspilationSteps
Tipo: int
Número de sementes de transpilação estocástica configuradas para a transpilação otimizada.
backendInfo
Tipo: dict[str, Any]
Status da exportação da calibração do backend. Inclui enabled, saved, e, quando disponíveis, o nome do backend, o ID da tarefa do Qiskit Runtime, o caminho de salvamento e os avisos.
warnings
Tipo: list[str]
Avisos de nível de execução, como a visualização substituindo o modo simulador, o Runtime DD ativado junto com o Orbit DD ou o Sampler ignorando resilience_level.
pubs
Tipo: list[dict[str, Any]]
Um relatório de inserção em órbita por PUB de entrada.
metadata["resource_usage"]
Tipo: dict[str, dict[str, float]]
Utilização de recursos por fase, com registros relativos à otimização de hardware, espera pela QPU, execução na QPU e pós-processamento.
- As fases incluem
RUNNING: OPTIMIZING_FOR_HARDWARE,RUNNING: WAITING_FOR_QPU,RUNNING: EXECUTING_QPU, eRUNNING: POST_PROCESSING. RUNNING: EXECUTING_QPUincluiQPU_TIME.
Metadados de órbita de Per- PUB
Cada um PubResult.metadata["quantum_elements_orbit"] contém o relatório de inserção referente a esse PUB.
pubIndex
Tipo: int
Índice do “ PUB ” na carga de trabalho enviada.
mode
Tipo: str
Resolvido de acordo com o modo de execução do PUB: "raw", "orbit", ou "custom".
orbitEnabled
Tipo: bool
Se a inserção do Orbit DD estava habilitada para o PUB.
transpilationMode
Tipo: string
Modo de preparação de circuito definido para este PUB.
physicalLayout
Tipo: dict or None
Foi resolvido o mapeamento do layout lógico para o físico para este PUB. No validate modo, esse valor é ignorado, acompanhado de um aviso.
mem
Tipo: bool or None
Resolvida a configuração de mitigação de erros de medição para este PUB.
dynamicDdSeq
Tipo: str or dict or list or None
Sequência DD de alimentação direta com circuito dinâmico resolvida para este PUB.
ddQubits
Tipo: list[int] or None
Lista de qubits DD permitidos definida para este PUB.
status
Tipo: str
Status da inserção do DD para este PUB, ou seja, se o DD foi aplicado ou ignorado.
numRounds
Tipo: int
Número de rodadas da estratégia DD aplicadas ao PUB.
warnings
Tipo: list[str]
PUB - avisos relacionados à inserção de DD e ao tratamento de compatibilidade.
insertionSummary
Tipo: dict[str, Any]
Resumo geral das inserções de DD para este PUB. Inclui o status, as contagens de lacunas iniciais e preenchidas, o número de sequências DD adicionadas, as contagens de portas adicionadas, a duração das portas, a profundidade e o tamanho do circuito antes e depois da inserção, além de avisos de inserção.
perRoundSummaries
Tipo: list[dict[str, Any]]
Resumos da inserção de DD por rodada. Cada entrada inclui o índice da rodada, a sequência, a densidade de pulsos, as repetições, o número de intervalos, o número de portas adicionadas, a duração das portas, a profundidade e o tamanho do circuito antes e depois dessa rodada, além de avisos.
measurementErrorMitigation
Tipo: dict[str, Any]
Ocorre quando a função MEM está ativada para pelo menos um PUB. Informa se uma medida de mitigação d M3 e foi aplicada, aplicada parcialmente, ignorada ou falhou. As entradas do tipo “Per- PUB ” preservam as contagens não mitigadas e incluem as contagens mitigadas quando a mitigação é bem-sucedida.
O DD insere pulsos reais e subatrasos nas janelas de inatividade programadas, de modo que a profundidade e o tamanho do circuito relatados geralmente aumentam. A inserção preserva a duração programada da janela de inatividade; ela não tenta preservar a profundidade do gate.
Visualizar saída
PrimitiveResultQuando options.preview é True, o Orbit retorna um objeto que contém apenas metadados. Nenhuma tarefa do tipo “ Qiskit Runtime ” é enviada, nenhuma contagem do Sampler nem valores do Estimator são preenchidos, e o tempo de QPU é relatado como 0.0. Use o modo de visualização para verificar os relatórios de inserção de DD antes de executá-los no hardware.
Saída do simulador
Quando options.simulator é True e options.preview é False, o Orbit executa a carga de trabalho pós-DD com um simulador Aer local dentro do contêiner da função. PrimitiveResultO resultado continua sendo um Orbit normal; os registros simulator=True e o modo selecionado simulatorNoise nos metadados de nível superior.
Resultado da mitigação de erros de medição
Quando o MEM resolvido estiver habilitado para pelo menos um PUB, o Orbit anexa measurementErrorMitigation os metadados. Quando o MEM é bem-sucedido, o método do get_counts() registro Sampler retorna o histograma corrigido pelo MEM. As contagens de tempo de execução não ajustadas continuam disponíveis como measurementErrorMitigation["rawCounts"].
Entre as medidas de mitigação bem-sucedidas relacionadas ao “ PUB ” estão:
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
Para circuitos dinâmicos, o Orbit aplica o MEM à sequência de bits de saída retornada como pós-processamento do histograma. O Orbit não determina se cada bit se originou de uma medição no terminal ou de uma medição no meio do circuito, e não altera, retroativamente ou em tempo real, os ramos condicionais que utilizaram resultados de medição não mitigados. Esse tratamento é adequado para sequências de bits destinadas a servir como saídas de circuitos, mas os usuários não devem interpretá-lo como uma correção do fluxo de controle dinâmico que gerou essas saídas.
Caso a mitigação falhe, o Orbit preserva o resultado bruto do Qiskit Runtime e registra o status de falha e a mensagem de erro nos metadados.
Manipulação de erros
O Orbit gera erros estruturados qiskit_serverless.ServerlessError em caso de falhas fatais. codeCada erro inclui uma carga útil, message, e details . O Orbit mapeia os erros para as categorias de códigos de erro existentes do IBM Quantum, sempre que possível; os erros de validação utilizam o código 1221. Os erros específicos de órbita utilizam o intervalo 4700 de códigos reservados do QE até 4709 quando nenhum código existente do IBM Quantum for mais adequado. Consulte a referência de códigos de erro IBM Quantum para obter orientações gerais sobre códigos de erro.
Verifique primeiro os campos de erro message e details . Eles identificam o campo inválido, o backend, o índice PUB ou a falha no Qiskit Runtime de origem, quando o Orbit consegue determiná-la.
- Os erros de validação de entrada utilizam o código
1221.dd_strategy``pubsEntre elas estão tipos de opções inválidos, chaves de opção desconhecidas, valores vazios, inválidos, comprimento inválidopub_options,dd_qubitscom resoluçãotranspilation_modediferente de"validate", circuitos preparados pelo chamador que não são compatíveis com o destino de backend selecionado, valores inválidosphysical_layoute solicitações MEM incompatíveis, tais comomem=Truecomprimitive="estimator",preview=True, ousimulator=True. - Erros de primitivas não suportadas utilizam o código
1211. O Orbit aceita apenasprimitive="sampler"eprimitive="estimator". - Erros de seleção do backend ou de capacidade do backend utilizam o código
1007ou1009. Entre elas estão nomes de backends indisponíveis, a ausência de um backend elegível com menor carga ou um backend sem as informações de temporização necessárias para a inserção de DD. - As falhas na inserção de DD e na viagem de ida e volta do QASM utilizam o código
1003. Isso pode ocorrer quando um circuito não pode ser transpilado, programado, convertido ou preenchido de maneira consistente para o backend e a estratégia DD selecionados. - Qiskit Runtime falhas no envio devem usar o código
1245; tarefas que falham antes de gerar um resultado devem usar o código5203. O Orbit mantém um código de erro “ Qiskit Runtime ” do servidor de origem quando este é exposto, com o código de fallback do Orbit emdetails. - Falhas inesperadas específicas da órbita são relatadas como erros estruturados no intervalo reservado do QE (
4700--4709) quando nenhum código de erro existente do IBM Quantum se aplica.
Condições não fatais são relatadas como avisos, em vez de resultar na falha da tarefa, quando o Orbit puder preservar o resultado com segurança. Os alertas de nível de execução aparecem em metadata["quantum_elements_orbit"]["warnings"]; PUB - os alertas de nível de sistema aparecem em cada relatório PUB. Os eventos de aviso recuperáveis utilizam o código 1300 quando o ambiente do Qiskit Functions aceita eventos de aviso. Entre os exemplos estão: preview=True a priorização de sobre simulator=True, Qiskit Runtime a ativação do DD em conjunto com o Orbit DD, o Sampler ignorando runtime_options.resilience_level, ou a falha na exportação da calibração do backend, embora o resultado primitivo esteja disponível.
Falhas na mitigação de erros de medição também não são fatais. Caso não seja possível aplicar uma mitigação d M3, o Orbit preserva o resultado bruto do Sampler e registra measurementErrorMitigation.status="failed" uma mensagem de erro nos metadados do Orbit.