IonQ-Anbieters

Wichtig

IonQ hat seinen Harmony-2-Quantencomputer ab dem 1. September 2024 eingestellt.

Tipp

Wenn Sie einen Azure Quantum-Arbeitsbereich erstellen, erhalten Sie automatisch USD500 kostenlose Azure Quantum Credits für jeden Quantenhardwareanbieter. Sie können azure Quantum Credits verwenden, um Ihre ersten Quantenprogramme an echte Quantenhardware zu übermitteln.

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

Die folgenden targets Optionen stehen von diesem Anbieter zur Verfügung:

Target-Name Target ID Anzahl von Qubits Beschreibung
Quantensimulator ionq.simulator 29 Qubits Der cloudbasierte idealisierte Simulator von IonQ. Dafür fallen keine Kosten an.
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 quantum computer. Nur in der privaten Vorschau verfügbar.

IonQ entspricht targets einem QIR Base Profil. Weitere Informationen zu diesem target Profil und seinen Einschränkungen finden Sie unter Grundlegendes target zu 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.

  • Auftragstyp: Simulation
  • Datenformat: ionq.circuit.v1
  • Target ID: ionq.simulator
  • Target Ausführungsprofil: QIR Base

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 standardmäßig auf Aria-Systemen aktiviert, und übermittelte Aufträge unterliegen debiasing-basierten Preisen. Weitere Informationen zu Debiasing und zum Deaktivieren/Aktivieren des Diensts finden Sie unter Fehlerminderung.

  • Auftragstyp: Quantum Program
  • Datenformat: ionq.circuit.v1
  • Target ID: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Target Ausführungsprofil: QIR Base
Parametername Typ Erforderlich Beschreibung
shots int No Anzahl experimenteller Ausführungen.

Systemzeitsteuerung

Measure Durchschnittliche Zeitdauer
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 durch 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 erhältliche Trapped-Ion-Quantencomputer von IonQ. Mit einem konfigurierbaren 32-Qubit-System steht IonQ Forte in der privaten Vorschau auf Azure Quantum zur Verfügung. Weitere Informationen finden Sie unter IonQ Forte (ionq.com).

Wichtig

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

  • Auftragstyp: Quantum Program
  • Datenformat: ionq.circuit.v1
  • Target ID: ionq.qpu.forte
  • Target Ausführungsprofil: QIR Base
Parametername Typ Erforderlich Beschreibung
shots int No Anzahl experimenteller Ausführungen.

Eingabeformat

In Q# ist die Ausgabe einer Quantenmessung ein Wert vom Typ Result, der nur die Werte Zero Oneund . 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 Result auf die Vereinfachung der Erstellung dieses Histogramms beschränkt wird.

IonQ entspricht targets dem QIR Base profile. Dieses Profil kann keine Quantenvorgänge ausführen, die die Verwendung der Ergebnisse aus Qubit-Messungen erfordern, um den Programmfluss zu steuern.

Ausgabeformat

Wenn Sie ein Quantenprogramm an den IonQ-Simulator übermitteln, gibt es das histogramm zurück, das von den Messungen erstellt wurde. Der IonQ-Simulator probieren nicht die Wahrscheinlichkeitsverteilung aus, die von einem Quantenprogramm erstellt wurde, sondern gibt stattdessen die Verteilung zurück, die auf die Anzahl der Aufnahmen skaliert wurde. Dies ist am deutlichsten, wenn Sie einen einzelnen Schusskreis ü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
Fehlerminderung Verwenden von Debiasing, um Rauschen zu minimieren und algorithmische Leistung auf IonQ-Hardware zu maximieren
Unterstützung von nativen Toren Definieren und Ausführen von Schaltkreisen direkt auf IonQ Hardware-native 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 Pass-Through-Parameter in den Azure Quantum Q#- und Qiskit-Anbietern nutzen.

Fehlerminderung

