Skip to main content
IBM Quantum Platform

Limites de tarefa

Quando você envia um trabalho para uma QPU do IBM®, ele é primeiro validado para garantir que possa ser executado na QPU, a fim de reduzir a probabilidade de que o trabalho falhe depois de você ter esperado que ele fosse processado na fila. Essas verificações incluem a aplicação dos limites descritos a seguir. Se esses limites forem excedidos, essa carga de trabalho não poderá ser processada pela pilha de software quântico e, normalmente, falhará.

Notas
  • Algumas opções primitivas aumentam o tamanho do circuito. Os limites descritos são verificados após o aumento esperado no tamanho do circuito. Em particular, essas opções aumentam o tamanho do circuito:
  • Os limites informados pelos campos backend.configuration() max_shots e max_experiments não são mais relevantes ou aplicados. Esses campos serão removidos em um futuro próximo.
  • Esses limites são por trabalho, não por Bloco Primitivo Unificado ( PUB ).

Execuções máximas

Devido ao tamanho da saída, são permitidas, no máximo, 10 milhões de execuções para tarefas do Sampler. O número de execuções é igual ao número de circuitos multiplicado pelo número de disparos, sendo que os circuitos são aqueles gerados após a transmissão de elementos d PUB.

Por exemplo, se você tiver um circuito e PUB parâmetros com forma (4, 1), isso renderia 4 circuitos. Se você solicitou 2.000 tiros, então o número total de execuções é 4×2,000=8,0004 \times 2,000 = 8,000.

Observe que, se você ativar o Pauli-twirling em sua tarefa do Sampler, o número total de disparos será baseado nos valores num_randomizations shots_per_randomization e. Veja TwirlingOptions para mais detalhes.


Número máximo de instruções de baixo nível por qubit

O serviço permite até 26.8 milhões de instruções do sistema de controle por qubit. Isso garante que os circuitos do usuário se encaixem na memória de instruções do sistema de controle. O exemplo abaixo mostra como transpilá-lo e contar quantas instruções existem.

A tabela a seguir descreve como o sistema traduz as instruções do circuito da arquitetura do conjunto de instruções (ISA) para controlar as instruções do sistema ao calcular esse limite.

Instrução
Contagem
rz1
delay1
sx2
x2
cx5
cz5
ecr5
measure22
reset17
init50
Note

Essa tabela captura a heurística usada na validação e não reflete o número exato de instruções usadas para implementar uma operação.

Exemplo

Defina circuitos, transpile-os e obtenha uma contagem de quantas portas serão executadas.

from qiskit import QuantumCircuit
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService

num_qubits = 50
ghz = QuantumCircuit(num_qubits)
ghz.h(range(num_qubits))
ghz.cx(0, range(1, num_qubits))
op_counts = ghz.count_ops()

# Choose the least busy backend
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
transpiled_ghz = pm.run(ghz)
op_counts = transpiled_ghz.count_ops()

print(f"Post-Transpilation gates: {op_counts}")

Para obter detalhes completos, consulte Transpile contra backends personalizados.


Número máximo de portas de um e dois qubits por circuito

O número máximo de portas de um único qubit é o seguinte:

  • 30 milhões de portões RZ
  • 20 milhões de portões SX

O número máximo de portas de dois qubits por circuito é de cinco milhões. Isso garante que o trabalho possa ser manipulado dentro dos limites de memória da pilha de software de baixo nível.

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