Risolvere i problemi di Azure Quantum

Quando si usa il servizio Azure Quantum, è possibile che si verifichino questi problemi comuni. Scopri come risolverli.

Invio dei processi

Problema: mancante targets

Se il target percorso in cui si vuole eseguire il processo non è presente nell'elenco disponibile target , è probabile che sia necessario eseguire l'aggiornamento alla versione più recente di Quantum Development Kit per Visual Studio Code. Per altre informazioni, vedere Aggiornare QDK.

Problema: l'operazione restituisce un codice di stato non valido "Unauthorized"

Procedura per risolvere il problema:

  1. Aprire il portale di Azure (https://portal.azure.com) e autenticare l'account.

  2. In Esplora selezionare Sottoscrizioni e selezionare la sottoscrizione.

  3. Selezionare Controllo di accesso (IAM) .

  4. In Verifica l'accesso cercare l'indirizzo di posta elettronica e selezionare l'account.

  5. Non dovrebbe essere visualizzato un ruolo Proprietario o Collaboratore elencato.

  6. Selezionare la scheda Assegnazioni di ruolo.

    Nota

    Se la scheda Assegnazioni di ruolo non è visualizzata, potrebbe essere necessario passare alla modalità schermo intero o chiudere il riquadro <nome> assegnazioni.

  7. Selezionare l'elenco a discesa Ruolo , selezionare Proprietario o Collaboratore, quindi immettere l'indirizzo di posta elettronica e selezionare l'account.

  8. Selezionare Salva.

  9. Verrà ora visualizzato il set di account configurato con il ruolo Proprietario o Collaboratore.

  10. Creare di nuovo l'area di lavoro di Azure Quantum e quindi inviare un processo a questa nuova area di lavoro.

Problema: "Failed to compile program" quando si prova a inviare un programma Q# tramite l'interfaccia della riga di comando

Quando si prova a inviare un processo al prompt dei comandi usando il comando az quantum submit, è possibile che venga visualizzato il messaggio di errore seguente:

az quantum job submit ...
Failed to compile program.
Command ran in 21.181 seconds (init: 0.457, invoke: 20.724)

Questo errore si verifica quando si verifica un problema con il programma Q# che causa l'esito negativo della compilazione.

Problema: errore del compilatore "Numero errato di parametri di controllo"

Quando si invia un processo a Quantinuum da un ambiente locale Jupyter Notebook o da riga di comando e si usa il traduttore QASM legacy (OPENQASM 2.0), è possibile che si verifichi questo errore:

Job ID <jobId> failed or was cancelled with the message: 1000: Compile error: [<file, line>] Wrong number of gate parameters

Questo errore si verifica quando una virgola "," o un altro carattere non punto viene usato come separatore decimale, come è comune in molte lingue. Sostituire qualsiasi separatore decimale non punto con punti "."..

// replace this line:
rx(1,5707963267948966) q[0];

// with this:
rx(1.5707963267948966) q[0];

Nota

Questo problema non si verifica nei notebook ospitati nel portale di Azure Quantum, solo in ambienti di sviluppo locali.

Problema: errore del compilatore "non disponibile per la configurazione di compilazione corrente"

Quando si esegue una cella di codice Q# in una Jupyter Notebook in VS Code, è possibile che venga visualizzato l'errore:

<function name> not found. Found a matching item `<function name>' that is not available for the current compilation configuration

Questo errore indica che il profilo QIR target è impostato su Basic e la funzione in questione richiede il profilo Senza restrizionitarget . Per impostare il target profilo su Senza restrizioni:

  1. Durante il programma Q# in VS Code, selezionare Q#: QIR base sulla barra di stato inferiore.
  2. Nelle opzioni visualizzate nella barra di stato superiore selezionare Q#: senza restrizioni.

Problema: l'operazione ha restituito un codice di stato non valido "Forbidden"

Quando si invia il primo processo, è possibile che venga visualizzato un codice di errore "non consentito".

Questo problema può avere origine durante la creazione dell'area di lavoro: Azure Quantum non riesce a completare l'assegnazione di ruolo collegando la nuova area di lavoro all'account di archiviazione specificato. Uno scenario tipico per questa situazione si verifica se la scheda o la finestra del browser Web viene chiusa prima che la creazione dell'area di lavoro venga completata.

Per verificare che si stia verificando questo problema di assegnazione di ruolo, seguire questa procedura:

  • Passare all'area di lavoro di Quantum nel portale di Azure
  • In Panoramica>Essentials>Account di archiviazione selezionare il collegamento all'account di archiviazione
  • Nella barra di spostamento a sinistra selezionare Controllo di accesso (IAM)
  • Selezionare le Assegnazioni di ruolo
  • Verificare che l'area di lavoro sia visualizzata come Collaboratore
  • Se l'area di lavoro non viene visualizzata come Collaboratore , è possibile:
    • Creare una nuova area di lavoro e assicurarsi di attendere il completamento della creazione dell'area di lavoro prima di chiudere la scheda o la finestra del browser Web.
    • Aggiungere l'assegnazione di ruolo corretta nell'account di archiviazione
      • Controllo di accesso (IAM) > Aggiungi assegnazioni di ruolo
      • Ruolo > Collaboratore
      • Assegnare l'accesso a > Utente, gruppo o entità servizio
      • Selezionare > [nome dell'area di lavoro]
      • Salva

Problema: il processo ha esito negativo con codice di errore: QIRPreProcessingFailed

Quando si invia un processo a un provider Rigetti, il processo ha esito negativo e viene segnalato nella console di gestione dei processi nel portale di Azure:

Error code: QIRPreProcessingFailed
Error message: No match found for output recording set converter from outputrecordingset.v2.labeled to outputrecordingset.v1.nonlabeled

Questo errore può essere causato da un conflitto di dipendenza con una versione precedente di pyqir o qiskit-qir. Disinstallare tutte le versioni di pyqir, pyqir-*e qiskit-qir nel computer locale e quindi installare o aggiornare il pacchetto Python azure-quantum usando il parametro [qiskit]:

pip install --upgrade azure-quantum[qiskit]

Problema: Recupero di informazioni di base sui processi non riusciti

Dopo aver inviato un processo a un hardware target, il processo può restare in coda per diverse ore o anche uno o due giorni prima di non riuscire.

Per recuperare altre informazioni sull'errore:

  • Utilizzare il get_results() metodo con l'oggetto processo per visualizzare l'output o il messaggio di errore restituito:
job.get_results()
  • Nell'area di lavoro del portale di Azure selezionare Operations > Job Management e quindi selezionare il nome del processo per aprire un riquadro dei dettagli.
  • Nell'area di lavoro del portale di Azure selezionare Provider di operazioni>. Verificare la disponibilità del target computer. I processi inviati a targets con stato Danneggiato possono rimanere nella coda più a lungo del solito. A volte i processi vengono elaborati, ma a volte si verifica il timeout e restituiscono un errore di target non disponibile.

Problema: viene chiesto di eseguire l'autenticazione quando ci si connette a livello di codice all'area di lavoro

Se si usa Azure Quantum Python SDK (all'interno di jupyter notebook, ad esempio) e ci si connette all'area di lavoro usando la classe AzureQuantumProvider, è possibile che si verifichi un popup per l'autenticazione in Azure ogni volta che si esegue lo script.

Ciò si verifica perché il token di sicurezza viene reimpostato ogni volta che si esegue lo script.

È possibile risolvere questo problema eseguendo az login l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere az login.

Problema: dopo l'aggiornamento del pacchetto azure-quantum, viene visualizzato l'errore "ModuleNotFoundError: Nessun modulo denominato qiskit.tools" durante il monitoraggio di un processo

A partire da Qiskit 1.0, il qiskit.tools modulo, necessario per la job_monitor() funzione, è stato deprecato. Per monitorare i processi, usare le wait_for_final_state() funzioni o result .

job = MyTarget.run(circuit, shots=100)

# to wait until the job is complete
job.wait_for_final_state() 

# to return the results of the job
result = job.result()

Strumento di stima delle risorse di Azure Quantum

Gli scenari comuni seguenti possono impedire il completamento dei processi di stima delle risorse. Vedere come risolverli.

Problema: l'algoritmo quantistico deve contenere almeno uno stato T o una misura

Per tenere conto del mapping di un programma quantistico arbitrario a una matrice 2D di qubit logici, lo strumento di stima delle risorse presuppone che il calcolo pauli sequenziale di sintesi parallela (PSSPC) ( vedere arXiv:2211.07629, Appendice D) venga eseguito nel programma di input. In questo approccio, tutte le operazioni Clifford vengono commutate attraverso tutte le porte T, i cancelli di rotazione e le operazioni di misurazione, lasciando un'unica operazione Clifford che può essere valutata in modo efficiente in modo classico. Pertanto, un programma quantistico che non contiene né stati T, ad esempio da gate T o gate di rotazione, né le operazioni di misurazione non richiedono alcuna risorsa di calcolo quantistico fisico.

Error message: Algorithm requires at least one T state or measurement to estimate resources

Problema: la frequenza degli errori di controllo T fisico è troppo elevata

La frequenza di errore dello stato T logico dipende dal budget degli errori e dal numero di stati T nel programma quantistico. Le T factory vengono usate per creare stati T con la frequenza di errore dello stato T logico richiesta dai cancelli T fisici, che hanno una frequenza di errore di controllo T fisica. In genere, la frequenza di errore di controllo T fisico è molto superiore alla frequenza di errore di controllo T logico richiesta. In alcuni scenari, la frequenza di errore di controllo T fisico è molto più elevata rispetto alla frequenza di errore dello stato T logico richiesta, in modo che nessuna factory T possa essere trovata che può produrre stati T logici di qualità sufficiente.

Error message: No T factory can be found, because the required logical T state error rate is too low

Ecco le operazioni che è possibile eseguire in uno scenario di questo tipo:

  • Aumentare il budget degli errori, totale o parte per gli stati T.
  • Ridurre la frequenza di errore del controllo T fisico nei parametri qubit.
  • Ridurre il numero di stati T nel programma quantistico riducendo i cancelli T, i cancelli di rotazione e i cancelli Toffoli.

Problema: la frequenza degli errori di controllo T fisico è troppo bassa

Esiste anche lo scenario opposto, in cui la frequenza di errore del gate T fisico è inferiore alla frequenza di errore dello stato T logico richiesta. In questi casi, non è necessaria alcuna factory T, perché la frequenza di errore del gate T fisico è già di qualità sufficiente. Tuttavia, questo richiede un'attenta considerazione dell'impatto delle unità di trasferimento che trasferisce gli stati T fisici dalla distanza di codice 1 alla distanza di codice dell'algoritmo (vedere arXiv:2211.07629, Appendice C). In generale, in presenza di stabilimenti T, il costo delle unità di trasferimento è trascurabile.

Error message: No T factory can be found, because the required logical T state error rate is too high; transfer units are necessary to perform a resource estimation accurately. One possibility to circumvent this problem is to increase the physical T gate error rate of the qubit parameters.

Ecco le operazioni che è possibile eseguire in uno scenario di questo tipo:

  • Aumentare la frequenza di errore del gate T fisico nei parametri qubit alla frequenza di errore dello stato T logico necessaria.
  • Ridurre il budget degli errori o solo la parte per gli stati T.

Problema: la frequenza di errore deve essere un numero compreso tra 0 e 1

I tassi di errore devono sempre essere valori compresi tra 0 e 1. Inoltre, affinché la correzione degli errori sia efficace, la frequenza di errore fisica per i cancelli e le misurazioni deve essere inferiore a un valore che dipende dalle proprietà del codice di correzione degli errori e dalla frequenza di errore logica richiesta.

Ecco cosa è possibile eseguire in questo scenario:

  • Aumentare il budget degli errori, totale o la parte per gli errori logici.
  • Ridurre i tassi di errore fisici nei parametri qubit.

Problema: il runtime massimo dei vincoli e il numero massimo di qubit fisici si escludono a vicenda

Resource Estimator accetta solo uno dei vincoli [maxDuration]O(xref:qsharp.estimator.EstimatorConstraints) al maxPhysicalQubits momento ma non due. Se specificare entrambi maxDuration i maxPhysicalQubitsvincoli per un singolo processo, restituisce l'errore BothDurationAndPhysicalQubitsProvided .

Creazione di un'area di lavoro di Azure Quantum

I problemi seguenti possono verificarsi quando si usa il portale di Azure per creare un'area di lavoro.

Problema: non è possibile accedere al modulo di creazione dell'area di lavoro nel portale di Azure; viene invece richiesto di iscriversi per una sottoscrizione

Questo problema si verifica perché non si ha una sottoscrizione attiva.

Ad esempio, potrebbe essere stato effettuato l'iscrizione per la sottoscrizione gratuita di 30 giorni di Azure, che include $200 (USD) crediti di Azure gratuiti da usare nei servizi di Azure. Si noti che questi crediti di Azure non sono uguali a Crediti Quantistici di Azure e non sono idonei per l'uso nei provider hardware quantistici. Dopo 30 giorni di iscrizione o dopo aver usato i crediti di Azure gratuiti di 200 dollari (che si verificano prima), è necessario eseguire l'aggiornamento a una sottoscrizione con pagamento in base al consumo per continuare a usare i servizi Azure Quantum. Dopo avere una sottoscrizione attiva, la portale di Azure consentirà di accedere al modulo di creazione dell'area di lavoro.

Per visualizzare un elenco delle sottoscrizioni e dei ruoli associati, vedere Controllare le sottoscrizioni.

Problema: l'opzione Di creazione rapida non è disponibile

È necessario essere un proprietario della sottoscrizione selezionata per usare l'opzione Creazione rapida . Per visualizzare un elenco delle sottoscrizioni e dei ruoli associati, vedere Controllare le sottoscrizioni. Se si è un collaboratore della sottoscrizione, è possibile usare l'opzione Creazione avanzata per creare un'area di lavoro.

Problema: non è possibile creare o selezionare un gruppo di risorse o un account di archiviazione

Questo problema si verifica perché non è necessaria l'autorizzazione a livello di sottoscrizione, gruppo di risorse o account di archiviazione. Per altre informazioni sui livelli di accesso necessari, vedere Requisiti del ruolo per la creazione di un'area di lavoro.

Problema: messaggio di errore "Convalida della distribuzione non riuscita" viene visualizzato dopo aver selezionato Crea

Questo messaggio di errore può includere altri dettagli, ad esempio "Il client non dispone dell'autorizzazione per eseguire l'azione".

Questo problema si verifica perché non è necessaria l'autorizzazione a livello di sottoscrizione, gruppo di risorse o account di archiviazione. Per altre informazioni sui livelli di accesso necessari, vedere Requisiti del ruolo per la creazione di un'area di lavoro.

Se l'accesso è stato concesso di recente, potrebbe essere necessario aggiornare la pagina. A volte può richiedere fino a un'ora per le nuove assegnazioni di ruolo per avere effetto sulle autorizzazioni memorizzate nella cache nello stack.

Problema: non viene visualizzato un provider hardware quantistico specifico nella scheda Provider

Questo problema si verifica perché il provider non supporta l'area di fatturazione in cui è impostata la sottoscrizione. Ad esempio, se la sottoscrizione è impostata in Israele, la scheda Provider non elenca Rigetti come provider disponibile. Per un elenco di provider e disponibilità per paese/area geografica, vedere Disponibilità globale dei provider Azure Quantum.

Problema: la creazione o l'aggiunta o la rimozione di provider non riesce con "ResourceDeploymentFailure" o "ProviderDeploymentFailure"

Questo problema può includere altri dettagli, ad esempio "ResourceDeploymentFailure - L'operazione di risorsa 'AzureAsyncOperationWaiting' completata con lo stato di provisioning del terminale 'Failed', o "ProviderDeploymentFailure - Impossibile creare il piano per il provider: <nome del provider>".

Ciò si verifica perché il tenant non ha abilitato Azure Marketplace acquisti. Seguire la procedura descritta in Abilitazione degli acquisti Azure Marketplace per abilitare gli acquisti Azure Marketplace.

Portale di Azure Quantum

Problema: i notebook salvati non vengono caricati

Dopo aver selezionato Notebook nell'area di lavoro, l'elenco dei notebook salvati visualizza una barra di stato ma non viene mai caricata.

Ciò può verificarsi per due motivi:

  1. Se l'account di archiviazione non esiste più. Ciò può verificarsi se l'account di archiviazione collegato all'area di lavoro è stato eliminato. Per verificare, selezionare la pagina Panoramica per l'area di lavoro e selezionare il collegamento all'account di archiviazione. Se l'account di archiviazione è stato eliminato, verrà visualizzato un errore 404 - Non trovato .

  2. Se l'identità gestita dell'area di lavoro non è un collaboratore all'account di archiviazione. Verificare che l'identità dell'area di lavoro (che usa lo stesso nome dell'area di lavoro) abbia ancora l'assegnazione di ruolo Collaboratore all'account di archiviazione. Per verificare, selezionare la pagina Panoramica per l'area di lavoro e selezionare il collegamento all'account di archiviazione. Nella pagina Panoramica dell'account di archiviazione selezionare Controllo di accesso (IAM) e verificare che l'area di lavoro sia elencata in Collaboratore.