Informazioni sui dati dei risultati dello strumento di stima delle risorse

Informazioni su come interpretare e recuperare i parametri di output e i diagrammi dello strumento di stima delle risorse. Questo articolo illustra come accedere a livello di codice ai risultati di Resource Estimator in Jupyter Notebooks. Se si esegue Lo strumento di stima delle risorse in Visual Studio Code dal riquadro comandi, i comandi seguenti non si applicano.

Prerequisiti

Parametri di output

I dati di output di Resource Estimator sono un report stampato nella console e a cui è possibile accedere a livello di codice. Ad esempio, il frammento di codice seguente illustra come accedere ai parametri di stima delle risorse.

result['job_params']

I dati di output seguenti costituiscono le possibili voci a cui è possibile accedere a livello di codice.

Parametro di output di primo livello Tipo di dati Descrizione
status string Lo stato del processo, è sempre Succeeded.
job_params dictionary Parametri target del processo passati come input.
physical_counts dictionary Stime della risorsa fisica. Per altre informazioni, vedere Conteggi fisici.
physical_counts_formatted dictionary La risorsa fisica stima formattata per la visualizzazione nei dati del report. Per altre informazioni, vedere Conteggi fisici formattati.
logical_qubit dictionary Proprietà qubit logiche. Per altre informazioni, vedere Qubit logico.
tfactory dictionary Proprietà della factory T.
logical_counts dictionary Stime delle risorse logiche di pre-layout. Per altre informazioni, vedere Conteggi logici.
report_data dictionary Dati di generazione per il report di stima delle risorse.

Conteggi fisici

Il physical_counts dizionario contiene le voci seguenti:

Parametro di output Tipo di dati Descrizione
physical_qubits d'acquisto Numero totale di qubit fisici.
runtime d'acquisto Runtime totale per eseguire l'algoritmo in nanosecondi.
rqops d'acquisto Numero di operazioni quantistice affidabili al secondo (QOPS).
breakdown dictionary Suddivisione delle stime. Per altre informazioni, vedere Suddivisione dei conteggi fisici.

Suddivisione dei conteggi fisici

Il breakdown dizionario di physical_counts contiene le voci seguenti:

Parametro di output Tipo di dati Descrizione
algorithmic_logical_qubits d'acquisto I qubit logici necessari per l'esecuzione dell'algoritmo e non includono risorse per le factory T.
algorithmic_logical_depth d'acquisto I cicli logici necessari per l'esecuzione dell'algoritmo e non includono risorse per le factory T.
logical_depth d'acquisto Numero possibile di cicli calcolati ogni volta che il tempo di esecuzione della factory T è più veloce e quindi l'esecuzione dell'algoritmo.
num_tstates d'acquisto Numero di stati T utilizzati dall'algoritmo.
clock_frequency d'acquisto Numero di cicli logici al secondo.
num_tfactories d'acquisto Numero di factory T (presupponendo la progettazione uniforme della fabbrica T).
num_tfactory_runs d'acquisto Numero di volte in cui devono essere eseguite tutte le factory T parallele.
physical_qubits_for_tfactories d'acquisto Numero di qubit fisici per tutte le factory T.
physical_qubits_for_algorithm d'acquisto Numero di qubit fisici per il layout dell'algoritmo.
required_logical_qubit_error_rate d'acquisto Frequenza di errore logica richiesta.
required_logical_tstate_error_rate d'acquisto Frequenza di errore dello stato T logico richiesta.
num_ts_per_rotation d'acquisto Numero di cancelli T per rotazione.
clifford_error_rate d'acquisto Frequenza di errore Clifford basata sui parametri qubit.

Conteggi fisici formattati

Il physical_counts_formatted dizionario contiene le voci seguenti:

