Limiti lavoro
Quando si invia un processo a una QPU IBM®, questo viene prima verificato per assicurarsi che possa essere eseguito sulla QPU, in modo da ridurre la probabilità che il processo fallisca dopo che l'utente ha atteso che superasse la coda. Tali controlli comprendono l'applicazione dei limiti descritti di seguito. Se questi limiti vengono superati, tale carico di lavoro non può essere gestito dallo stack software quantistico e solitamente fallirà.
- Alcune opzioni primitive aumentano le dimensioni del circuito. I limiti descritti vengono verificati dopo l' aumento previsto delle dimensioni del circuito. In particolare, queste opzioni aumentano le dimensioni del circuito:
- Il disaccoppiamento dinamico e il gate-folding ZNE introducono porte aggiuntive che sono incluse nelle istruzioni per il limite del numero massimo di istruzioni di basso livello per qubit.
- Il gate-folding ZNE introduce ulteriori porte a due-qubit rilevanti per il limite del numero massimo di porte a due-qubit per lavoro. Il numero di porte a due qubit viene moltiplicato per la somma dei fattori di rumore richiesti nel gate-folding ZNE.
- I limiti riportati dai campi
backend.configuration()max_shotsemax_experimentsnon sono più rilevanti o applicati. Questi campi saranno rimossi nel prossimo futuro. - Questi limiti si riferiscono al lavoro, non al Primitive Unified Bloc ( PUB ).
Esecuzioni massime
A causa delle dimensioni dell'output, per i processi Sampler sono consentite al massimo 10 milioni di esecuzioni. Il numero di esecuzioni è pari al numero di giri moltiplicato per il numero di tiri, dove i giri sono quelli generati dopo la trasmissione degli elementi dell' PUB.
Ad esempio, se si dispone di un PUB con un circuito e parametri con forma (4, 1), questo renderà 4 circuiti. Se hai richiesto 2.000 scatti, il numero totale di esecuzioni è .
Si noti che se si abilita il Pauli-twirling nel proprio lavoro Sampler, il numero totale di scatti si basa sui valori num_randomizations shots_per_randomization e. Per ulteriori TwirlingOptions dettagli, consultare.
Numero massimo di istruzioni di basso livello per qubit
Il servizio consente fino a 26.8 milioni di istruzioni del sistema di controllo per qubit. Ciò garantisce che i circuiti utente rientrino nella memoria delle istruzioni del sistema di controllo. L'esempio seguente mostra come transpilare un circuito e contare quante istruzioni ci sono per ciascuna.
La tabella seguente descrive come il sistema traduce le istruzioni dei circuiti dell'architettura del set di istruzioni (ISA) in istruzioni di controllo del sistema durante il calcolo di questo limite.
Istruzione | Conteggio |
|---|---|
rz | 1 |
delay | 1 |
sx | 2 |
x | 2 |
cx | 5 |
cz | 5 |
ecr | 5 |
measure | 10 |
reset | 17 |
init | 50 |
Questa tabella rappresenta l'euristica utilizzata per la convalida e non riflette il numero esatto di istruzioni utilizzate per implementare un'operazione.
Esempio
Definisci i circuiti, transpile e ottieni un conteggio di quanti gate verranno eseguiti.
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}")Per maggiori dettagli, consulta Transpile contro backend personalizzati.
Numero massimo di porte a uno e due qubit per circuito
Il numero massimo di porte a singolo qubit è il seguente:
- 30 milioni di cancelli RZ
- 20 milioni di cancelli SX
Il numero massimo di porte a due qubit per circuito è di cinque milioni. Ciò garantisce che il lavoro possa essere manipolato entro i limiti di memoria dello stack software di basso livello.