Risoluzione dei problemi comuni in Azure Quantum

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

Connessione all'area di lavoro

Problema: non è possibile eseguire l'autenticazione in Azure Quantum tramite pytket-azure CI

Quando si tenta di eseguire l'autenticazione in Azure Quantum tramite il pytket-azure pacchetto in un ambiente CI usando le variabili di ambiente "AZURE_TENANT_ID", "AZURE_CLIENT_ID" e "AZURE_CLIENT_SECRET", è possibile che venga visualizzato l'errore:

Code: InsufficientPermissions
Message: There are not enough permissions to perform this operation.

Per risolvere questo problema, provare a eseguire l'autenticazione usando un stringa di connessione e la variabile di ambiente "AZURE_QUANTUM_CONNECTION_STRING". Per altre informazioni, vedere Connettersi con un stringa di connessione.

connection_string = "[Copy connection string]" 

import os 

os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string 

Invio dei processi

Problema: Mancante targets

Se l'oggetto target 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. Seleziona 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. Seleziona 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: "AuthorizationFailure - Questa richiesta non è autorizzata a eseguire questa operazione"

Se un invio di processo non riesce con questo messaggio anche se si dispone di una connessione valida al servizio Azure Quantum, l'account di archiviazione potrebbe essere configurato per bloccare l'accesso alla rete pubblica. Il servizio Azure Quantum supporta solo gli account di archiviazione tramite accesso a Internet pubblico.

Per controllare l'account di archiviazione:

  • Nella pagina dell'area di lavoro quantistica nel portale di Azure selezionare Panoramica e selezionare l'account di archiviazione.
  • Nella pagina Account di archiviazione, in Sicurezza e rete selezionare Rete.
  • Nella scheda Firewall e reti virtuali in Accesso alla rete pubblica verificare che l'opzione Abilita tutte le reti sia selezionata.

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 gate"

Quando si invia un processo a Quantinuum da un notebook jupyter locale o da un ambiente da riga di comando e usando il traduttore QASM legacy (OPENQASM 2.0), è possibile che venga visualizzato 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 negli 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 un notebook jupyter 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. Dalle 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.

È possibile verificare di essere in esecuzione in questo problema di assegnazione di ruolo seguendo questa procedura:

  • Passare all'area di lavoro di Quantum nel portale di Azure
  • In Panoramica>Account di archiviazione di informazioni>di base selezionare il collegamento 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 appropriata 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 Di 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 notebook jupyter) 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 misurazione

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 sul piano di input. In tale approccio, tutte le operazioni Clifford vengono commutate attraverso tutte le porte T, i cancelli di rotazione e le operazioni di misurazione, lasciando una singola 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 cancelli T o cancelli di rotazione, né le operazioni di misurazione non richiedono risorse di calcolo quantistico fisico.

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

Problema: la frequenza di errore del gate 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 factory T vengono usate per creare stati T con la frequenza di errore di stato T logica richiesta dai cancelli T fisici, che hanno una frequenza di errore di controllo T fisico . In genere, la frequenza degli errori di controllo T fisico è molto superiore alla frequenza di errore di gate T logica richiesta. In alcuni scenari, la frequenza degli errori di controllo T fisico è molto più elevata rispetto alla frequenza di errore dello stato T logico richiesto, in modo che non sia possibile trovare alcuna factory T 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

Di seguito sono riportate le operazioni che è possibile eseguire in uno scenario di questo tipo:

  • Aumentare il budget degli errori, totale o la parte per gli stati T.
  • Ridurre la frequenza di errore del gate 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 di errore del gate T fisico è troppo bassa

C'è anche lo scenario opposto, in cui la frequenza di errore del gate T fisico è inferiore alla frequenza di errore dello stato T logico richiesto. In questi casi, non è necessaria alcuna factory T, perché la frequenza di errore del gate T fisico è già di qualità sufficiente. Tuttavia, ciò 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 fabbriche 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.

Di seguito sono riportate 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 richiesta.
  • 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

Le percentuali di errore devono essere sempre valori compresi tra 0 e 1. Inoltre, per rendere effettiva la correzione degli errori, la frequenza di errore fisica per cancelli e misurazioni deve essere inferiore a un valore che dipende dalle proprietà del codice di correzione degli errori e dalla frequenza di errore logica richiesta.

