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 One
kan nemen. Wanneer u een Q#-bewerking definieert, kan deze alleen worden verzonden naar IonQ-hardware als het retourtype een verzameling van Result
s 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.
|
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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor