Share via


IonQ-provider

Tip

Nieuwe gebruikers krijgen automatisch gratis $ 500 (USD)Azure Quantum-tegoed voor gebruik met elke deelnemende kwantumhardwareprovider. Als u alle tegoeden hebt verbruikt en u meer nodig hebt, kunt u een aanvraag indienen voor het Azure Quantum-tegoedprogramma.

De kwantumcomputers van IonQ voeren berekeningen uit door de hyperfijne energietoestanden van Ytterbium-ionen te manipuleren met lasers. Atomen zijn qubits van de natuur: elke qubit is identiek binnen en tussen programma's. Logische bewerkingen kunnen ook worden uitgevoerd op elk willekeurig paar qubits, waardoor complexe kwantumprogramma's zonder fysieke connectiviteit worden gehinderd. Wilt u meer leren? Lees het overzicht van de kwantumcomputertechnologie van IonQ.

  • Uitgever: IonQ
  • Provider-id: ionq

De volgende targets zijn beschikbaar bij deze provider:

Doelnaam Doel-id Aantal qubits Description
Kwantumsimulator ionq.simulator 29 qubits IonQ's cloudgebaseerde geïdealiseerde simulator. Gratis.
IonQ Harmony ionq.qpu 11 qubits IonQ's trapped-ion kwantumcomputer.
IonQ Aria 1 ionq.qpu.aria-1 25 qubits IonQ's Aria trapped-ion kwantumcomputer.
IonQ Aria 2 ionq.qpu.aria-2 25 qubits IonQ's Aria trapped-ion kwantumcomputer.
IonQ Forte ionq.qpu.forte 32 qubits IonQ's Forte trapped-ion kwantumcomputer. Alleen beschikbaar in privévoorbeeld.

IonQ's targets komen overeen met een No Control Flow profiel. Zie Inzicht target in profieltypen in Azure Quantum voor meer informatie over dit target profiel en de bijbehorende beperkingen.

Kwantumsimulator

Gpu-versnelde geïdealiseerde simulator die ondersteuning biedt voor maximaal 29 qubits, met behulp van dezelfde set poorten die IonQ biedt op de kwantumhardware. Dit is een uitstekende plek om taken voor te leggen voordat ze op een echte kwantumcomputer worden uitgevoerd.

  • Taaktype: Simulation
  • Gegevensindeling: ionq.circuit.v1
  • Doel-id: ionq.simulator
  • Doeluitvoeringsprofiel: No Control Flow

IonQ Harmony-kwantumcomputer

De IonQ Harmony is een kwantumcomputer met vastgemaakte ionen en kan dynamisch opnieuw worden geconfigureerd in software voor het gebruik van maximaal 11 qubits. Alle qubits zijn volledig verbonden, wat betekent dat u een poort met twee qubits tussen elk paar kunt uitvoeren.

  • Taaktype: Quantum Program
  • Gegevensindeling: ionq.circuit.v1
  • Doel-id: ionq.qpu
  • Doeluitvoeringsprofiel: No Control Flow
Parameternaam Type Vereist Beschrijving
shots int No Aantal experimentele opnamen. De standaardwaarde is 500.

Systeemtiming

Meting Gemiddelde tijdsduur (μs)
T1 >10^7
T2 200.000
Poort met één qubit 10
Poort met twee qubits 210
Uitlezing 100
Opnieuw instellen registreren 25
Coherentietijd/poortduur 1667

Systeemkwaliteit

Bewerking Gemiddelde kwaliteit
Poort met één qubit 99,35% (SPAM gecorrigeerd)
Poort met twee qubits 96,02% (niet spam gecorrigeerd)
SPAM* 99.3 - 99.8%
Geometrische gemiddelde op 98.34%

* Statusvoorbereiding en -meting (SPAM): deze meting bepaalt hoe nauwkeurig een kwantumcomputer een qubit in de begintoestand kan instellen en vervolgens het resultaat aan het einde kan meten.

