Quickstart: Een op kwantum gebaseerde generator voor willekeurige getallen maken in Azure Quantum
Meer informatie over het gebruik Azure Quantum om een eenvoudige op kwantum gebaseerde generator voor willekeurige getallen te maken.
Vereisten
- Voor het voltooien van deze zelfstudie hebt u een Azure-abonnement nodig. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
- In deze handleiding gebruiken we Visual Studio code die u gratis kunt downloaden en gebruiken.
Installeer de Quantum Development Kit en andere resources
Voordat u een Q#-programma kunt schrijven en uitvoeren met een van de kwantumcomputingproviders, moet u enkele resources installeren:
Installeer de Microsoft QDK voor VS Code-extensie.
Installeer de Azure CLI.
Installeer de
quantumCLI-extensie voor de Azure CLI.az extension add -n quantum
Een werkruimte Azure Quantum maken
U gebruikt de Azure Quantum-service door een resource Azure Quantum werkruimte toe te voegen aan uw Azure-abonnement in de Azure Portal. Een Azure Quantum werkruimteresource, kort gezegd, is een verzameling assets die is gekoppeld aan het uitvoeren van kwantum- of optimalisatietoepassingen.
Als u Azure Portal wilt openen, gaat u naar https://portal.azure.com en volgt u deze stappen:
Klik op Een resource maken en zoek naar Azure Quantum. Op de resultatenpagina ziet u een tegel voor de service Azure Quantum (preview).

Klik Azure Quantum (preview) en klik vervolgens op Maken. Hiermee opent u een formulier om een werkruimte te maken.

Vul de details van uw werkruimte in:
- Abonnement: Het abonnement dat u aan deze werkruimte wilt koppelen.
- Resourcegroep: De resourcegroep aan wie u deze werkruimte wilt toewijzen.
- Naam: De naam van uw werkruimte.
- Regio: De regio voor de werkruimte.
- Storage account: het Azure-opslagaccount voor het opslaan van uw taken en resultaten. Als u geen bestaand opslagaccount hebt, klikt u op Een nieuw opslagaccount maken en vult u de benodigde velden in. Voor deze preview raden we u aan de standaardwaarden te gebruiken.

Notitie
U moet een eigenaar van de geselecteerde resourcegroep zijn om een nieuw opslagaccount te kunnen maken. Zie Azure-resources beheren en organiseren met Azure Resource Manager voor meer informatie over hoe resourcegroepen werken in Azure.
Nadat u de informatie hebt invullen, klikt u op het tabblad Providers om providers toe te voegen aan uw werkruimte. Een provider biedt u toegang tot een kwantumservice. Dit kan kwantumhardware, een kwantumsimulator of een optimalisatieservice zijn.

Notitie
Standaard voegt de Azure Quantum de Microsoft QIO-provider toe aan elke werkruimte.
Voeg ten minste de IonQ-provider toe en klik vervolgens op Controleren + maken.
Controleer de instellingen en keur de gebruiksvoorwaarden van de geselecteerde providers goed. Als alles klopt, klikt u op Maken om uw werkruimte te maken.

