Snabbstart: Skapa en kvantbaserad slumptalsgenerator i Azure Quantum
Lär dig hur du använder Azure Quantum för att skapa en enkel kvantbaserad slumptalsgenerator.
Förutsättningar
- För att slutföra den här självstudien behöver du en Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
- I den här guiden använder vi Visual Studio Code som du kan ladda ned och använda kostnadsfritt.
Installera Quantum Development Kit och andra resurser
Innan du kan skriva ett Q#-program och köra det med någon av kvantberäkningsleverantörerna måste du installera några resurser:
Installera Microsoft QDK för VS Code-tillägget.
Installera Azure CLI.
Installera
quantumCLI-tillägget för Azure CLI.az extension add -n quantum
Skapa en Azure Quantum arbetsyta
Du använder tjänsten Azure Quantum genom att lägga till en Azure Quantum arbetsyteresurs till din Azure-prenumeration i Azure Portal. En Azure Quantum arbetsyteresurs, eller arbetsyta, är en samling tillgångar som är associerade med att köra kvant- eller optimeringsprogram.
Öppna Azure Portal genom att gå till https://portal.azure.com och sedan följa dessa steg:
Klicka på Skapa en resurs och sök sedan efter Azure Quantum. På resultatsidan bör du se en panel för Azure Quantum (förhandsversion).

Klicka Azure Quantum (förhandsversion) och sedan på Skapa. Då öppnas ett formulär för att skapa en arbetsyta.

Fyll i informationen om din arbetsyta:
- Prenumeration: Den prenumeration som du vill associera med den här arbetsytan.
- Resursgrupp: Den resursgrupp som du vill tilldela den här arbetsytan till.
- Namn: Namnet på din arbetsyta.
- Region: Arbetsytans region.
- Storage konto: Azure Storage-kontot för att lagra jobb och resultat. Om du inte har ett befintligt lagringskonto klickar du på Skapa ett nytt lagringskonto och fyller i de fält som krävs. För den här förhandsversionen rekommenderar vi att du använder standardvärdena.

Anteckning
Du måste vara ägare till den valda resursgruppen för att kunna skapa ett nytt lagringskonto. Mer information om hur resursgrupper fungerar i Azure finns i Kontrollera och organisera Azure-resurser med Azure Resource Manager.
När du har slutfört informationen klickar du på fliken Providers (Leverantörer) för att lägga till providers på din arbetsyta. En leverantör ger dig åtkomst till en kvanttjänst som kan vara kvantmaskinvara, en kvantsimulator eller en optimeringstjänst.

Anteckning
Som standard lägger tjänsten Azure Quantum Microsoft QIO-providern till varje arbetsyta.
Lägg till minst IonQ-providern och klicka sedan på Granska + skapa.
Granska inställningarna och godkänn användningsvillkoren för de valda leverantörerna. Om allt är korrekt klickar du på Skapa för att skapa din arbetsyta.

