Share via


Felsöka Azure Quantum

När du arbetar med Azure Quantum-tjänsten kan du stöta på dessa vanliga problem. Se hur du kan lösa dem.

Skicka jobb

Problem: Saknas targets

Om den target plats där du vill köra jobbet saknas i den tillgängliga target listan behöver du förmodligen uppdatera till den senaste versionen av Quantum Development Kit för Visual Studio Code. Mer information finns i Uppdatera QDK.

Problem: Åtgärden returnerar en ogiltig statuskod "Obehörig"

Steg för att lösa problemet:

  1. Öppna din Azure Portal (https://portal.azure.com) och autentisera ditt konto.

  2. Under Navigera väljer du Prenumerationer och väljer din prenumeration.

  3. Välj Åtkomstkontroll (IAM) .

  4. Under Kontrollera åtkomst söker du efter din e-postadress och väljer kontot.

  5. Du bör inte se rollen Ägare eller Deltagare .

  6. Välj fliken Rolltilldelningar .

    Anteckning

    Om du inte ser fliken Rolltilldelningar kan du behöva expandera portalen till helskärmsläge eller stänga <fönstret för namntilldelningar>.

  7. Välj listrutan Roll , välj antingen Ägare eller Deltagare, ange din e-postadress och välj ditt konto.

  8. Välj Spara.

  9. Nu bör du se att din kontouppsättning har konfigurerats med rollen Ägare eller Deltagare .

  10. Skapa din Azure Quantum-arbetsyta igen och skicka sedan ett jobb mot den nya arbetsytan.

Problem: "Det gick inte att kompilera programmet" när ett Q#-program skulle skickas via CLI

När du försöker skicka ett jobb i kommandotolken med kommandot az quantum submit kan följande felmeddelande visas:

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

Det här felet uppstår när det finns ett problem med Q#-programmet som gör att kompilering misslyckas.

Problem: Kompilatorfelet "Fel antal grindparametrar"

När du skickar ett jobb till Quantinuum från en lokal Jupyter Notebook- eller kommandoradsmiljö och använder den äldre QASM-översättaren (OPENQASM 2.0) kan det här felet uppstå:

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

Det här felet uppstår när ett kommatecken "" eller ett annat tecken som inte är punkt används som decimaltecken, vilket är vanligt på många språk. Ersätt alla decimalavgränsare som inte är periodiska med perioderna ".".

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

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

Anteckning

Det här problemet uppstår inte i värdbaserade notebook-filer i Azure Quantum-portalen, endast i lokala utvecklingsmiljöer.

Problem: Kompilatorfelet "inte tillgängligt för den aktuella kompileringskonfigurationen"

När du kör en Q#-kodcell i en Jupyter Notebook i VS Code kan du stöta på felet:

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

Det här felet anger att QIR-profilen target är inställd på Basic och att funktionen i fråga kräver den obegränsadetarget profilen. Så här ställer du in profilen på targetObegränsad:

  1. I ditt Q#-program i VS Code väljer du Q#: QIR baserat på det nedre statusfältet.
  2. Från de alternativ som visas i det övre statusfältet väljer du Q#: obegränsad.

Problem: Åtgärden returnerade en ogiltig statuskod "Förbjuden"

När du skickar ditt första jobb kan du få en "förbjuden" felkod.

Det här problemet kan uppstå när arbetsytan skapas: Azure Quantum kan inte slutföra rolltilldelningen som länkar den nya arbetsytan till det angivna lagringskontot. Ett typiskt scenario för den här situationen inträffar om fliken eller webbläsarens fönster stängs innan arbetsytan har skapats.

Du kan kontrollera att du stöter på det här rolltilldelningsproblemet genom att följa dessa steg:

  • Gå till din nya kvantarbetsyta i Azure-portalen
  • Under Översikt>Essentials>Lagringskonto väljer du på länken för lagringskontot
  • I det vänstra navigeringsfältet väljer du Access Control (IAM)
  • Välj Rolltilldelningar
  • Kontrollera att arbetsytan visas som deltagare
  • Om arbetsytan inte visas som deltagare kan du antingen:
    • Skapa en ny arbetsyta och vänta tills arbetsytan har skapats innan du stänger webbläsarfliken eller fönstret.
    • Lägg till rätt rolltilldelning under lagringskontot
      • Access Control (IAM) > Lägga till rolltilldelningar
      • Rolldeltagare >
      • Tilldela åtkomst till > användaren, gruppen eller tjänstens huvudnamn
      • Välj > [Namn på arbetsyta]
      • Spara

Problem: Jobbet misslyckas med felkoden QIRPreProcessingFailed

När du skickar ett jobb till en Rigetti-provider misslyckas jobbet och rapporteras i jobbhanteringskonsolen i Azure Portal:

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

Det här felet kan orsakas av en beroendekonflikt med en tidigare version av pyqir eller qiskit-qir. Avinstallera alla versioner av pyqir, pyqir-*och qiskit-qir på den lokala datorn och installera eller uppdatera sedan Python-paketet azure-quantum med hjälp av parametern [qiskit]:

pip install --upgrade azure-quantum[qiskit]

Problem: Hämta grundläggande information om misslyckade jobb

När du har skickat ett jobb till en maskinvara targetkan jobbet sitta i kön i flera timmar, eller till och med en eller två dagar, innan det misslyckas.

Så här hämtar du mer information om felet:

  • get_results() Använd metoden med jobbobjektet för att visa utdata eller det returnerade felmeddelandet:
job.get_results()
  • I azure-portalens arbetsyta väljer du Åtgärdsjobbhantering >och sedan jobbets namn för att öppna ett informationsfönster.
  • Selecd Operations > Providers på azure-portalens arbetsyta. Kontrollera att datorn är target tillgänglig. Jobb som skickas till targets med statusen Degraderad kan stanna i kön längre än vanligt. Ibland bearbetas jobben, men ibland överskrider de tidsgränsen och returnerar ett fel om atttarget de inte är tillgängliga.

Problem: Jag uppmanas att autentisera när jag ansluter programmatiskt till min arbetsyta

Om du använder Azure Quantum Python SDK (till exempel i Jupyter Notebooks) och ansluter till din arbetsyta med klassen AzureQuantumProvider kan du uppleva ett popup-fönster för att autentisera till Azure varje gång du kör skriptet.

Detta beror på att din säkerhetstoken återställs varje gång du kör skriptet.

Du kan lösa det här problemet genom att köra az login med hjälp av Azure CLI. Mer information finns i az login.

Problem: När jag har uppdaterat azure-quantum-paketet får jag felet "ModuleNotFoundError: Ingen modul med namnet qiskit.tools" när jag övervakar ett jobb

Från och med Qiskit 1.0 har modulen qiskit.tools , som krävs för job_monitor() funktionen, blivit inaktuell. Om du vill övervaka jobb använder wait_for_final_state() du funktionerna eller 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()

Azure Quantum Resource Estimator

Följande vanliga scenarier kan förhindra att jobb för resursuppskattning slutförs. Se hur du löser dem.

Problem: Kvantalgoritmen måste innehålla minst ett T-tillstånd eller en mätning

För att ta hänsyn till mappningen av ett godtyckligt kvantprogram till en 2D-matris med logiska kvantbitar förutsätter Resursberäknaren att Parallell syntes sekventiell Pauli-beräkning (PSSPC) ( se arXiv:2211.07629, bilaga D) utförs i indataprogrammet. I den metoden omvandlas alla Clifford-operationer genom alla T-grindar, rotationsportar och mätningsåtgärder, vilket lämnar en enda Clifford-operation som effektivt kan utvärderas klassiskt. Därför kräver inte ett kvantprogram som varken innehåller T-tillstånd, till exempel från T-grindar eller rotationsgrindar, eller mätningsåtgärder några fysiska kvantberäkningsresurser.

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

Problem: Felfrekvensen för fysisk T-grind är för hög

Felfrekvensen för det logiska T-tillståndet beror på felbudgeten och antalet T-tillstånd i kvantprogrammet. T-fabriker används för att skapa T-tillstånd med nödvändig logisk T-tillståndsfelfrekvens från fysiska T-portar, som har en fysisk T-grindfelfrekvens. Normalt är felfrekvensen för fysisk T-grind mycket högre än den nödvändiga logiska T-grindfelfrekvensen. I vissa scenarier är den fysiska T-grindfelfrekvensen så mycket högre jämfört med den nödvändiga felfrekvensen för logiskt T-tillstånd, så att ingen T-fabrik kan hittas som kan ge logiska T-tillstånd av tillräcklig kvalitet.

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

Det här är vad du kan göra i ett sådant scenario:

  • Öka felbudgeten, antingen total eller delen för T-tillstånd.
  • Minska den fysiska T-grindfelfrekvensen i kvantbitsparametrarna.
  • Minska antalet T-tillstånd i kvantprogrammet genom att minska T-grindar, rotationsportar och Toffoli-portar.

Problem: Felfrekvensen för fysisk T-grind är för låg

Det finns också det motsatta scenariot, där den fysiska T-grindfelfrekvensen är lägre än den nödvändiga felfrekvensen för logiskt T-tillstånd. I sådana fall krävs ingen T-fabrik, eftersom den fysiska T-grindfelfrekvensen redan är av tillräcklig kvalitet. Detta kräver dock en noggrann bedömning av effekten av överföringsenheter som överför de fysiska T-tillstånden från kodavstånd 1 till kodavståndet för algoritmen (se arXiv:2211.07629, bilaga C). I allmänhet är kostnaden för överföringsenheter försumbar i närvaro av T-fabriker.

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.

Det här är vad du kan göra i ett sådant scenario:

  • Öka den fysiska felfrekvensen för T-grinden i kvantbitsparametrarna till den nödvändiga felfrekvensen för logiskt T-tillstånd.
  • Minska felbudgeten eller bara delen för T-tillstånden.

Problem: Felfrekvensen måste vara ett tal mellan 0 och 1

Felfrekvenser bör alltid vara värden mellan 0 och 1. För att felkorrigeringen ska vara effektiv måste dessutom den fysiska felfrekvensen för portar och mått ligga under ett värde som är beroende av egenskaperna för felkorrigeringskoden och den nödvändiga logiska felfrekvensen.

Det här är vad du kan göra i ett sådant scenario:

  • Öka felbudgeten, antingen summan eller delen för logiska fel.
  • Minska antalet fysiska fel i kvantbitsparametrarna.

Problem: Begränsningar för maximal körning och maximalt antal fysiska kvantbitar utesluter varandra

Resursberäknaren accepterar bara ett av maxDuration eller maxPhysicalQubits -begränsningar vid den tidpunkten, men inte två. Om du anger både maxDuration och maxPhysicalQubitsbegränsningar för ett enda jobb returneras felet BothDurationAndPhysicalQubitsProvided .

Problem: Kör containern för beräkningsantal för QIR: odefinierad symbol __quantum__rt__result_record_output

Det här felet beror på att QIR genereras för Qiskit-kretsar via qiskit_qir Python-paketet utan att parametern record_output anges till False.

Undvik det här felet genom att göra något av följande:

  • Använd azure_quantum Python-paketet för att skicka Qiskit-kretsar till Azure Quantum (rekommenderas).
  • När du använder qiskit_qir Python-paketet måste du ange parametern record_output till False innan du skickar kretsen.

Skapa en Azure Quantum-arbetsyta

Följande problem kan uppstå när du använder Azure Portal för att skapa en arbetsyta.

Problem: Du kan inte komma åt formuläret för att skapa arbetsytor i Azure Portal. Du uppmanas att registrera dig för en prenumeration i stället

Det här problemet beror på att du inte har någon aktiv prenumeration.

Du kan till exempel ha registrerat dig för den kostnadsfria 30-dagars utvärderingsprenumerationen på Azure, som inkluderar kostnadsfria Azure-krediter på 200 USD som ska användas på Azure-tjänster. Observera att dessa Azure-krediter inte är samma som Azure Quantum-krediter och inte är berättigade att användas på kvantmaskinvaruleverantörer. Efter 30 dagars registrering eller när du har förbrukat de kostnadsfria Azure-krediterna på 200 USD (beroende på vilket som inträffar först) måste du uppgradera till en betala per användning-prenumeration för att fortsätta använda Azure Quantum-tjänster. När du har en aktiv prenumeration kan du med Azure Portal komma åt formuläret för att skapa arbetsytan.

En lista över dina prenumerationer och associerade roller finns i Kontrollera dina prenumerationer.

Problem: Alternativet Snabbregistrering är inte tillgängligt

Du måste vara ägare till den prenumeration som du väljer för att kunna använda alternativet Snabbregistrering . En lista över dina prenumerationer och associerade roller finns i Kontrollera dina prenumerationer. Om du är prenumerationsdeltagare kan du använda alternativet Avancerad skapande för att skapa en arbetsyta.

Problem: Du kan inte skapa eller välja en resursgrupp eller ett lagringskonto

Det här problemet beror på att du inte har den auktorisering som krävs på prenumerations-, resursgrupps- eller lagringskontonivå. Mer information om åtkomstnivåer som krävs finns i Rollkrav för att skapa en arbetsyta.

Problem: Felmeddelandet "Distributionsverifieringen misslyckades" visas när du har valt Skapa

Det här felmeddelandet kan innehålla mer information, till exempel "Klienten har inte behörighet att utföra åtgärden".

Det här problemet beror på att du inte har den auktorisering som krävs på prenumerations-, resursgrupps- eller lagringskontonivå. Mer information om åtkomstnivåer som krävs finns i Rollkrav för att skapa en arbetsyta.

Om åtkomst nyligen har beviljats kan du behöva uppdatera sidan. Det kan ibland ta upp till en timme innan nya rolltilldelningar börjar gälla över cachelagrade behörigheter i stacken.

Problem: Du ser ingen specifik kvantmaskinvaruprovider på fliken Providers

Det här problemet beror på att providern inte stöder den faktureringsregion som din prenumeration har angetts i. Om din prenumeration till exempel har angetts i Israel visas inte Rigetti som tillgänglig leverantör på fliken Providers. En lista över leverantörer och deras tillgänglighet per land/region finns i Global tillgänglighet för Azure Quantum-leverantörer.

Problem: Det går inte att skapa eller lägga till/ta bort providrar på arbetsytan med "ResourceDeploymentFailure" eller "ProviderDeploymentFailure"

Det här problemet kan innehålla mer information, till exempel "ResourceDeploymentFailure – resursåtgärden "AzureAsyncOperationWaiting" som slutfördes med terminaletableringstillståndet "Misslyckades". eller "ProviderDeploymentFailure – Det gick inte att skapa en providerplan: <Providerns> namn".

Detta beror på att klienten inte har aktiverat Azure Marketplace köp. Följ stegen i Aktivera Azure Marketplace inköp för att aktivera Azure Marketplace köp.

Azure Quantum-portalen

Problem: Sparade anteckningsböcker läses inte in

När du har valt Notebooks på din arbetsyta visar listan över dina sparade anteckningsböcker en förloppsindikator men läses aldrig in.

Detta kan inträffa av två skäl:

  1. Om lagringskontot inte längre finns. Detta kan inträffa om lagringskontot som är länkat till arbetsytan har tagits bort. Verifiera genom att välja sidan Översikt för arbetsytan och välja länken till lagringskontot. Om lagringskontot har tagits bort visas felet 404 – Hittades inte .

  2. Om arbetsytans hanterade identitet inte är deltagare i lagringskontot. Kontrollera att arbetsytans identitet (som använder samma namn som arbetsytan) fortfarande har rolltilldelningen Deltagare till lagringskontot. Verifiera genom att välja sidan Översikt för arbetsytan och välja länken till lagringskontot. På sidan Översikt för lagringskontot väljer du Åtkomstkontroll (IAM) och kontrollerar att arbetsytan visas under Deltagare.