IonQ Aria kwantumcomputer

IonQ Aria is het vlaggenschip van ionen-kwantumcomputers van IonQ, met een dynamisch herconfigureerbaar systeem met 25 qubits. Zie IonQ Aria (ionq.com) voor meer informatie.

Belangrijk

Debiasing is standaard ingeschakeld op Aria-systemen en ingediende taken zijn onderhevig aan prijzen op basis van debiasing. Zie Foutbeperking voor meer informatie over het uitschakelen/inschakelen van de service.

  • Taaktype: Quantum Program
  • Gegevensindeling: ionq.circuit.v1
  • Doel-id: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Doeluitvoeringsprofiel: No Control Flow
Parameternaam Type Vereist Beschrijving
shots int No Aantal experimentele opnamen.

Systeemtiming

Meting Gemiddelde tijdsduur
T1 10-100 s
T2 1 s
Poort met één qubit 135 μs
Poort met twee qubits 600 μs

Systeemkwaliteit

Bewerking Gemiddelde kwaliteit
Poort met één qubit 99,95% (SPAM gecorrigeerd)
Poort met twee qubits 99,6% (niet spam gecorrigeerd)
SPAM* 99.61%

* Statusvoorbereiding en -meting (SPAM): deze meting bepaalt hoe nauwkeurig een kwantumcomputer een qubit in de begintoestand kan instellen en vervolgens het resultaat aan het einde kan meten.

IonQ Aria is beschikbaar via een Azure Quantum-tegoedabonnement en een afzonderlijk factureringsplan. Zie Prijzen van Azure Quantum voor meer informatie.

IonQ Forte kwantumcomputer

IonQ Forte is ionQ's best presterende, commercieel beschikbare kwantumcomputer met gevangen ionen. Met een 32-qubit-software configureerbaar systeem is IonQ Forte beschikbaar in Private Preview op Azure Quantum. Zie IonQ Forte (ionq.com) voor meer informatie.

Belangrijk

Debiasing is standaard ingeschakeld in het Forte-systeem en ingediende taken zijn onderhevig aan prijzen op basis van debiasing. Zie Foutbeperking voor meer informatie over het uitschakelen/inschakelen van de service.

  • Taaktype: Quantum Program
  • Gegevensindeling: ionq.circuit.v1
  • Doel-id: ionq.qpu.forte
  • Doeluitvoeringsprofiel: No Control Flow
Parameternaam Type Vereist Beschrijving
shots int No Aantal experimentele opnamen.

Invoerindeling

In Q# is de uitvoer van een kwantummeting een waarde van het type Result, die alleen de waarden Zero en Onekan nemen. Wanneer u een Q#-bewerking definieert, kan deze alleen worden verzonden naar IonQ-hardware als het retourtype een verzameling van Results is, dat wil doen als de uitvoer van de bewerking het resultaat is van een kwantummeting. De reden hiervoor is dat IonQ een histogram maakt op basis van de geretourneerde waarden, dus het retourtype wordt beperkt tot om het maken van dit histogram te Result vereenvoudigen.

IonQ's targets komen overeen met de No Control Flow profile. Met dit profiel kunnen geen kwantumbewerkingen worden uitgevoerd waarvoor de resultaten van qubitmetingen moeten worden gebruikt om de programmastroom te beheren.

Notitie

Op dit moment kunt u geen kwantumprogramma's indienen die bewerkingen toepassen op qubits die zijn gemeten in No Control Flowtargets, zelfs niet als u de resultaten niet gebruikt om de programmastroom te beheren. Dat wil gezegd, No Control Flowtargets sta geen metingen van het middencircuit toe.

De volgende code kan bijvoorbeeld niet worden uitgevoerd op een No Control Flowtarget:

operation MeasureQubit(q : Qubit) : Result { 
   return M(q); 
}