IonQ bietet die Möglichkeit, die Quantenfehlerminderung beim Übermitteln von Aufträgen an ionQ-Hardware zu ermöglichen. Bei der Fehlerminderung handelt es sich um einen Prozess auf Compilerebene, der mehrere symmetrische Variationen eines Schaltkreises ausführt und ausführt, und aggregiert dann die Ergebnisse, während die Auswirkungen von Hardwarefehlern und qubit-Decoherence reduziert werden. Im Gegensatz zu Quantenfehlerkorrekturtechniken erfordert die Fehlerminderung keinen großen Gate- und Qubit-Overhead.

Debiasing ist der Prozess der Erstellung leichter Variationen eines bestimmten Schaltkreises, die auf einer idealen geräuschlosen Maschine identisch sein sollten , unter Verwendung von Techniken wie verschiedenen Qubit-Zuordnungen, Torenzersetzungen und Impulslösungen und anschließender Ausführung dieser Variationen.

Schärfen und Averaging sind Optionen zum Aggregieren der Ergebnisse der Variationen. Averaging 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 und Schärfen. Informationen zum Preis zur Fehlerminderung finden Sie unter IonQ-Preise.

Aktivieren der Fehlerminderung

Hinweis

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

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

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


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

Hinweis

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

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "aria-1",
    "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
import Std.Measurement.*;
import Std.Arrays.*;
import Std.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.aria-1")

Angeben der error-mitigation Konfiguration


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

Übergeben Sie die Konfiguration zur Fehlerminderung beim Übermitteln des Auftrags:

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 Maschinenkonfiguration, 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 target Computer seine Standardeinstellung, die für Aria- und Forte-Systeme aktiviert ist.

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.aria-1", gateset="native")
Parametername Typ Erforderlich Beschreibung
gateset Zeichenfolge No 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 eines Schaltkreises mit Qiskit.

Rauschmodellsimulation

Selbst das Beste der heutigen Quantenhardware hat inhärente Rauschen, und das Wissen über die Rauscheigenschaften Ihres target Systems kann Ihnen helfen, Ihre Algorithmen zu verfeinern und eine realistischere Vorhersage der Ergebnisse zu erzielen, wenn die Schaltung auf der Hardware ausgeführt wird. IonQ bietet eine Rauschmodellsimulation , die Rauschen mithilfe eines für die target Hardware spezifischen "Rauschabdrucks" in den Schaltkreis einführt. Weitere Informationen finden Sie unter Get Started with Hardware Noise Model Simulation.

Rauschmodellparameter

Parametername Werte Beschreibung
noise model, seed Aktiviert die Rauschmodellsimulation
model ideal, aria-1 Gibt das Rauschmodell für die target Hardware an.
  • ideal - Es wird kein Rauschen in den Schaltkreis eingeführt. Dies ist identisch mit der Nicht-Aktivierung der Rauschsimulation.
  • 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 Es Ihnen, einen Ausgangswert für pseudo-zufälliges Rauschen und Shot-Sampling anzugeben, wodurch reproduzierbare laute Ergebnisse erstellt werden. Wenn der Parameter nicht angegeben ist, wird ein zufälliger seed Wert erstellt.

Schussbewusstsein

Die Rauschmodellsimulation ist schussfähig, d. h., sie proben Messungen aus dem Ausgabezustand basierend auf der Anzahl der bereitgestellten Aufnahmen. In Azure Quantum wird der shots Parameter mit dem Auftrag übermittelt und ist für aria-1 Rauschmodelle erforderlich. Wenn kein shot Wert angegeben ist, wird ein Standardwert 1000 verwendet. 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 Qubit-Kapazität der target Hardware beschränkt, was 25 Qubits für das aria-1 Rauschmodell ist.

Aktivieren der Rauschmodellsimulation

Auf Azure Quantum können Rauschmodellsimulationen 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": "aria-1",   # targets the Aria 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": "aria-1",
    "seed": 1000
    }
}

Weitere Informationen finden Sie unter Fehlerminderung.

Ausführen eines Auftrags mit Rauschmodellsimulation

Sie können das gleiche Beispielprogramm verwenden, das zuvor in der Fehlerminderung gezeigt wurde, und die Rauschmodellkonfiguration hinzufügen oder ersetzen in option_params;

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 Maschinenkonfiguration, 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 Folgendes:

  • $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 IonQ QPU Auftragsverarbeitungsverzögerungen finden Sie auf der IonQ-Statusseite.

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.