Anteckning
Prissättningen för Azure Quantum varierar beroende på leverantör. Läs informationen på fliken Providers (Leverantörer) på Azure Quantum-arbetsytan i Azure Portal för att få den senaste prisinformationen.
Skapa ett Q#-projekt i Visual Studio Code
I VS Code öppnar du menyn Visa och väljer Kommandopalett.
Skriv Q#: Create New Project.
Välj Fristående konsolprogram.
Välj en katalog som ska innehålla projektet, till exempel din hemkatalog. Ange QuantumRNG som projektnamn och välj sedan Skapa projekt.
I det fönster som visas längst ned väljer du Öppna nytt projekt.
Du bör se två filer: projektfilen och Program.qs, som innehåller startkod. Öppna Program.qs.
Börja med att öppna filen QuantumRNG.csproj och lägg till egenskapen , vilket ger dig feedback om programmets kompatibilitet för
ExecutionTargetIonQ-maskinvaran.
<Project Sdk="Microsoft.Quantum.Sdk/0.17.2105143879">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ExecutionTarget>ionq.qpu</ExecutionTarget>
</PropertyGroup>
</Project>
- Ersätt innehållet i Program.qs med programmet:
namespace QuantumRNG {
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Canon;
@EntryPoint()
operation GenerateRandomBits() : Result[] {
use qubits = Qubit[4];
ApplyToEach(H, qubits);
return MultiM(qubits);
}
}
Anteckning
Om du vill veta mer om den här programkoden kan du läsa Skapa ditt första Q#-program med hjälp av Quantum Development Kit.
Förbereda AZ CLI
Nu ska vi förbereda din miljö för att köra programmet mot arbetsytan som du skapade.
Logga in på Azure med dina autentiseringsuppgifter. Du får en lista över prenumerationer som är kopplade till ditt konto.
az loginAnge den prenumeration som du vill använda från de som är kopplade till ditt Azure-konto. Du hittar även ditt prenumerations-ID i översikten över din arbetsyta i Azure-portalen.
az account set -s <Your subscription ID>Använd
quantum workspace setför att välja den arbetsyta som du skapade ovan som standardarbetsyta. Observera att du även måste ange resursgruppen och den plats där du skapade den:az quantum workspace set -g MyResourceGroup -w MyWorkspace -l MyLocation -o tableLocation Name ProvisioningState ResourceGroup StorageAccount Usable ---------- ----------- ------------------- --------------- ------------------ -------- MyLocation MyWorkspace Succeeded MyResourceGroup /subscriptions/... YesPå din arbetsyta finns det olika mål som är tillgängliga från leverantörerna som du lade till när du skapade arbetsytan. Du kan visa en lista över alla tillgängliga mål med kommandot
az quantum target list -o table:az quantum target list -o tableBeroende på vilken provider du har valt visas följande:
Provider Target-id Status Average Queue Time ---------- ---------------------------------------------- --------- -------------------- ionq ionq.qpu Available 0 ionq ionq.simulator Available 0Anteckning
När du skickar ett jobb i Azure Quantum väntar det i en kö tills providern är redo att köra programmet. Kolumnen Genomsnittlig kötid i kommandot i mållistan visar hur många sekunder nyligen körda jobb som väntade i kön. Detta kan ge dig en uppfattning om hur länge du kan behöva vänta.
Simulera programmet i IonQ-providern
Innan du kör ett program mot verklig maskinvara rekommenderar vi att du simulerar det först (om möjligt baserat på antalet qubitar som krävs) för att säkerställa att algoritmen gör det du vill. Lyckligtvis tillhandahåller IonQ en idealiserad simulator som du kan använda.
Anteckning
Du kan också simulera Q#-program lokalt med hjälp av simulatorn för fullständigt tillstånd.
Kör programmet med az quantum execute --target-id ionq.simulator -o table . Det här kommandot kompilerar programmet, skickar det till Azure Quantum och väntar tills IonQ har simulerat programmet. När det är klart matas ett histogram ut som bör se ut som det nedan:
az quantum execute --target-id ionq.simulator -o table
Result Frequency
--------- ----------- -------------------------
[0,0,0,0] 0.06250000 ▐█ |
[1,0,0,0] 0.06250000 ▐█ |
[0,1,0,0] 0.06250000 ▐█ |
[1,1,0,0] 0.06250000 ▐█ |
[0,0,1,0] 0.06250000 ▐█ |
[1,0,1,0] 0.06250000 ▐█ |
[0,1,1,0] 0.06250000 ▐█ |
[1,1,1,0] 0.06250000 ▐█ |
[0,0,0,1] 0.06250000 ▐█ |
[1,0,0,1] 0.06250000 ▐█ |
[0,1,0,1] 0.06250000 ▐█ |
[1,1,0,1] 0.06250000 ▐█ |
[0,0,1,1] 0.06250000 ▐█ |
[1,0,1,1] 0.06250000 ▐█ |
[0,1,1,1] 0.06250000 ▐█ |
[1,1,1,1] 0.06250000 ▐█ |
Detta visar en lika hög frekvens för var och en av de 16 möjliga tillstånden för att mäta 4 qubitar, vilket är vad vi förväntar oss från en idealiserad simulator! Det innebär att vi är redo att köra den på QPU:n.
Köra programmet på maskinvara
Om du vill köra programmet på maskinvaran använder vi det asynkrona jobbinskickade kommandot az quantum job submit . Precis som execute kommandot kompileras och skickas programmet, men det väntar inte tills körningen är klar. Vi rekommenderar det här mönstret för att köra mot maskinvara, eftersom du kan behöva vänta en stund tills jobbet har avslutats. För att få en uppfattning om hur lång tid det kan ta kan du köra az quantum target list -o table enligt beskrivningen ovan. Beroende på vilken provider du har valt visas följande:
az quantum job submit --target-id ionq.qpu -o table
Name Id Status Target Submission time
---------- ------------------------------------ -------- -------- ---------------------------------
QuantumRNG 5aa8ce7a-25d2-44db-bbc3-87e48a97249c Waiting ionq.qpu 2020-10-22T22:41:27.8855301+00:00
Tabellerna ovan visar att jobbet har skickats och väntar på att jobbet ska köras. Om du vill kontrollera statusen använder du kommandot och ersätter parametern med ID-utdata med az quantum job show job-id föregående kommando, till exempel:
az quantum job show -o table --job-id 5aa8ce7a-25d2-44db-bbc3-87e48a97249c
Name Id Status Target Submission time
---------- ------------------------------------ -------- -------- ---------------------------------
QuantumRNG 5aa8ce7a-25d2-44db-bbc3-87e48a97249c Waiting ionq.qpu 2020-10-22T22:41:27.8855301+00:00
Så småningom kommer du att se Status att i tabellen ovan ändras till Succeeded . När det är klart kan du hämta resultatet från jobbet genom att köra az quantum job output :
az quantum job output -o table --job-id 5aa8ce7a-25d2-44db-bbc3-87e48a97249c
Result Frequency
--------- ----------- -------------------------
[0,0,0,0] 0.05200000 ▐█ |
[1,0,0,0] 0.07200000 ▐█ |
[0,1,0,0] 0.05000000 ▐█ |
[1,1,0,0] 0.06800000 ▐█ |
[0,0,1,0] 0.04600000 ▐█ |
[1,0,1,0] 0.06000000 ▐█ |
[0,1,1,0] 0.06400000 ▐█ |
[1,1,1,0] 0.07600000 ▐██ |
[0,0,0,1] 0.04800000 ▐█ |
[1,0,0,1] 0.06200000 ▐█ |
[0,1,0,1] 0.07400000 ▐█ |
[1,1,0,1] 0.08000000 ▐██ |
[0,0,1,1] 0.05800000 ▐█ |
[1,0,1,1] 0.06800000 ▐█ |
[0,1,1,1] 0.05200000 ▐█ |
[1,1,1,1] 0.07000000 ▐█ |
Histogrammet du får kan vara något annorlunda än det som visas ovan, men du bör se att tillstånden vanligtvis observeras med samma frekvens.
Förutsättningar
- För att slutföra den här självstudien behöver du en Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
- I den här guiden använder vi Visual Studio Code som du kan ladda ned och använda kostnadsfritt.
Installera Quantum Development Kit och andra resurser
Innan du kan skriva ett Q#-program och köra det med någon av kvantberäkningsleverantörerna måste du installera några resurser:
Installera Microsoft QDK för VS Code-tillägget.
Installera Azure CLI.
Installera
quantumCLI-tillägget för Azure CLI.az extension add -n quantum
Skapa en Azure Quantum arbetsyta
Du använder tjänsten Azure Quantum genom att lägga till en Azure Quantum arbetsyteresurs till din Azure-prenumeration i Azure Portal. En Azure Quantum arbetsyteresurs, eller arbetsyta, är en samling tillgångar som är associerade med att köra kvant- eller optimeringsprogram.
Öppna Azure Portal genom att gå till https://portal.azure.com och sedan följa dessa steg:
Klicka på Skapa en resurs och sök sedan efter Azure Quantum. På resultatsidan bör du se en panel för Azure Quantum (förhandsversion).