Di seguito sono riportate le operazioni che è possibile eseguire in uno scenario di questo tipo:

  • Aumentare il budget degli errori, totale o la parte per gli errori logici.
  • Ridurre le percentuali di errore fisiche nei parametri qubit.

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

Lo strumento di stima delle risorse accetta solo uno dei maxDuration vincoli o maxPhysicalQubits al momento, ma non due. Se si specificano entrambi maxDuration i vincoli e maxPhysicalQubitsper un singolo processo, viene restituito l'errore BothDurationAndPhysicalQubitsProvided .

Problema: Eseguire la stima qir del contenitore conteggio: simbolo non definito __quantum__rt__result_record_output

Questo errore comporta la generazione di circuiti QIR per Qiskit tramite il pacchetto Python qiskit_qir senza impostare il record_output parametro su False.

Per evitare questo errore, eseguire una delle operazioni seguenti:

  • Usare il pacchetto Python azure_quantum per inviare circuiti Qiskit ad Azure Quantum (scelta consigliata).
  • Quando si usa il pacchetto Python qiskit_qir , assicurarsi di impostare il record_output parametro su False prima di inviare il circuito.

Creazione di un'area di lavoro di Azure Quantum

Quando si usa il portale di Azure per creare un'area di lavoro, possono verificarsi i problemi seguenti.

Problema: non è possibile accedere al modulo di creazione dell'area di lavoro nel portale di Azure. Viene invece chiesto di iscriversi per una sottoscrizione

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

Ad esempio, è possibile aver effettuato l'iscrizione per la sottoscrizione di Azure di valutazione gratuita di 30 giorni, che include crediti Azure gratuiti USD200 da usare nei servizi di Azure. Si noti che questi crediti Azure non sono uguali ai crediti Azure Quantum e non sono idonei per l'uso nei provider hardware quantistici. Dopo 30 giorni di iscrizione o dopo aver utilizzato i 200 dollari di crediti Azure gratuiti (a qualsiasi condizione che si verifica per primo), è necessario eseguire l'aggiornamento a una sottoscrizione con pagamento in base al consumo per continuare a usare i servizi di Azure Quantum. Dopo aver creato una sottoscrizione attiva, il 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 Creazione rapida non è disponibile

Per usare l'opzione Creazione rapida, è necessario essere proprietario della sottoscrizione selezionata. Per visualizzare un elenco delle sottoscrizioni e dei ruoli associati, vedere Controllare le sottoscrizioni. Se si è un collaboratore alla 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 si dispone dell'autorizzazione necessaria a livello di sottoscrizione, gruppo di risorse o account di archiviazione. Per altre informazioni sui livelli di accesso necessari, vedere Requisiti dei ruoli per la creazione di un'area di lavoro.

Problema: messaggio di errore "Convalida della distribuzione non riuscita" 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 si dispone dell'autorizzazione necessaria a livello di sottoscrizione, gruppo di risorse o account di archiviazione. Per altre informazioni sui livelli di accesso necessari, vedere Requisiti dei ruoli per la creazione di un'area di lavoro.

Se l'accesso è stato concesso di recente, potrebbe essere necessario aggiornare la pagina. A volte possono essere necessarie fino a un'ora per rendere effettive le nuove assegnazioni di ruolo rispetto alle 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 dei provider e della relativa disponibilità per paese/area geografica, vedere Disponibilità globale dei provider di Azure Quantum.

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

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

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

Problema: la distribuzione di un'area di lavoro quantistica o la distribuzione di un account di archiviazione ha esito negativo con uno degli errori seguenti:

  • Area di lavoro: "L'operazione di scrittura delle risorse non è stata completata correttamente, perché ha raggiunto lo stato di provisioning del terminale 'Failed'".
  • Account di archiviazione: "La distribuzione del modello non è riuscita a causa di una violazione dei criteri".

Questo problema può verificarsi se i criteri di sicurezza della sottoscrizione bloccano la creazione di account di archiviazione con accesso pubblico abilitato. Il servizio Azure Quantum supporta solo gli account di archiviazione tramite accesso a Internet pubblico.

Per risolvere questo problema, rivolgersi all'amministratore della sottoscrizione per ottenere un'eccezione per l'account di archiviazione che si vuole usare.

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 un indicatore di stato ma non viene mai caricato.

Ciò può verificarsi per tre 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'account di archiviazione non è abilitato per l'accesso a Internet pubblico. Per altre informazioni, vedere Errore di autorizzazione.

  3. 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) disponga ancora dell'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.