Delen via


IonQ-provider

Belangrijk

IonQ heeft zijn Harmony-2 kwantumcomputer met ingang van 1 september 2024 buiten gebruik gesteld.

Tip

Wanneer u een Azure Quantum-werkruimte maakt, krijgt u automatisch gratis Azure Quantum-tegoed van USD500 voor elke kwantumhardwareprovider. U kunt het Azure Quantum-tegoed gebruiken om uw eerste kwantumprogramma's naar echte kwantumhardware te verzenden.

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

  • Uitgever: IonQ
  • Provider-id: ionq

De volgende targets zijn beschikbaar via deze provider:

Target naam Target-id Aantal qubits Beschrijving
Kwantumsimulator ionq.simulator 29 qubits IonQ's cloudgebaseerde ge idealiseerde simulator. Gratis.
IonQ Aria 1 ionq.qpu.aria-1 25 qubits IonQ's Aria gevangen-ion kwantumcomputer.
IonQ Aria 2 ionq.qpu.aria-2 25 qubits IonQ's Aria gevangen-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 QIR Base profiel. Zie Profieltypen in Azure Quantum voor target meer informatie over dit target profiel en de beperkingen ervan.

Kwantumsimulator

Met GPU versnelde ge idealiseerde simulator die maximaal 29 qubits ondersteunt, met behulp van dezelfde set poorten IonQ op de kwantumhardware: een geweldige plek om voorbereidende taken uit te voeren voordat ze op een echte kwantumcomputer worden uitgevoerd.

  • Taaktype: Simulation
  • Gegevensindeling: ionq.circuit.v1
  • Target LEGITIMATIEBEWIJS: ionq.simulator
  • Target Uitvoeringsprofiel: QIR Base

IonQ Aria kwantumcomputer

IonQ Aria is het vlaggenschip van IonQ's gevangen-ion kwantumcomputers, met een dynamisch herconfigureerbaar systeem van 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
  • Target Id: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Target Uitvoeringsprofiel: QIR Base
Parameternaam Type Vereist Beschrijving
shots int Nee Aantal experimentele opnamen.

Systeemtijdsinstellingen

Meetcriterium Gemiddelde tijdsduur
T1 10-100 s
T2 1 s
Poort met één qubit 135 μs
Twee qubitpoorten 600 μs

Systeemkwaliteit

Operation Gemiddelde betrouwbaarheid
Poort met één qubit 99,95% (spam gecorrigeerd)
Twee qubitpoorten 99,6% (spam niet gecorrigeerd)
SPAM* 99.61%

* Statusvoorbereiding en -meting (SPAM): Met deze meting wordt bepaald hoe nauwkeurig een kwantumcomputer een qubit in de oorspronkelijke toestand kan instellen en vervolgens het resultaat aan het einde meet.

IonQ Aria is beschikbaar via een Azure Quantum Credits-abonnement en een afzonderlijk factureringsplan. Zie De 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 software-configureerbaar systeem van 32 qubits is IonQ Forte beschikbaar in Private Preview op Azure Quantum. Zie IonQ Forte (ionq.com) voor meer informatie.

Belangrijk

Debiasing is standaard ingeschakeld op 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
  • Target LEGITIMATIEBEWIJS: ionq.qpu.forte
  • Target Uitvoeringsprofiel: QIR Base
Parameternaam Type Vereist Beschrijving
shots int Nee Aantal experimentele opnamen.

Invoerindeling

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

IonQ's targets komen overeen met de QIR Base profile. Dit profiel kan geen kwantumbewerkingen uitvoeren waarvoor het gebruik van de resultaten van qubitmetingen is vereist om de programmastroom te beheren.

Uitvoerindeling

Wanneer u een kwantumprogramma naar de IonQ-simulator verzendt, wordt het histogram geretourneerd dat door de metingen is gemaakt. In de IonQ-simulator wordt geen steekproef genomen van de waarschijnlijkheidsverdeling die is gemaakt door een kwantumprogramma, maar wordt de verdeling geretourneerd die is geschaald naar het aantal opnamen. Dit is het meest duidelijk wanneer u één opnamecircuit verzendt. U ziet meerdere metingsresultaten 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

Hier vindt u aanvullende mogelijkheden die worden ondersteund door IonQ-hardware.

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