Klicka Azure Quantum (förhandsversion) och klicka sedan på Skapa. Då öppnas ett formulär för att skapa en arbetsyta.

Fyll i informationen om din arbetsyta:
- Prenumeration: Den prenumeration som du vill associera med den här arbetsytan.
- Resursgrupp: Den resursgrupp som du vill tilldela den här arbetsytan till.
- Namn: Namnet på din arbetsyta.
- Region: Arbetsytans region.
- Storage konto: Azure Storage-kontot för att lagra dina jobb och resultat. Om du inte har något befintligt lagringskonto klickar du på Skapa ett nytt lagringskonto och fyller i de obligatoriska fälten. För den här förhandsversionen rekommenderar vi att du använder standardvärdena.

Anteckning
Du måste vara ägare till den valda resursgruppen för att skapa ett nytt lagringskonto. Mer information om hur resursgrupper fungerar i Azure finns i Kontrollera och organisera Azure-resurser med hjälp Azure Resource Manager.
När du har slutfört informationen klickar du på fliken Providers (Leverantörer) för att lägga till providers på din arbetsyta. En leverantör ger dig tillgång till en kvanttjänst, som kan vara kvantmaskinvara, kvantsimulator eller en optimeringstjänst.

Anteckning
Som standard lägger Azure Quantum Microsoft QIO-providern till varje arbetsyta.
Lägg till minst Honeywell-providern och klicka sedan på Granska + skapa.
Granska inställningarna och godkänn användningsvillkoren för de valda leverantörerna. Om allt är korrekt klickar du på Skapa för att skapa din arbetsyta.