Notitie
De prijzen voor Azure Quantum variëren per provider. Raadpleeg de informatie op het tabblad Providers van uw Azure Quantum werkruimte in de Azure Portal voor de meest recente prijsinformatie.
Een Q#-project maken in Visual Studio Code
Open in VS Code het menu Weergave en selecteer Opdrachtpalet.
Typ Q#: Create New Project.
Selecteer Zelfstandige consoletoepassing.
Selecteer een map voor uw project, zoals uw basismap. Voer QuantumRNG in als projectnaam en selecteer vervolgens Project maken.
Selecteer in het venster dat onderaan wordt weergegeven Nieuw project openen.
U ziet nu twee bestanden: het projectbestand en Program.qs, dat starterscode bevat. Open Program.qs.
Begin door het bestand QuantumRNG.csproj te openen en de eigenschap toe te voegen, waarmee u feedback over de ontwerptijd krijgt over de compatibiliteit van uw programma voor de hardware van
ExecutionTargetIonQ.
<Project Sdk="Microsoft.Quantum.Sdk/0.17.2105143879">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ExecutionTarget>ionq.qpu</ExecutionTarget>
</PropertyGroup>
</Project>
- Vervang de inhoud van Program.qs door het programma:
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);
}
}
Notitie
Zie Uw eerste Q#-programma maken met behulp van de Quantum Development Kit voor meer informatie over deze programmacode.
De AZ CLI voorbereiden
Vervolgens bereiden we uw omgeving voor op het uitvoeren van het programma op de werkruimte die u hebt gemaakt.
Meld u aan bij Azure met uw referenties. U krijgt een lijst met abonnementen die zijn gekoppeld aan uw account.
az loginGeef het abonnement op dat u wilt gebruiken in de abonnementen die zijn gekoppeld aan uw Azure-account. U kunt uw abonnements-id ook vinden in het overzicht van uw werkruimte in Azure Portal.
az account set -s <Your subscription ID>Gebruik
quantum workspace setom de werkruimte die u hierboven hebt gemaakt te selecteren als de standaardwerkruimte. U moet ook de resourcegroep en de locatie opgeven waarin u deze hebt gemaakt:az quantum workspace set -g MyResourceGroup -w MyWorkspace -l MyLocation -o tableLocation Name ProvisioningState ResourceGroup StorageAccount Usable ---------- ----------- ------------------- --------------- ------------------ -------- MyLocation MyWorkspace Succeeded MyResourceGroup /subscriptions/... YesIn uw werkruimte zijn verschillende doelen beschikbaar van de providers die u hebt toegevoegd toen u de werkruimte maakte. U kunt een lijst met alle beschikbare doelen weergeven met de opdracht
az quantum target list -o table:az quantum target list -o tableAfhankelijk van de provider die u hebt geselecteerd, ziet u:
Provider Target-id Status Average Queue Time ---------- ---------------------------------------------- --------- -------------------- ionq ionq.qpu Available 0 ionq ionq.simulator Available 0Notitie
Wanneer u een taak in een Azure Quantum wacht deze in een wachtrij totdat de provider klaar is om uw programma uit te voeren. In de kolom Gemiddelde wachtrijtijd van de doellijstopdracht ziet u hoeveel seconden onlangs uitgevoerde taken in de wachtrij hebben gewacht. Dit kan u een idee geven van hoe lang u mogelijk moet wachten.
Het programma simuleren in de IonQ-provider
Voordat u een programma op echte hardware gaat uitvoeren, raden we u aan dit eerst te simuleren (indien mogelijk op basis van het aantal vereiste qubits) om ervoor te zorgen dat uw algoritme doet wat u wilt. Gelukkig biedt IonQ een ideale simulator die u kunt gebruiken.
Notitie
U kunt Q#-programma's ook lokaal simuleren met behulp van de Full State Simulator.
Voer uw programma uit met az quantum execute --target-id ionq.simulator -o table. Met deze opdracht compileert u uw programma, verstuurt u het naar Azure Quantum wacht u tot IonQ klaar is met het simuleren van het programma. Zodra dit is gebeurd, wordt er een histogram uitgevoerd dat er als het onderstaande uit moet zien:
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 ▐█ |
Dit toont een gelijke frequentie voor elk van de 16 mogelijke staten voor het meten van 4 qubits, wat we verwachten van een ideale simulator! Dit betekent dat we klaar zijn om deze uit te voeren op de QPU.
Het programma uitvoeren op hardware
Om het programma op hardware uit te voeren, gebruiken we de asynchrone opdracht voor het indienen van een az quantum job submit taak. Net als bij de opdracht wordt hiermee uw programma ge compileerd en verzenden, maar wordt niet gewacht execute tot de uitvoering is voltooid. We raden dit patroon aan voor het uitvoeren op hardware, omdat u mogelijk even moet wachten tot uw taak is uitgevoerd. Als u een idee wilt krijgen van hoe lang dat kan zijn, kunt u uitvoeren az quantum target list -o table zoals hierboven wordt beschreven. Afhankelijk van de provider die u hebt geselecteerd, ziet u:
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
In de bovenstaande tabellen kunt u zien dat uw taak is verzonden en wacht tot de taak is uitgevoerd. Als u de status wilt controleren, gebruikt u de opdracht en vervangt u de parameter door de id-uitvoer door de az quantum job show job-id vorige opdracht, bijvoorbeeld:
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
Uiteindelijk ziet u dat Status de in de bovenstaande tabel wordt gewijzigd in Succeeded . Als dat is gebeurd, kunt u de resultaten van de taak krijgen door uit te az quantum job output gaan:
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 ▐█ |
Het histogram dat u ontvangt, kan enigszins afwijken van het histogram hierboven, maar u zou moeten zien dat de staten over het algemeen met gelijke frequentie worden waargenomen.
Vereisten
- Voor het voltooien van deze zelfstudie hebt u een Azure-abonnement nodig. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
- In deze handleiding gebruiken we Visual Studio code die u gratis kunt downloaden en gebruiken.
Installeer de Quantum Development Kit en andere resources
Voordat u een Q#-programma kunt schrijven en uitvoeren met een van de kwantumcomputingproviders, moet u enkele resources installeren:
Installeer de Microsoft QDK voor VS Code-extensie.
Installeer de Azure CLI.
Installeer de
quantumCLI-extensie voor de Azure CLI.az extension add -n quantum
Een werkruimte Azure Quantum maken
U gebruikt de Azure Quantum-service door een resource Azure Quantum werkruimte toe te voegen aan uw Azure-abonnement in de Azure Portal. Een Azure Quantum werkruimteresource, kort gezegd, is een verzameling assets die is gekoppeld aan het uitvoeren van kwantum- of optimalisatietoepassingen.
Als u Azure Portal wilt openen, gaat u naar https://portal.azure.com en volgt u deze stappen:
Klik op Een resource maken en zoek naar Azure Quantum. Op de resultatenpagina ziet u een tegel voor de service Azure Quantum (preview).