Gebruikers kunnen gebruikmaken van deze extra 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 vervolgens de resultaten samenvoegt terwijl de impact van hardwarefouten en qubitdecoherentie wordt beperkt. In tegenstelling tot kwantumfoutcorrectietechnieken is voor foutbeperking geen grote overhead van de poort en qubit vereist.

Debiasing is het proces van het maken van lichte variaties van een bepaald circuit dat identiek moet zijn op een ideale ruisloze machine, met behulp van technieken zoals verschillende qubittoewijzingen, gatedeposities en pulse-oplossingen, en vervolgens het uitvoeren van deze variaties.

Verscherping en gemiddelde zijn opties voor het samenvoegen van de resultaten van de variaties. Gemiddelden zijn evenzeer gebaseerd op alle variatieresultaten, terwijl Sharpening de onjuiste resultaten filtert en betrouwbaarder kan zijn voor bepaalde typen algoritmen.

Zie Debiasing en Sharpening voor meer informatie. Zie IonQ-prijzen voor foutbeperking.

Foutbeperking inschakelen

Notitie

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

In Azure Quantum kan foutbeperking worden ingeschakeld 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": "aria-1",
    "seed": 100
    }
}

Zie De simulatie van het ruismodel 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.aria-1")

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 indient:

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, die is ingeschakeld voor Aria- en Forte-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 mogelijk maakt bij het schrijven van een algoritme zonder dat u zich zorgen hoeft te maken over optimalisatie voor de hardware.

In sommige geavanceerde gebruiksscenario's wilt u echter mogelijk een circuit rechtstreeks op systeemeigen poorten definiëren om dichter bij de hardware te komen en optimalisatie te omzeilen. De systeemeigen gateset is de set kwantumpoorten die fysiek worden uitgevoerd in de kwantumprocessor en ze wijzen het circuit toe aan die als onderdeel van de uitvoering.

Zie Aan de slag met systeemeigen poorten (ionq.com) voor meer informatie.

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

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

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

Simulatie van ruismodel

Zelfs het beste van de huidige kwantumhardware heeft inherente ruis en als u de ruiskenmerken van uw target systeem kent, kunt u uw algoritmen verfijnen en een realistischere voorspelling krijgen van resultaten bij het uitvoeren van het circuit op hardware. IonQ biedt een simulatie van ruismodellen 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 hardwareruismodellen voor meer informatie.

Parameters voor ruismodel

Parameternaam Waarden Beschrijving
noise model, seed Maakt de simulatie van het ruismodel mogelijk
model ideal, aria-1 Hiermee geeft u het ruismodel voor de target hardware.
  • ideal - Er wordt geen ruis in het circuit geïntroduceerd. Dit is hetzelfde als het niet inschakelen van de ruissimulatie.
  • 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.

Schots bewustzijn

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

Qubitcapaciteit

Hoewel u met het ideal ruismodel maximaal 29 qubits kunt simuleren met de IonQ-kwantumsimulator, zijn de hardwarespecifieke ruismodellen beperkt tot de werkelijke qubitcapaciteit van de target hardware, wat 25 qubits voor het aria-1 ruismodel is.

Simulatie van ruismodellen inschakelen

In Azure Quantum kan ruismodelsimulatie worden ingeschakeld of uitgeschakeld voor taken die zijn ingediend met Q# of met Qiskit.

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


option_params = {
    "noise": {
        "model": "aria-1",   # targets the Aria 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": "aria-1",
    "seed": 1000
    }
}

Zie Foutbeperking voor meer informatie.

Een taak uitvoeren met ruismodelsimulatie

U kunt hetzelfde voorbeeldprogramma gebruiken dat eerder is 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 indient:

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

Prijzen

Als u een IonQ-factureringsplan wilt zien, gaat u naar de prijzen van Azure Quantum.

Limieten en quota

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

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 $$

waarbij geldt:

  • $N$ is het aantal verzonden poorten van één of twee qubits
  • $C$ is het aantal aangevraagde uitvoeringsopnamen

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 in Azure Portal. Zie Azure Quantum-quota voor meer informatie.

Notitie

Als u een Azure Quantum Credits-abonnement gebruikt en geen factureringsplan, worden de quotagegevens toegewezen aan uw toegewezen tegoed. In dat geval vermeldt het quotum het totale aantal tegoed dat u hebt ontvangen.

IonQ-status

Zie de pagina IonQ-status voor informatie over de vertraging van de QPU-taakverwerking van IonQ.

Best practices en connectiviteitsgrafiek voor IonQ

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