IonQ-Anbieters

Tipp

Erstbenutzer erhalten automatisch kostenlose Azure Quantum-Guthabenin Höhe von 500 USD für die Verwendung mit jedem teilnehmenden Quantenhardwareanbieter. Wenn Sie das gesamte Guthaben verbraucht haben und mehr benötigen, können Sie sich für das Azure Quantum Credits-Programm bewerben.

Die Quantencomputer von IonQ führen Berechnungen durch, indem sie die Hyperfein-Energiestatus von Ytterbium-Ionen mit Lasern bearbeiten. Die Atome sind die Qubits der Natur - jedes Qubit ist innerhalb und zwischen Programmen identisch. Logische Vorgänge können auch auf einem beliebigen Paar von Qubits ausgeführt werden, was komplexe Quantenprogramme ermöglicht, die nicht durch physikalische Konnektivität behindert werden. Sie möchten mehr erfahren? Lesen Sie den Überblick über die Ion-Quantencomputertechnik.

  • Herausgeber: IonQ
  • Anbieter-ID: ionq

Bei diesem Anbieter sind folgende targets Optionen verfügbar:

Zielname Ziel-ID Anzahl von Qubits Beschreibung
Quantensimulator ionq.simulator 29 Qubits Der cloudbasierte idealisierte Simulator von IonQ. Kostenlos.
IonQ Harmony ionq.qpu 11 Qubits Quantencomputer mit Ionenfalle von IonQ
IonQ Aria 1 ionq.qpu.aria-1 25 Qubits Aria-Quantencomputer mit Ionenfalle von IonQ
IonQ Aria 2 ionq.qpu.aria-2 25 Qubits Aria-Quantencomputer mit Ionenfalle von IonQ
IonQ Forte ionq.qpu.forte 32 Qubits IonQ's Forte Trapped-Ion Quantencomputer. Nur in der privaten Vorschau verfügbar.

IonQ's targets entsprechen einem No Control Flow Profil. Weitere Informationen zu diesem target Profil und seinen Einschränkungen finden Sie unter Grundlegendes zu target Profiltypen in Azure Quantum.

Quantensimulator

GPU-beschleunigter idealisierter Simulator, der bis zu 29 Qubits unterstützt und die gleichen Gates verwendet, die IonQ auf seiner Quanten-Hardware zur Verfügung stellt - ein großartiger Ort, um Jobs zu testen, bevor sie auf einem echten Quantencomputer ausgeführt werden.

  • Job-Typ: Simulation
  • Datenformat: ionq.circuit.v1
  • Ziel-ID: ionq.simulator
  • Zielausführungsprofil: No Control Flow

IonQ Harmony-Quantencomputer

IonQ Harmony ist ein Quantencomputer mit Ionenfalle und kann in der Software dynamisch neu konfiguriert werden, um bis zu 11 Qubits zu nutzen. Alle Qubits sind vollständig verbunden, d. h., Sie können ein Zwei-Qubit-Gate zwischen jedem Paar ausführen.

  • Job-Typ: Quantum Program
  • Datenformat: ionq.circuit.v1
  • Ziel-ID: ionq.qpu
  • Zielausführungsprofil: No Control Flow
Parametername type Erforderlich Beschreibung
shots INT Nein Anzahl experimenteller Aufnahmen. Standardwerte auf 500.

Systemzeitsteuerung

"Measure" Durchschnittliche Zeitdauer (μs)
T1 >10^7
T2 200.000
Einzel-Qubit-Gate 10
Zwei-Qubit-Gate 210
Auslesen 100
Zurücksetzen registrieren 25
Kohärenz-Zeit/Gate-Dauer 1667

Systemgenauigkeit

Vorgang Durchschnittliche Treue
Einzel-Qubit-Gate 99.35% (SPAM korrigiert)
Zwei-Qubit-Gate 96,02% (SPAM nicht korrigiert)
SPAM* 99,3 - 99,8%
Geometrischer Op-Mittelwert 98,34%

Zustandsvorbereitung und Messung (State Preparation and Measurement, SPAM): Diese Messung gibt an, wie genau ein Quantencomputer ein Qubit in seinen ursprünglichen Zustand versetzen und am Ende das Ergebnis messen kann.

IonQ Aria-Quantencomputer

IonQ Aria ist das Flaggschiff der Trapped-Ion-Quantencomputer von IonQ mit einem dynamisch rekonfigurierbaren 25-Qubit-System. Weitere Informationen finden Sie unter IonQ Aria (ionq.com).

Wichtig

Debiasing ist auf Aria-Systemen standardmäßig aktiviert, und übermittelte Aufträge unterliegen debiasingbasierten Preisen. Weitere Informationen zum Debiasing und zum Deaktivieren/Aktivieren des Diensts finden Sie unter Fehlerminderung.

  • Auftragstyp: Quantum Program
  • Datenformat: ionq.circuit.v1
  • Ziel-ID: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Zielausführungsprofil: No Control Flow
Parametername type Erforderlich Beschreibung
shots INT Nein Anzahl experimenteller Aufnahmen.

Systemzeitsteuerung

"Measure" Durchschnittliche Dauer
T1 10-100 s
T2 1 s
Einzel-Qubit-Gate 135 μs
Zwei-Qubit-Gate 600 μs

Systemgenauigkeit

Vorgang Durchschnittliche Treue
Einzel-Qubit-Gate 99,95% (SPAM korrigiert)
Zwei-Qubit-Gate 99,6% (nicht SPAM korrigiert)
SPAM* 99.61%

Zustandsvorbereitung und Messung (State Preparation and Measurement, SPAM): Diese Messung gibt an, wie genau ein Quantencomputer ein Qubit in seinen ursprünglichen Zustand versetzen und am Ende das Ergebnis messen kann.

IonQ Aria ist über Azure Quantum-Gutschriftenpläne und einen separaten Abrechnungsplan verfügbar. Weitere Informationen finden Sie unter Azure Quantum-Preise.

IonQ Forte-Quantencomputer

IonQ Forte ist der leistungsstärkste, kommerziell verfügbare Trapped-Ion-Quantencomputer von IonQ. Mit einem softwarekonfigurierbaren 32-Qubit-System ist IonQ Forte in der privaten Vorschau in Azure Quantum verfügbar. Weitere Informationen finden Sie unter IonQ Forte (ionq.com).

Wichtig

Debiasing ist im Forte-System standardmäßig aktiviert, und übermittelte Aufträge unterliegen debiasingbasierten Preisen. Weitere Informationen zum Debiasing und zum Deaktivieren/Aktivieren des Diensts finden Sie unter Fehlerminderung.

  • Auftragstyp: Quantum Program
  • Datenformat: ionq.circuit.v1
  • Ziel-ID: ionq.qpu.forte
  • Zielausführungsprofil: No Control Flow
Parametername type Erforderlich Beschreibung
shots INT Nein Anzahl experimenteller Aufnahmen.

Eingabeformat

In Q# ist die Ausgabe einer Quantenmessung ein Wert vom Typ Result, der nur die Werte Zero und Oneannehmen kann. Wenn Sie einen Q#-Vorgang definieren, kann er nur an IonQ-Hardware übermittelt werden, wenn der Rückgabetyp eine Sammlung von Results ist, d. h. wenn die Ausgabe des Vorgangs das Ergebnis einer Quantenmessung ist. Der Grund dafür ist, dass IonQ ein Histogramm aus den zurückgegebenen Werten erstellt, sodass der Rückgabetyp auf Result beschränkt wird, um die Erstellung dieses Histogramms zu vereinfachen.

IonQ entspricht targets dem No Control Flow profile. Dieses Profil kann keine Quantenvorgänge ausführen, die die Verwendung der Ergebnisse aus Qubitmessungen erfordern, um den Programmfluss zu steuern.

Hinweis

Derzeit können Sie keine Quantenprogramme übermitteln, die Vorgänge auf Qubits anwenden, die in No Control Flowtargetsgemessen wurden, auch wenn Sie die Ergebnisse nicht zur Steuerung des Programmablaufs verwenden. Das heißt, No Control Flowtargets keine Mid-Circuit-Messungen zulassen.

Beispielsweise kann der folgende Code nicht auf einem No Control Flowtargetausgeführt werden:

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

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

Ausgabeformat

Wenn Sie ein Quantenprogramm an den IonQ-Simulator übermitteln, wird das histogramm zurückgegeben, das von den Messungen erstellt wurde. Der IonQ-Simulator erfasst nicht die Wahrscheinlichkeitsverteilung, die von einem Quantenprogramm erstellt wurde, sondern gibt stattdessen die Verteilung zurück, die auf die Anzahl der Aufnahmen skaliert ist. Dies wird am deutlichsten, wenn Sie eine einzelne Aufnahmeschaltung übermitteln. Sie sehen mehrere Messergebnisse im Histogramm für einen Schuss. Dieses Verhalten ist dem IonQ-Simulator inhärent, während IonQ QPU das Programm tatsächlich ausführt und die Ergebnisse aggregiert.

Weitere Funktionen

Weitere Funktionen, die von IonQ-Hardware unterstützt werden, sind hier aufgeführt.

Funktion BESCHREIBUNG
Fehlerbehebung Verwenden von Debiasing, um Rauschen zu minimieren und die algorithmische Leistung auf IonQ-Hardware zu maximieren
Native Gates-Unterstützung Definieren und Ausführen von Leitungen direkt auf ionQ-hardwarenativen Gates
Rauschmodellsimulation Simulieren Sie das Rauschprofil, auf das Schaltungen stoßen, wenn Sie sie auf unterschiedlicher IonQ-Hardware ausführen.

Benutzer können diese zusätzlichen Funktionen über Passthroughparameter in den Azure Quantum Q#- und Qiskit-Anbietern nutzen.

Fehlerbehebung

IonQ bietet die Option zum Aktivieren der Quantenfehlerminderung beim Übermitteln von Aufträgen an IonQ-Hardware. Bei der Fehlerminderung handelt es sich um einen Prozess auf Compilerebene, der mehrere symmetrische Variationen einer Verbindung ausführt und dann die Ergebnisse aggregiert, während die Auswirkungen von Hardwarefehlern und Qubitdekohärenz abgemildert werden. Im Gegensatz zur Quantenfehlerkorrektur erfordert die Fehlerminderung keinen großen Gate- und Qubit-Overhead.

Debiasing ist der Prozess, bei dem geringfügige Variationen einer bestimmten Schaltung erstellt werden, die auf einer idealen geräuschlosen Maschine identisch sein sollten , indem Techniken wie verschiedene Qubitzuweisungen, Gatezerlegungen und Impulslösungen verwendet werden, und dann diese Variationen ausgeführt werden.

Schärfen und Mittelwert sind Optionen zum Aggregieren der Ergebnisse der Variationen. Der Mittelwert basiert gleichermaßen auf allen Variationsergebnissen, während das Schärfen die fehlerhaften Ergebnisse herausfiltert und für bestimmte Arten von Algorithmen zuverlässiger sein kann.

Weitere Informationen finden Sie unter Debiasing and Sharpening. Informationen zu Den Preisen zur Fehlerminderung finden Sie unter IonQ – Preise.

Aktivieren der Fehlerminderung

Hinweis

Debiasing ist auf Aria- und Forte-Systemen standardmäßig aktiviert und auf Harmony-Systemen standardmäßig deaktiviert.

In Azure Quantum kann die Fehlerminderung für Aufträge aktiviert oder deaktiviert werden, die mit Q# oder mit Qiskit übermittelt werden.

Um die Fehlerminderung zu aktivieren, fügen Sie einen optionalen Parameter für den target Computer hinzu:


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

Um die Fehlerminderung zu deaktivieren, legen Sie den Parameter auf fest False:


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

Hinweis

Wenn Sie auch die Rauschmodellsimulation von IonQ verwenden, können diese Parameter hier eingeschlossen werden, z. B.:

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

Weitere Informationen finden Sie unter Rauschmodellsimulation.

Ausführen eines Auftrags in Azure Quantum mit Fehlerminderung

In diesem Beispiel wird ein einfacher Zufallszahlengenerator verwendet.