operation SampleMeasuredQubit(q : Qubit) : Result {
    H(MeasureQubit(q));
    return M(MeasureQubit(q));
}

Uitvoerindeling

Wanneer u een kwantumprogramma naar de IonQ-simulator verzendt, wordt het histogram geretourneerd dat door de metingen is gemaakt. De IonQ-simulator bemonstert niet de waarschijnlijkheidsverdeling die door een kwantumprogramma is gemaakt, maar retourneert in plaats daarvan de verdeling die is geschaald naar het aantal opnamen. Dit is het duidelijkst wanneer u een single shot circuit indient. U ziet meerdere meetresultaten in het histogram voor één opname. Dit gedrag is inherent aan de IonQ-simulator, terwijl IonQ QPU het programma daadwerkelijk uitvoert en de resultaten samenvoegt.

Aanvullende mogelijkheden

Aanvullende mogelijkheden die worden ondersteund door IonQ-hardware worden hier vermeld.

Mogelijkheid Beschrijving
Foutbeperking Gebruik debiasing om ruis te minimaliseren en de algoritmische prestaties op IonQ-hardware te maximaliseren
Ondersteuning voor systeemeigen poorten Circuits rechtstreeks definiëren en uitvoeren op IonQ-hardwareeigen poorten
Simulatie van ruismodel Simuleer het ruisprofiel dat circuits tegenkomen wanneer u ze uitvoert op verschillende IonQ-hardware.

Gebruikers kunnen profiteren van deze aanvullende mogelijkheden via passthrough-parameters in de Azure Quantum Q#- en Qiskit-providers.

Foutbeperking

IonQ biedt de optie om kwantumfoutbeperking in te schakelen bij het verzenden van taken naar IonQ-hardware. Foutbeperking is een proces op compilerniveau dat meerdere symmetrische variaties van een circuit uitvoert en uitvoert, waarna de resultaten worden samengevoegd terwijl de impact van hardwarefouten en qubit-decoherentie wordt beperkt. In tegenstelling tot kwantumfoutcorrectietechnieken is voor foutbeperking geen grote overhead voor poorten en qubits vereist.

Debiasing is het proces van het maken van kleine variaties van een bepaald circuit die identiek moeten zijn op een ideale geruisloze machine, waarbij technieken worden gebruikt zoals verschillende qubittoewijzingen, poortontleding en pulse-oplossingen, en vervolgens deze variaties worden uitgevoerd.

Verscherping en Gemiddelden zijn opties voor het aggregeren van de resultaten van de variaties. Het gemiddelde wordt in gelijke mate gebaseerd op alle variatieresultaten, terwijl verscherping de onjuiste resultaten wegfiltert en betrouwbaarder kan zijn voor bepaalde typen algoritmen.

Zie Debiasing and Verscherping (Debiasing and Verscherping) voor meer informatie. Zie IonQ-prijzen voor prijsbeperking voor foutbeperking.

Foutbeperking inschakelen

Notitie

Debiasing is standaard ingeschakeld op Aria- en Forte-systemen en is standaard uitgeschakeld op Harmony-systemen.

In Azure Quantum kan foutbeperking worden in- of uitgeschakeld voor taken die zijn ingediend met Q# of met Qiskit.

Als u foutbeperking wilt inschakelen, voegt u een optionele parameter toe voor de target computer:


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

Als u foutbeperking wilt uitschakelen, stelt u de parameter in op False:


option_params = {
    "error-mitigation": {
        "debias": False
    }
}

Notitie

Als u ook de simulatie van het ruismodel van IonQ gebruikt, kunnen deze parameters hier worden opgenomen, bijvoorbeeld:

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "harmony",
    "seed": 100
    }
}

Zie Simulatie van ruismodellen voor meer informatie.

Een taak uitvoeren in Azure Quantum met foutbeperking

In dit voorbeeld wordt een eenvoudige generator voor willekeurige getallen gebruikt.