Klik Azure Quantum (preview) en klik vervolgens op Maken. Hiermee opent u een formulier om een werkruimte te maken.

Vul de details van uw werkruimte in:
- Abonnement: Het abonnement dat u aan deze werkruimte wilt koppelen.
- Resourcegroep: De resourcegroep aan wie u deze werkruimte wilt toewijzen.
- Naam: De naam van uw werkruimte.
- Regio: De regio voor de werkruimte.
- Storage account: het Azure-opslagaccount voor het opslaan van uw taken en resultaten. Als u geen bestaand opslagaccount hebt, klikt u op Een nieuw opslagaccount maken en vult u de benodigde velden in. Voor deze preview raden we u aan de standaardwaarden te gebruiken.

Notitie
U moet een eigenaar van de geselecteerde resourcegroep zijn om een nieuw opslagaccount te kunnen maken. Zie Azure-resources beheren en organiseren met Azure Resource Manager voor meer informatie over hoe resourcegroepen werken in Azure.
Nadat u de informatie hebt invullen, klikt u op het tabblad Providers om providers toe te voegen aan uw werkruimte. Een provider biedt u toegang tot een kwantumservice. Dit kan kwantumhardware, een kwantumsimulator of een optimalisatieservice zijn.

Notitie
Standaard voegt de Azure Quantum de Microsoft QIO-provider toe aan elke werkruimte.
Voeg ten minste de Provider Toe en klik vervolgens op Controleren en maken.
Controleer de instellingen en keur de gebruiksvoorwaarden van de geselecteerde providers goed. Als alles klopt, klikt u op Maken om uw werkruimte te maken.