Importieren Sie zunächst die erforderlichen Pakete, und initiieren Sie das Basisprofil:

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

Definieren Sie als Nächstes die -Funktion.

%%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()")

Stellen Sie eine Verbindung mit Azure Quantum her, wählen Sie den target Computer aus, und konfigurieren Sie die Rauschparameter für den Emulator:

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

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

Angeben der error-mitigation Konfiguration


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

Übergeben Sie die Konfiguration zur Fehlerminderung, wenn Sie den Auftrag übermitteln:

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

In Qiskit übergeben Sie die optionalen Parameter an die target Computerkonfiguration, bevor Sie den Auftrag übermitteln:

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

Hinweis

Wenn Sie den error-mitigation Parameter nicht übergeben, verwendet der Computer seine target Standardeinstellung: für Aria- und Forte-Systeme aktiviert und für Harmony-Systeme deaktiviert .

Unterstützung und Nutzung nativer Gatter

IonQ ermöglicht standardmäßig die Angabe einer Quantenschaltung mithilfe einer abstrakten Gruppe von Quantengattern (qis), was wiederum Flexibilität und Portierbarkeit beim Schreiben eines Algorithmus ermöglicht, ohne sich um die Optimierung für die Hardware kümmern zu müssen.

In einigen komplexeren Anwendungsfällen empfiehlt es sich jedoch gegebenenfalls, eine Schaltung direkt für native Gatter zu definieren, um näher an der Hardware zu sein und die Optimierung zu umgehen. Bei den nativen Gattern handelt es sich um die Gruppe von Quantengattern, die im Quantenprozessor physisch ausgeführt werden, und die Schaltung wird ihnen im Rahmen der Ausführung zugeordnet.

Weitere Informationen finden Sie auf „ionq.com“ unter Erste Schritte mit nativen Gattern.

Wenn Sie beim Übermitteln von Qiskit-Aufträgen an Azure Quantum die nativen Gatter verwenden möchten, müssen Sie beim Initialisieren des Back-Ends den Parameter gateset angeben, wie im folgenden Beispiel zu sehen:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Parametername type Erforderlich BESCHREIBUNG
gateset Zeichenfolge Nein Gibt die Gruppe von Gattern an, die zum Definieren einer Schaltung verwendet werden. Der Wert qis entspricht den abstrakten Gattern (Standardverhalten). native entspricht den nativen Gattern der IonQ-Hardware.

Weitere Informationen zu Qiskit-Aufträgen finden Sie unter Übermitteln einer Verbindung mit Qiskit.

Rauschmodellsimulation

Selbst das Beste der heutigen Quantenhardware hat inhärentes Rauschen, und die Kenntnis der Rauscheigenschaften Ihres target Systems kann Ihnen helfen, Ihre Algorithmen zu verfeinern und eine realistischere Vorhersage der Ergebnisse zu erhalten, wenn die Schaltung auf Hardware ausgeführt wird. IonQ bietet eine Rauschmodellsimulation , die Rauschen mithilfe eines hardwarespezifischen "Rauschfingerabdrucks" in die target Leitung einführt. Weitere Informationen finden Sie unter Erste Schritte mit der Simulation des Hardwarerauschmodells.

Parameter des Rauschmodells

Parametername Werte BESCHREIBUNG
noise model, seed Ermöglicht die Rauschmodellsimulation
model ideal, harmony, aria-1 Gibt das Rauschmodell für die Hardware an target .
  • ideal - Es wird kein Rauschen in die Leitung eingebracht. Dies entspricht dem Nicht-Aktivieren der Rauschsimulation.
  • harmony – Verwendet das Rauschmodell für den IonQ Harmony-Quantencomputer.
  • aria-1 – Verwendet das Rauschmodell für den IonQ Aria-Quantencomputer.
seed Ganze Zahl zwischen 1 und $2^{31}$ (2.147.483.648) Ermöglicht ihnen das Angeben eines Ausgangswerts für pseudo-zufälliges Rauschen und Stichprobenentnahmen, wodurch reproduzierbare verrauschte Ergebnisse erzeugt werden. Wenn der Parameter nicht angegeben ist, wird ein zufälliger seed Wert erstellt.