Anteckning
Prissättningen för Azure Quantum varierar beroende på leverantör. Läs informationen på fliken Providers på din Azure Quantum i Azure Portal för att få den senaste prisinformationen.
Skapa ett Q#-projekt i Visual Studio Code
I VS Code öppnar du menyn Visa och väljer Kommandopalett.
Skriv Q#: Create New Project.
Välj Fristående konsolprogram.
Välj en katalog som ska innehålla projektet, till exempel din hemkatalog. Ange QuantumRNG som projektnamn och välj sedan Skapa projekt.
I det fönster som visas längst ned väljer du Öppna nytt projekt.
Du bör se två filer: projektfilen och Program.qs, som innehåller startkod. Öppna Program.qs.
Börja med att öppna filen QuantumRNG.csproj och lägga till egenskapen , vilket ger dig feedback om programmets kompatibilitet för
ExecutionTargetHoneywells maskinvara.
<Project Sdk="Microsoft.Quantum.Sdk/0.17.2105143879">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ExecutionTarget>honeywell.hqs-lt-1.0</ExecutionTarget>
</PropertyGroup>
</Project>
- Ersätt innehållet i Program.qs med programmet:
namespace QuantumRNG {
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Canon;
@EntryPoint()
operation GenerateRandomBits() : Result[] {
use qubits = Qubit[4];
ApplyToEach(H, qubits);
return MultiM(qubits);
}
}
Anteckning
Om du vill veta mer om den här programkoden kan du läsa Skapa ditt första Q#-program med hjälp av Quantum Development Kit.
Förbereda AZ CLI
Nu ska vi förbereda din miljö för att köra programmet mot arbetsytan som du skapade.
Logga in på Azure med dina autentiseringsuppgifter. Du får en lista över prenumerationer som är kopplade till ditt konto.
az loginAnge den prenumeration som du vill använda från de som är associerade med ditt Azure-konto. Du hittar även ditt prenumerations-ID i översikten över din arbetsyta i Azure Portal.
az account set -s <Your subscription ID>Använd
quantum workspace setför att välja den arbetsyta som du skapade ovan som standardarbetsyta. Observera att du även måste ange resursgruppen och den plats där du skapade den:az quantum workspace set -g MyResourceGroup -w MyWorkspace -l MyLocation -o tableLocation Name ProvisioningState ResourceGroup StorageAccount Usable ---------- ----------- ------------------- --------------- ------------------ -------- MyLocation MyWorkspace Succeeded MyResourceGroup /subscriptions/... YesPå din arbetsyta finns det olika mål tillgängliga från leverantörerna som du lade till när du skapade arbetsytan. Du kan visa en lista över alla tillgängliga mål med kommandot
az quantum target list -o table:az quantum target list -o tablesom ger dig utdata
Provider Target-id Current Availability Average Queue Time ---------- ---------------------------------------------- -------------------- -------------------- honeywell honeywell.hqs-lt-1.0 Available 0 honeywell honeywell.hqs-lt-1.0-apival Available 0Anteckning
När du skickar ett jobb Azure Quantum väntar det i en kö tills providern är redo att köra programmet. Kolumnen Genomsnittlig kötid i kommandot för mållistan visar hur många sekunder jobb som nyligen körts i kön. Detta kan ge dig en uppfattning om hur länge du kan behöva vänta.
Köra programmet på maskinvara
Om du vill köra programmet på maskinvaran använder vi det asynkrona jobbinskickade kommandot az quantum job submit . Precis som execute kommandot kompileras och skickas programmet, men det väntar inte tills körningen är klar. Vi rekommenderar det här mönstret för körning mot maskinvara, eftersom du kan behöva vänta en stund tills jobbet har avslutats. För att få en uppfattning om hur lång tid det kan ta kan du köra az quantum target list -o table enligt beskrivningen ovan. Beroende på vilken provider du har valt visas följande:
az quantum job submit --target-id honeywell.hqs-lt-1.0 -o table
Name Id Status Target Submission time
---------- ------------------------------------ -------- -------- ---------------------------------
QuantumRNG b4d17c63-2119-4d92-91d9-c18d1a07e08f Waiting honeywell.hqs-lt-1.0 2020-01-12T22:41:27.8855301+00:00
Tabellerna ovan visar att jobbet har skickats och väntar på att jobbet ska köras. Om du vill kontrollera statusen använder du kommandot och ersätter parametern med ID-utdata az quantum job show job-id med föregående kommando, till exempel:
az quantum job show -o table --job-id b4d17c63-2119-4d92-91d9-c18d1a07e08f
Name Id Status Target Submission time
---------- ------------------------------------ -------- -------- ---------------------------------
QuantumRNG b4d17c63-2119-4d92-91d9-c18d1a07e08f Waiting honeywell.hqs-lt-1.0 2020-10-22T22:41:27.8855301+00:00
Eventually, you will see the `Status` in the above table change to `Succeeded`. Once that's done you can get the results from the job by running `az quantum job output`:
```azurecli
az quantum job output -o table --job-id b4d17c63-2119-4d92-91d9-c18d1a07e08f
Result Frequency
--------- ----------- -------------------------
[0,0,0,0] 0.05200000 ▐█ |
[1,0,0,0] 0.07200000 ▐█ |
[0,1,0,0] 0.05000000 ▐█ |
[1,1,0,0] 0.06800000 ▐█ |
[0,0,1,0] 0.04600000 ▐█ |
[1,0,1,0] 0.06000000 ▐█ |
[0,1,1,0] 0.06400000 ▐█ |
[1,1,1,0] 0.07600000 ▐██ |
[0,0,0,1] 0.04800000 ▐█ |
[1,0,0,1] 0.06200000 ▐█ |
[0,1,0,1] 0.07400000 ▐█ |
[1,1,0,1] 0.08000000 ▐██ |
[0,0,1,1] 0.05800000 ▐█ |
[1,0,1,1] 0.06800000 ▐█ |
[0,1,1,1] 0.05200000 ▐█ |
[1,1,1,1] 0.07000000 ▐█ |
Histogrammet du får kan vara något annorlunda än det som visas ovan, men du bör se att tillstånden vanligtvis observeras med samma frekvens.
Anteckning
Om du får ett fel när du arbetar med Azure Quantum kan du kontrollera vår lista över vanliga problem.
Nästa steg
Den här snabbstarten visade hur du kommer igång med att köra Q#-program mot olika kvantberäkningssimulatorer och QPU:er. Mer information om tillgängliga leverantörer finns i översiktsdokumentationen för kvantberäkningsprovidern.
Vi rekommenderar att du fortsätter din resa genom att lära dig mer om de olika typerna av mål i Azure Quantum, vilket avgör vilka Q#-program du kan köra mot en viss leverantör. Du kanske också vill lära dig hur du skickar Q#-jobb med Python, Jupyter Notebooks eller Azure CLI.
Letar du efter fler exempel att köra? Kolla in exempelkatalogen för Azure Quantum.
Slutligen kan du läsa mer om att skriva Q#-program i användarhandboken för programmeringsspråket Q#.