Notitie
De prijzen voor Azure Quantum variëren per provider. Raadpleeg de informatie op het tabblad Providers van uw Azure Quantum werkruimte in de Azure Portal voor de meest recente prijsinformatie.
Een Q#-project maken in Visual Studio Code
Open in VS Code het menu Weergave en selecteer Opdrachtpalet.
Typ Q#: Create New Project.
Selecteer Zelfstandige consoletoepassing.
Selecteer een map voor uw project, zoals uw basismap. Voer QuantumRNG in als projectnaam en selecteer vervolgens Project maken.
Selecteer in het venster dat onderaan wordt weergegeven Nieuw project openen.
U ziet nu twee bestanden: het projectbestand en Program.qs, dat starterscode bevat. Open Program.qs.
Begin door het bestand QuantumRNG.csproj te openen en de eigenschap toe te voegen, waarmee u feedback over de ontwerptijd krijgt over de compatibiliteit van uw programma voor de hardware van
ExecutionTargetWindows.
<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>
- Vervang de inhoud van Program.qs door het programma:
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);
}
}
Notitie
Zie Uw eerste Q#-programma maken met behulp van de Quantum Development Kit voor meer informatie over deze programmacode.
De AZ CLI voorbereiden
Vervolgens bereiden we uw omgeving voor op het uitvoeren van het programma op de werkruimte die u hebt gemaakt.
Meld u aan bij Azure met uw referenties. U krijgt een lijst met abonnementen die zijn gekoppeld aan uw account.
az loginGeef het abonnement op dat u wilt gebruiken voor de abonnementen die zijn gekoppeld aan uw Azure-account. U kunt uw abonnements-id ook vinden in het overzicht van uw werkruimte in Azure Portal.
az account set -s <Your subscription ID>Gebruik
quantum workspace setom de werkruimte die u hierboven hebt gemaakt te selecteren als de standaardwerkruimte. U moet ook de resourcegroep en de locatie opgeven waarin u deze hebt gemaakt:az quantum workspace set -g MyResourceGroup -w MyWorkspace -l MyLocation -o tableLocation Name ProvisioningState ResourceGroup StorageAccount Usable ---------- ----------- ------------------- --------------- ------------------ -------- MyLocation MyWorkspace Succeeded MyResourceGroup /subscriptions/... YesIn uw werkruimte zijn verschillende doelen beschikbaar van de providers die u hebt toegevoegd toen u de werkruimte maakte. U kunt een lijst met alle beschikbare doelen weergeven met de opdracht
az quantum target list -o table:az quantum target list -o tablewaarmee u de uitvoer krijgt
Provider Target-id Current Availability Average Queue Time ---------- ---------------------------------------------- -------------------- -------------------- honeywell honeywell.hqs-lt-1.0 Available 0 honeywell honeywell.hqs-lt-1.0-apival Available 0Notitie
Wanneer u een taak in een Azure Quantum wacht deze in een wachtrij totdat de provider klaar is om uw programma uit te voeren. In de kolom Gemiddelde wachtrijtijd van de doellijstopdracht ziet u hoeveel seconden onlangs uitgevoerde taken in de wachtrij hebben gewacht. Dit kan u een idee geven van hoe lang u mogelijk moet wachten.
Het programma uitvoeren op hardware
Om het programma op hardware uit te voeren, gebruiken we de asynchrone opdracht voor het indienen van een az quantum job submit taak. Net als bij de opdracht wordt hiermee uw programma ge compileerd en verzenden, maar wordt niet gewacht execute tot de uitvoering is voltooid. Dit patroon wordt aanbevolen voor het uitvoeren op hardware, omdat u mogelijk even moet wachten tot uw taak is uitgevoerd. Als u een idee wilt krijgen van hoe lang dat kan zijn, kunt u uitvoeren az quantum target list -o table zoals hierboven wordt beschreven. Afhankelijk van de provider die u hebt geselecteerd, ziet u:
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
In de bovenstaande tabellen kunt u zien dat uw taak is verzonden en wacht tot de taak is uitgevoerd. Als u de status wilt controleren, gebruikt u de opdracht en vervangt u de parameter door de id-uitvoer door de az quantum job show job-id vorige opdracht, bijvoorbeeld:
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 ▐█ |
Het histogram dat u ontvangt, kan enigszins afwijken van het histogram hierboven, maar u zou moeten zien dat de staten over het algemeen met gelijke frequentie worden waargenomen.
Notitie
Als er een fout is opgetreden tijdens het werken met Azure Quantum, kunt u onze lijst met veelvoorkomende problemen controleren.
Volgende stappen
In deze quickstart werd gedemonstreerd hoe u Q#-programma's kunt uitvoeren op verschillende kwantumcomputingsimulators en QPI's. Zie de overzichtsdocumentatie van de Quantum Computing-provider voor meer informatie over de beschikbare providers.
We raden u aan om uw traject voort te zetten door meer te leren over de verschillende soorten doelen in Azure Quantum,waarmee wordt bepaald welke Q#-programma's u voor een bepaalde provider kunt uitvoeren. Misschien wilt u ook weten hoe u Q#-taken kunt verzenden met Python, Jupyter Notebooks of de Azure CLI.
Zoekt u meer voorbeelden om uit te voeren? Bekijk de map met voorbeelden voor Azure Quantum.
Als u meer wilt weten over het schrijven van Q#-programma's, raadpleegt u de gebruikershandleiding voor de programmeertaal Q#.