Schusserkennung

Die Rauschmodellsimulation ist schussfähig; Das heißt, es nimmt Messungen aus dem Ausgabezustand basierend auf der Anzahl der bereitgestellten Aufnahmen ab. In Azure Quantum wird der shots Parameter mit dem Auftrag übermittelt und ist für harmony Rauschmodelle und aria-1 erforderlich. Wenn kein shot Wert angegeben wird, wird der Standardwert verwendet 1000 . Wenn das ideal Rauschmodell verwendet wird, wird der shots Parameter ignoriert.

Qubit-Kapazität

Während das ideal Rauschmodell es Ihnen ermöglicht, bis zu 29 Qubits mit dem IonQ-Quantensimulator zu simulieren, sind die hardwarespezifischen Rauschmodelle auf die tatsächliche Qubitkapazität der target Hardware beschränkt: 11 Qubits für das harmony Rauschmodell und 25 Qubits für das aria-1 Rauschmodell.

Aktivieren der Rauschmodellsimulation

In Azure Quantum kann die Rauschmodellsimulation für Aufträge aktiviert oder deaktiviert werden, die mit Q# oder mit Qiskit übermittelt werden.

Um die Rauschmodellsimulation zu aktivieren, fügen Sie einen optionalen Parameter für den target Computer hinzu, z. B.:


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

Hinweis

Wenn Sie auch die Fehlerminderung von IonQ verwenden, können diese Parameter hier eingeschlossen werden, z. B.:

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

Weitere Informationen finden Sie unter Fehlerminderung.

Ausführen eines Auftrags mit Rauschmodellsimulation

Sie können dasselbe Beispielprogramm verwenden, das zuvor in der Fehlerminderung gezeigt wurde, und die Konfiguration des Rauschmodells in option_paramshinzufügen oder ersetzen.

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

Übergeben Sie dann die optionalen Parameter, wenn Sie den Auftrag übermitteln:

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

In Qiskit übergeben Sie die optionalen Parameter an die target Computerkonfiguration, bevor Sie den Auftrag übermitteln:

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

Preise

Den Abrechnungsplan für IonQ finden Sie unter Azure Quantum-Preise.

Grenzen und Kontingente

IonQ-Kontingente werden basierend auf der QPU-Nutzungseinheit Qubit-Gate-Shot (QGS) nachverfolgt. Die Ressourcennutzung wird über Ihr Konto abgerechnet.

Jedes Quantenprogramm besteht aus $N$ logischen Quantengattern (Gates) mit mindestens einem Qubit und wird für eine bestimmte Anzahl von Aufnahmen (Shots) ausgeführt. Die Anzahl von Gate-Shots wird wie folgt berechnet:

$$ QGS = N · C $$

Dabei gilt:

  • $N$ ist die Anzahl der Ein- oder Zwei-Qubit-Gatter.
  • $C$ ist die Anzahl der angeforderten Ausführungsaufnahmen

Kontingente basieren auf dem ausgewählten Plan und können per Supportticket erhöht werden. Navigieren Sie zum Anzeigen Ihrer aktuellen Grenzwerte und Kontingente zum Blatt Gutschriften und Kontingente, und wählen Sie die Registerkarte Kontingente Ihres Arbeitsbereichs im Azure-Portal aus. Weitere Informationen finden Sie unter Azure Quantum-Kontingente.

Hinweis

Wenn Sie einen Azure Quantum-Guthabenplan und keinen Abrechnungsplan verwenden, werden die Kontingentinformationen Ihrem zugeteilten Guthaben zugeordnet. In diesem Fall wird für das Kontingent das Guthaben aufgeführt, das Sie insgesamt erhalten haben.

IonQ-status

Informationen zu Verzögerungen bei der Verarbeitung von IonQ-QPU-Aufträgen finden Sie auf der Seite ionQ status.

Bewährte IonQ-Methoden und Konnektivitätsgraph

Informationen zu den empfohlenen bewährten Methoden für die IonQ-QPU finden Sie auf „ionq.com“ unter Bewährte Methoden für IonQ.