Parametro di output Tipo di dati Descrizione
runtime string Runtime totale come stringa descrittiva umana.
rqops string Numero di operazioni quantistice affidabili al secondo formattate con suffisso metrico.
physical_qubits string Numero totale di qubit fisici con suffisso metrica.
algorithmic_logical_qubits string Qubit logici algoritmici con suffisso metrico.
algorithmic_logical_depth string Profondità logica algoritmica con suffisso metrica.
logical_depth string Possibile regolazione della profondità logica algoritmica con suffisso della metrica.
num_tstates string Numero di stati T con suffisso metrica.
num_tfactories string Numero di copie della factory T con suffisso metrico.
num_tfactory_runs string Numero di esecuzioni della factory T con suffisso metrico.
physical_qubits_for_algorithm string Numero di qubit fisici per l'algoritmo con suffisso metrico.
physical_qubits_for_tfactories string Numero di qubit fisici per le factory T con suffisso metrico.
physical_qubits_for_tfactories_percentage string Numero di qubit fisici per tutte le factory T in percentuale al totale.
required_logical_qubit_error_rate string Frequenza di errore del qubit logico troncata.
required_logical_tstate_error_rate string Frequenza di errore dello stato T troncata.
physical_qubits_per_logical_qubit string Numero di qubit fisici per qubit logico con suffisso metrico.
logical_cycle_time string Tempo del ciclo logico di un qubit logico come stringa descrittiva umana.
clock_frequency string Numero di cicli logici al secondo come stringa descrittiva umana.
logical_error_rate string Frequenza degli errori logici troncati.
tfactory_physical_qubits string Numero di qubit fisici nella factory T con suffisso metrico (o messaggio che non è presente alcuna factory T).
tfactory_runtime string Runtime di una singola factory T come stringa descrittiva umana (o messaggio che non esiste alcuna factory T).
num_input_tstates string Numero di stati T di input (o messaggio che non è presente alcuna factory T).
num_units_per_round string Numero di unità per ciclo di copia, delimitato da virgole in una stringa (o messaggio che non esiste una factory T).
unit_name_per_round string I nomi di unità di ogni round di codifica, delimitati da virgole in una stringa (o messaggio che non esiste una factory T).
code_distance_per_round string Distanze di codice per ciclo di accoppiamenti, delimitate da virgole in una stringa (o messaggio che non esiste una factory T).
physical_qubits_per_round string Numero di qubit fisici per ciclo di topologia, delimitati da virgole in una stringa (o messaggio che non è presente alcuna factory T).
tfactory_runtime_per_round string Il runtime di ogni round di interazione, visualizzato come stringhe descrittive umane delimitate da virgole (o messaggio che non c'è alcuna factory T).
tstate_logical_error_rate string Frequenza di errore dello stato T logico troncato (o messaggio che non è presente alcuna factory T).
logical_counts_num_qubits string Numero di qubit (pre-layout) con suffisso metrica.
logical_counts_t_count string Numero di controlli T (pre-layout) con suffisso metrica.
logical_counts_rotation_count string Numero di cancelli di rotazione (pre-layout) con suffisso metrico.
logical_counts_rotation_depth string Profondità rotazione (pre-layout) con suffisso metrico.
logical_counts_ccz_count string Numero di gate CCZ (pre-layout) con suffisso metrico.
logical_counts_ccix_count string Numero di controlli CCiX (pre-layout) con suffisso metrico.
logical_counts_measurement_count string Numero di misurazioni a qubit singolo (pre-layout) con suffisso metrico.
error_budget string Budget totale degli errori troncato.
error_budget_logical string Budget degli errori troncato per l'errore logico.
error_budget_tstates string Budget degli errori troncato per la formattazione dello stato T difettoso.
error_budget_rotations string Budget degli errori troncato per la sintesi della rotazione difettosa.
num_ts_per_rotation string Numero formattato di T per rotazione (potrebbe essere Nessuno).

Qubit logico

Il logical_qubit dizionario contiene le voci seguenti:

Parametro di output Tipo di dati Descrizione
code_distance d'acquisto Distanza del codice calcolata per il qubit logico.
physical_qubits d'acquisto Numero di qubit fisici per ogni qubit logico.
logical_cycle_time d'acquisto Ora di esecuzione di un'operazione logica.
logical_error_rate d'acquisto Frequenza di errore logica del qubit logico.

Conteggi logici

Il logical_counts dizionario contiene le voci seguenti:

Parametro di output Tipo di dati Descrizione
num_qubits d'acquisto Numero di qubit pre-layout.
t_count d'acquisto Numero di controlli T pre-layout.
rotation_count d'acquisto Numero di cancelli di rotazione pre-layout.
rotation_depth d'acquisto Profondità di rotazione pre-layout.
ccz_count d'acquisto Numero pre-layout di cancelli CCZ.
ccix_count d'acquisto Numero di controlli CCiX pre-layout.
measurement_count d'acquisto Numero di pre-layout di misurazioni a qubit singolo.

Diagramma spaziale

La stima complessiva delle risorse fisiche è costituita dal numero totale di qubit fisici usati sia per l'algoritmo che per le copie della factory T. È possibile esaminare la distribuzione tra questi due usando il diagramma spaziale.

Il diagramma spaziale mostra la proporzione dei qubit fisici usati per l'algoritmo e le factory T. Si noti che il numero di copie della factory T contribuisce al numero di qubit fisici per le factory T.

In Jupyter Notebook è possibile accedere al diagramma spaziale usando il SpaceChart widget del qsharp-widgets pacchetto.

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

Diagramma a torta che mostra la distribuzione dei qubit fisici totali tra qubit dell'algoritmo e qubit di fabbrica T. Esiste una tabella con la suddivisione del numero di copie della factory T e il numero di qubit fisici per ogni factory T.

Quando si eseguono più configurazioni di target parametri con la stima delle frontiere Pareto, è possibile tracciare il diagramma spaziale per una soluzione specifica di . Ad esempio, il codice seguente illustra come tracciare il diagramma spaziale per la prima configurazione dei parametri e il terzo runtime più breve.

SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime

Diagramma dello spazio-tempo

Nel calcolo quantistico esiste un compromesso tra il numero di qubit fisici e il runtime dell'algoritmo. È possibile considerare l'allocazione del maggior numero possibile di qubit fisici per ridurre il runtime dell'algoritmo. Tuttavia, il numero di qubit fisici è limitato dal numero di qubit fisici disponibili nell'hardware quantistico. Comprendere il compromesso tra runtime e scalabilità di sistema è uno degli aspetti più importanti della stima delle risorse.

Quando si stimano le risorse di un algoritmo, è possibile usare il diagramma spazio-tempo per visualizzare i compromessi tra il numero di qubit fisici e il runtime dell'algoritmo.

Nota

Per visualizzare più combinazioni ottimali nel diagramma dello spazio-tempo, è necessario impostare il tipo di stima su Stima delle frontiere Pareto. Se si esegue Lo strumento di stima delle risorse in Visual Studio Code usando l'opzione Q#: Calculate Resource Estimates , la stima della frontiera Pareto è abilitata per impostazione predefinita.

Il diagramma dello spazio-tempo consente di trovare la combinazione ottimale di {numero di coppie qubit, runtime} che soddisfano i vincoli dell'hardware quantistico. Il diagramma mostra il numero di qubit fisici e il runtime dell'algoritmo per ogni coppia {numero di qubit, runtime}.

Per eseguire il diagramma dello spazio nel Jupyter Notebook, è possibile usare il EstimatesOverview widget del qsharp-widgets pacchetto.

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

Screenshot che mostra il diagramma qubit-time di Resource Estimator.

Suggerimento

Per visualizzare i dettagli della stima, è possibile passare il puntatore del mouse su ogni punto del diagramma.

Il diagramma dello spazio-tempo è particolarmente utile quando si confrontano più configurazioni di target parametri per lo stesso algoritmo.

Screenshot che mostra il diagramma dello spazio e la tabella dei risultati durante l'esecuzione di più configurazioni di parametro in Resource Estimator.

Nota

Se si verificano problemi durante l'utilizzo di Resource Estimator, consultare la pagina Risoluzione dei problemi o contattare AzureQuantumInfo@microsoft.com.

Passaggi successivi