Importeer eerst de vereiste pakketten en initieer het basisprofiel:

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

Definieer vervolgens de functie.

%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

and compile the operation:

```python
MyProgram = qsharp.compile("GenerateRandomBit()")

Maak verbinding met Azure Quantum, selecteer de target machine en configureer de ruisparameters voor de emulator:

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("ionq.qpu")

error-mitigation De configuratie opgeven


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

Geef de configuratie voor foutbeperking door bij het verzenden van de taak:

job = MyTarget.submit(MyProgram, "Experiment with error mitigation", shots = 10, input_params = option_params)
job.get_results()

In Qiskit geeft u de optionele parameters door aan de target computerconfiguratie voordat u de taak verzendt:

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

Notitie

Als u de error-mitigation parameter niet doorgeeft, gebruikt de computer de target standaardinstelling: ingeschakeld voor Aria- en Forte-systemen en uitgeschakeld voor Harmony-systemen.

Ondersteuning en gebruik van systeemeigen poorten

Met IonQ kunt u standaard een kwantumcircuit opgeven met behulp van een abstracte set kwantumpoorten, genaamd qis, die flexibiliteit en draagbaarheid biedt bij het schrijven van een algoritme zonder dat u zich zorgen hoeft te maken over optimalisatie voor de hardware.

In sommige geavanceerde gebruiksvoorbeelden kunt u echter een circuit rechtstreeks op systeemeigen poorten definiëren om dichter bij de hardware te zijn en optimalisatie te omzeilen. De systeemeigen poortset is de set kwantumpoorten die fysiek worden uitgevoerd in de kwantumprocessor en ze wijzen het circuit toe aan die poorten als onderdeel van de uitvoering.

Zie Aan de slag With Native Gates (ionq.com) voor meer informatie.

Als u de systeemeigen gateset wilt gebruiken bij het verzenden van Qiskit-taken naar Azure Quantum, geeft u de parameter op bij het gateset initialiseren van de back-end, zoals in het onderstaande voorbeeld:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Parameternaam Type Vereist Description
gateset tekenreeks No Hiermee geeft u de set poorten op die wordt gebruikt om een circuit te definiëren. Een waarde van qis komt overeen met de abstracte poorten (standaardgedrag) en native met de systeemeigen poorten van de IonQ-hardware.

Zie Een circuit verzenden met Qiskit voor meer informatie over Qiskit-taken.

Simulatie van ruismodel

Zelfs de beste kwantumhardware van vandaag heeft inherente ruis. Als u de ruiskenmerken van uw target systeem kent, kunt u uw algoritmen verfijnen en een meer realistische voorspelling van de resultaten krijgen bij het uitvoeren van het circuit op hardware. IonQ biedt een ruismodelsimulatie die ruis in het circuit introduceert met behulp van een 'ruisvingerafdruk' die specifiek is voor de target hardware. Zie Aan de slag met simulatie van hardwareruismodel voor meer informatie.

Parameters voor ruismodel

Parameternaam Waarden Beschrijving
noise model, seed Hiermee schakelt u de simulatie van het ruismodel in
model ideal, harmony, aria-1 Hiermee geeft u het ruismodel voor de target hardware op.
  • ideal - Er wordt geen ruis in het circuit geïntroduceerd. Dit is hetzelfde als het niet inschakelen van de ruissimulatie.
  • harmony - Maakt gebruik van het ruismodel voor de IonQ Harmony-kwantumcomputer.
  • aria-1 - Maakt gebruik van het ruismodel voor de IonQ Aria kwantumcomputer.
seed Geheel getal tussen 1 en $2^{31}$ (2.147.483.648) Hiermee kunt u een seed-waarde opgeven voor pseudo-willekeurige ruis en shot-sampling, waardoor reproduceerbare ruisresultaten worden gemaakt. Als de parameter niet is opgegeven, wordt er een willekeurige seed waarde gemaakt.

Shot awareness

Ruismodelsimulatie is shot-aware; dat wil gezegd, het neemt metingen van de uitvoerstatus op basis van het aantal opgegeven opnamen. In Azure Quantum wordt de shots parameter verzonden bij de taak en is vereist voor harmony ruismodellen en aria-1 . Als er geen shot waarde is opgegeven, wordt een standaardwaarde van 1000 gebruikt. Als het ideal ruismodel wordt gebruikt, wordt de shots parameter genegeerd.

Qubitcapaciteit

Met het ideal ruismodel kunt u maximaal 29 qubits simuleren met de IonQ-kwantumsimulator, maar de hardwarespecifieke ruismodellen zijn beperkt tot de werkelijke qubitcapaciteit van de target hardware: 11 qubits voor het harmony ruismodel en 25 qubits voor het aria-1 ruismodel.

Simulatie van ruismodel inschakelen

In Azure Quantum kan simulatie van ruismodellen worden in- of uitgeschakeld voor taken die zijn ingediend met Q# of met Qiskit.

Als u simulatie van het ruismodel wilt inschakelen, voegt u een optionele parameter toe voor de target machine, bijvoorbeeld:


option_params = {
    "noise": {
        "model": "harmony",   # targets the Harmony quantum computer
        "seed" : 1000         # If seed isn't specified, a random value is used  
    }
}

Notitie

Als u ook de foutbeperking van IonQ gebruikt, kunnen deze parameters hier worden opgenomen, bijvoorbeeld:

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "harmony",
    "seed": 1000
    }
}

Zie Foutbeperking voor meer informatie.

Een taak uitvoeren met simulatie van het ruismodel

U kunt hetzelfde voorbeeldprogramma gebruiken dat eerder werd weergegeven in foutbeperking en de configuratie van het ruismodel toevoegen of vervangen in option_params;

option_params = {
    "error-mitigation": {
        "debias": True
    },
    "noise": {
    "model": "aria",
    "seed": 1000
    }
}

Geef vervolgens de optionele parameters door wanneer u de taak verzendt:

job = MyTarget.submit(MyProgram, "Experiment with noise model simulation", shots = 10, input_params = option_params)
job.get_results()

In Qiskit geeft u de optionele parameters door aan de target computerconfiguratie voordat u de taak verzendt:

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

Prijzen

Ga naar Prijzen voor Azure Quantum om het IonQ-factureringsplan te bekijken.

Limieten en quota

IonQ-quota worden bijgehouden op basis van de QPU-gebruikseenheid, die qubit-gate-shot (QGS) is. Het resourcegebruik wordt gecrediteerd op basis van uw account.

Elk kwantumprogramma bestaat uit $N$ logische poorten van een of meer qubits en wordt uitgevoerd voor een bepaald aantal opnamen. Het aantal gate-shots wordt berekend met de volgende formule:

$$ QGS = N · C $$

Hierbij

  • $N$ is het aantal verzonden poorten voor een of twee qubits
  • $C$ is het aantal aangevraagde executieschoten

Quota zijn gebaseerd op de selectie van plannen en kunnen worden verhoogd met een ondersteuningsticket. Als u uw huidige limieten en quota wilt zien, gaat u naar de blade Tegoeden en quota en selecteert u het tabblad Quota van uw werkruimte op de Azure Portal. Zie Azure Quantum-quota voor meer informatie.

Notitie

Als u een Azure Quantum-tegoedabonnement gebruikt en niet een factureringsplan, worden de quotagegevens toegewezen aan uw toegewezen tegoeden. In dat geval vermeldt het quotum het totale aantal tegoeden dat u hebt ontvangen.

IonQ-status

Zie ionQ-statuspagina voor meer informatie over vertragingen bij het verwerken van ionQ QPU-taken.

IonQ best practices en connectiviteitsgrafiek

Zie IonQ Best practices (ionq.com) voor aanbevolen procedures voor de IonQ QPU.