Dostawca IonQ

Porada

Użytkownicy po raz pierwszy automatycznie otrzymują bezpłatne środki w wysokości 500 USD (USD)Środki na korzystanie z usługi Azure Quantum z każdym uczestniczącym dostawcą sprzętu kwantowego. Jeśli korzystasz ze wszystkich środków i potrzebujesz więcej, możesz zastosować się do programu Środków na korzystanie z usługi Azure Quantum.

Komputery kwantowe IonQ wykonują obliczenia, manipulując stanami energii hiperfinii jonów Ytterbium laserami. Atomy są kubitami natury — każdy kubit jest identyczny w obrębie i między programami. Operacje logiczne można również wykonywać na dowolnej parze kubitów, umożliwiając złożone programy kwantowe niezakłócone przez łączność fizyczną. Chcesz dowiedzieć się więcej? Przeczytaj omówienie uwięzionej technologii komputerowej kwantowej jonów IonQ.

  • Wydawca: IonQ
  • Identyfikator dostawcy: ionq

targets Następujące informacje są dostępne u tego dostawcy:

Nazwa docelowa Identyfikator docelowy Liczba kubitów Opis
Symulator kwantowy ionq.simulator 29 kubitów Oparty na chmurze symulator IonQ z idealizacją. Bezpłatnie.
IonQ Harmony ionq.qpu 11 kubitów Komputer kwantowy uwięzionego jonu IonQ.
IonQ Aria 1 ionq.qpu.aria-1 25 kubitów Aria uwięziony-jonowy komputer kwantowy IonQ.
IonQ Aria 2 ionq.qpu.aria-2 25 kubitów Aria uwięziony-jonowy komputer kwantowy IonQ.
IonQ Forte ionq.qpu.forte 32 kubity Komputer kwantowy forte uwięzionego jonu IonQ. Dostępne tylko w prywatnej wersji zapoznawczej.

IonQ targets odpowiada profilowi No Control Flow . Aby uzyskać więcej informacji na temat tego target profilu i jego ograniczeń, zobacz Opis target typów profilów w usłudze Azure Quantum.

Symulator kwantowy

Przyspieszony przez procesor GPU symulator idealizowany obsługujący maksymalnie 29 kubitów przy użyciu tego samego zestawu bram IonQ zapewnia sprzęt kwantowy — doskonałe miejsce do wstępnego wykonywania zadań przed uruchomieniem ich na rzeczywistym komputerze kwantowym.

  • Typ zadania: Simulation
  • Format danych: ionq.circuit.v1
  • Identyfikator docelowy: ionq.simulator
  • Docelowy profil wykonywania: No Control Flow

Komputer kwantowy IonQ Harmony

IonQ Harmony jest uwięzionym komputerem kwantowym jonowym i dynamicznie można go ponownie skonfigurować w oprogramowaniu, aby używać maksymalnie 11 kubitów. Wszystkie kubity są w pełni połączone, co oznacza, że można uruchomić bramę dwubitową między dowolną parą.

  • Typ zadania: Quantum Program
  • Format danych: ionq.circuit.v1
  • Identyfikator docelowy: ionq.qpu
  • Docelowy profil wykonywania: No Control Flow
Nazwa parametru Typ Wymagane Opis
shots int Nie Liczba zdjęć eksperymentalnych. Wartość domyślna to 500.

Chronometraż systemu

Measure Średni czas trwania (μs)
T1 >10^7
T2 200,000
Bramka z pojedynczym kubitem 10
Bramka z dwoma kubitami 210
Odczyt 100
Rejestrowanie resetowania 25
Czas spójności/czas trwania bramy 1667

Wierność systemu

Operacja Średnia wierność
Bramka z pojedynczym kubitem 99,35% (POPRAWIONO SPAM)
Bramka z dwoma kubitami 96,02% (nie poprawiono spamu)
SPAM* 99.3 - 99.8%
Geometryczna średnia op 98.34%

* Przygotowanie stanu i pomiar (SPAM): Ta miara określa, jak dokładnie komputer kwantowy może ustawić kubit do stanu początkowego, a następnie zmierzyć wynik na końcu.

Komputer kwantowy IonQ Aria

IonQ Aria jest flagą komputerów kwantowych uwięzionych jonów IonQ, z 25-kubitowym dynamicznie rekonfigurowalnym systemem. Aby uzyskać więcej informacji, zobacz IonQ Aria (ionq.com).

Ważne

Debiasing jest domyślnie włączony w systemach Aria, a przesłane zadania podlegają odchyleniu cen. Aby uzyskać więcej informacji na temat debiasingu i sposobu wyłączania/włączania usługi, zobacz Ograniczanie ryzyka błędów.

  • Typ zadania: Quantum Program
  • Format danych: ionq.circuit.v1
  • Identyfikator docelowy: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Docelowy profil wykonywania: No Control Flow
Nazwa parametru Typ Wymagane Opis
shots int Nie Liczba zdjęć eksperymentalnych.

Chronometraż systemu

Measure Średni czas trwania
T1 10–100 s
T2 1 s
Bramka z pojedynczym kubitem 135 μs
Bramka z dwoma kubitami 600 μs

Wierność systemu

Operacja Średnia wierność
Bramka z pojedynczym kubitem 99,95% (POPRAWIONO SPAM)
Bramka z dwoma kubitami 99,6% (nie poprawiono spamu)
SPAM* 99.61%

* Przygotowanie stanu i pomiar (SPAM): Ta miara określa, jak dokładnie komputer kwantowy może ustawić kubit do stanu początkowego, a następnie zmierzyć wynik na końcu.

IonQ Aria jest dostępna za pośrednictwem planu środków na korzystanie z usługi Azure Quantum i oddzielnego planu rozliczeniowego. Aby uzyskać więcej informacji, zobacz Cennik usługi Azure Quantum.

Komputer kwantowy IonQ Forte

IonQ Forte jest najlepiej wydajnym komputerem kwantowym IonQ dostępnym komercyjnie. W przypadku 32-kubitowego systemu konfigurowalnego programowo IonQ Forte jest dostępny w prywatnej wersji zapoznawczej w usłudze Azure Quantum. Aby uzyskać więcej informacji, zobacz IonQ Forte (ionq.com).

Ważne

Odchylenie jest domyślnie włączone w systemie Forte, a przesłane zadania podlegają cenom opartym na uprzedzeniu. Aby uzyskać więcej informacji na temat debiasingu i sposobu wyłączania/włączania usługi, zobacz Ograniczanie ryzyka błędów.

  • Typ zadania: Quantum Program
  • Format danych: ionq.circuit.v1
  • Identyfikator docelowy: ionq.qpu.forte
  • Docelowy profil wykonywania: No Control Flow
Nazwa parametru Typ Wymagane Opis
shots int Nie Liczba zdjęć eksperymentalnych.

Format danych wejściowych

W języku Q# dane wyjściowe miary kwantowej to wartość typu Result, która może przyjmować tylko wartości Zero i One. Podczas definiowania operacji języka Q# można ją przesłać tylko do sprzętu IonQ, jeśli typ zwracany jest kolekcją Results, czyli jeśli dane wyjściowe operacji są wynikiem pomiaru kwantowego. Przyczyną jest to, że IonQ tworzy histogram z zwracanych wartości, więc ogranicza typ powrotu, aby uprościć Result tworzenie tego histogramu.

IonQ targets odpowiada elementowi No Control Flow profile. Ten profil nie może uruchamiać operacji kwantowych, które wymagają użycia wyników z pomiarów kubitów w celu kontrolowania przepływu programu.

Uwaga

Obecnie nie można przesyłać programów kwantowych, które stosują operacje na kubitach, które zostały zmierzone w No Control Flowtargetselemecie , nawet jeśli nie używasz wyników do kontrolowania przepływu programu. Oznacza to, No Control Flowtargets że nie zezwalaj na pomiary obwodu środkowego.

Na przykład nie można uruchomić następującego kodu w obiekcie No Control Flowtarget:

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

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

Format danych wyjściowych

Podczas przesyłania programu kwantowego do symulatora IonQ zwraca histogram utworzony przez miary. Symulator IonQ nie próbkuje rozkładu prawdopodobieństwa utworzonego przez program kwantowy, ale zamiast tego zwraca rozkład skalowany do liczby zdjęć. Jest to najbardziej widoczne podczas przesyłania pojedynczego obwodu strzału. Zobaczysz wiele wyników pomiaru w histogramie dla jednego strzału. To zachowanie jest związane z symulatorem IonQ, podczas gdy IonQ QPU faktycznie uruchamia program i agreguje wyniki.

Dodatkowe możliwości

Dodatkowe możliwości obsługiwane przez sprzęt IonQ są wymienione tutaj.

Możliwość Opis
Ograniczanie ryzyka błędów Używanie debiasingu w celu zminimalizowania szumu i zmaksymalizowania wydajności algorytmicznej na sprzęcie IonQ
Obsługa bram natywnych Definiowanie i wykonywanie obwodów bezpośrednio na bramach natywnych sprzętowo IonQ
Symulacja modelu szumu Symuluj profil szumu napotkany podczas uruchamiania ich na innym sprzęcie IonQ.

Użytkownicy mogą korzystać z tych dodatkowych funkcji za pośrednictwem parametrów przekazywania w usługach Azure Quantum Q# i Qiskit.

Ograniczanie ryzyka błędów

Usługa IonQ umożliwia włączenie ograniczania błędów kwantowych podczas przesyłania zadań do sprzętu IonQ. Ograniczenie ryzyka błędów to proces na poziomie kompilatora, który uruchamia i wykonuje wiele symetrycznych odmian obwodu, a następnie agreguje wyniki, jednocześnie ograniczając wpływ błędów sprzętowych i dekoherencji kubitu. W przeciwieństwie do technik korygowania błędów kwantowych środki zaradcze błędów nie wymagają dużego nakładu pracy bramy i kubitu.

Debiasing to proces tworzenia niewielkich odmian danego obwodu, który powinien być identyczny na idealnej maszynie bez szumu, przy użyciu technik takich jak różne przypisania kubitu, dekompozycje bramy i rozwiązania impulsowe, a następnie wykonywanie tych odmian.

Wyostrzanie i średnie są opcjami agregowania wyników odmian. Średnie jest oparte na wszystkich wynikach odmiany, podczas gdy ostrzenie filtruje błędne wyniki i może być bardziej niezawodne dla niektórych typów algorytmów.

Aby uzyskać więcej informacji, zobacz Debiasing and Sharpening (Debiasing and Sharpening). Aby uzyskać informacje na temat cennika ograniczania błędów, zobacz cennik IonQ.

Włączanie ograniczania błędów

Uwaga

Odchylenie jest domyślnie włączone w systemach Aria i Forte i domyślnie wyłączone w systemach Harmony.

W usłudze Azure Quantum można włączyć lub wyłączyć ograniczenie ryzyka błędów dla zadań przesłanych za pomocą języka Q# lub zestawu Qiskit.

Aby włączyć ograniczenie ryzyka błędów, dodaj opcjonalny parametr dla maszyny target :


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

Aby wyłączyć ograniczenie ryzyka błędów, ustaw parametr na False:


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

Uwaga

Jeśli używasz również symulacji modelu szumu IonQ, te parametry można uwzględnić tutaj, na przykład:

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

Aby uzyskać więcej informacji, zobacz Symulacja modelu szumu.

Uruchamianie zadania w usłudze Azure Quantum z ograniczeniem ryzyka błędów

W tym przykładzie użyto prostego generatora liczb losowych.

Najpierw zaimportuj wymagane pakiety i zainicjuj profil podstawowy:

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

Następnie zdefiniuj funkcję.

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

Połącz się z usługą Azure Quantum, wybierz maszynę target i skonfiguruj parametry szumu emulatora:

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

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

error-mitigation Określanie konfiguracji


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

Przekaż konfigurację ograniczania ryzyka błędów podczas przesyłania zadania:

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

W zestawie Qiskit należy przekazać opcjonalne parametry do target konfiguracji maszyny przed przesłaniem zadania:

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

Uwaga

Jeśli parametr nie zostanie przekazany error-mitigation , target maszyna będzie używać jego domyślnego ustawienia: włączone dla systemów Aria i Forte oraz wyłączone dla systemów Harmony.

Obsługa i użycie bram natywnych

Domyślnie IonQ umożliwia określenie obwodu kwantowego przy użyciu abstrakcyjnego zestawu bram kwantowych o nazwie qis, który umożliwia elastyczność i przenośność podczas pisania algorytmu bez obaw o optymalizację sprzętu.

Jednak w niektórych zaawansowanych przypadkach użycia można zdefiniować obwód bezpośrednio na bramach natywnych, aby zbliżyć się do optymalizacji sprzętu i obejścia. Zestaw bram natywnych to zestaw bram kwantowych, które są fizycznie wykonywane w procesorze kwantowym i mapują obwód na te w ramach wykonywania.

Aby uzyskać więcej informacji, zobacz Wprowadzenie With Native Gates (ionq.com).

Aby użyć zestawu bram natywnych podczas przesyłania zadań Qiskit do usługi Azure Quantum, należy określić gateset parametr podczas inicjowania zaplecza, jak w poniższym przykładzie:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Nazwa parametru Typ Wymagane Opis
gateset ciąg Nie Określa zestaw bram, które będą używane do definiowania obwodu. Wartość odpowiada bramom abstrakcyjnym qis (zachowanie domyślne) i nativebramom natywnym sprzętu IonQ.

Aby uzyskać więcej informacji na temat zadań Qiskit, zobacz Przesyłanie obwodu za pomocą zestawu Qiskit.

Symulacja modelu szumu

Nawet najlepszy współczesny sprzęt kwantowy ma z natury szum i znajomość cech target szumu systemu może pomóc w uściśliniu algorytmów i uzyskać bardziej realistyczne przewidywanie wyników podczas uruchamiania obwodu na sprzęcie. Technologia IonQ udostępnia symulację modelu szumu , która wprowadza hałas do obwodu przy użyciu "odcisku palca szumu" specyficznego dla sprzętu target . Aby uzyskać więcej informacji, zobacz Wprowadzenie do symulacji modelu szumu sprzętowego.

Parametry modelu szumu

Nazwa parametru Wartości Opis
noise model, seed Umożliwia symulację modelu szumu
model ideal, harmony, aria-1 Określa model szumu dla sprzętu target .
  • ideal - Nie wprowadzono szumu w obwodzie. Jest to takie samo, jak w przypadku braku włączania symulacji szumu.
  • harmony — Używa modelu szumu dla komputera kwantowego IonQ Harmony.
  • aria-1 — Używa modelu szumu dla komputera kwantowego IonQ Aria.
seed Liczba całkowita z zakresu od 1 do $2^{31}$ (2,147,483,648) Umożliwia określenie wartości nasion dla pseudo-losowego szumu i próbkowania strzałów, tworząc powtarzalne hałaśliwe wyniki. Jeśli parametr nie zostanie określony, zostanie utworzona wartość losowa seed .

Świadomość strzałów

Symulacja modelu szumu jest świadoma; oznacza to, że próbkuje pomiary ze stanu wyjściowego na podstawie liczby dostarczonych strzałów. W usłudze Azure Quantum shots parametr jest przesyłany z zadaniem i jest wymagany dla harmony modeli szumu i aria-1 . Jeśli nie shot określono żadnej wartości, zostanie użyta wartość domyślna 1000 . Jeśli używany jest model szumu ideal , shots parametr jest ignorowany.

Pojemność kubitu

ideal Chociaż model szumu umożliwia symulowanie maksymalnie 29 kubitów za pomocą symulatora kwantowego IonQ, modele szumu specyficzne dla sprzętu są ograniczone do rzeczywistej pojemności target kubitów sprzętu: 11 kubitów dla harmony modelu szumu i 25 kubitów dla modelu szumuaria-1.

Włączanie symulacji modelu szumu

W usłudze Azure Quantum symulacja modelu szumu może być włączona lub wyłączona dla zadań przesłanych za pomocą języka Q# lub z zestawem Qiskit.

Aby włączyć symulację modelu szumu, dodaj opcjonalny parametr dla maszyny target , na przykład:


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

Uwaga

Jeśli używasz również ograniczania błędów IonQ, te parametry można uwzględnić tutaj, na przykład:

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

Aby uzyskać więcej informacji, zobacz Ograniczanie ryzyka błędów.

Uruchamianie zadania z symulacją modelu szumu

Możesz użyć tego samego przykładowego programu pokazanego wcześniej w ramach ograniczania błędów i dodać lub zastąpić konfigurację modelu szumu w programie option_params;

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

Następnie przekaż opcjonalne parametry podczas przesyłania zadania:

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

W zestawie Qiskit należy przekazać opcjonalne parametry do target konfiguracji maszyny przed przesłaniem zadania:

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

Cennik

Aby wyświetlić plan rozliczeniowy IonQ, odwiedź stronę Cennik usługi Azure Quantum.

Limity przydziału i ograniczenia

Limity przydziału IonQ są śledzone na podstawie jednostki użycia QPU, która jest kubit-gate-shot (QGS). Użycie zasobów jest naliczane na koncie.

Każdy program kwantowy składa się z $N$ kwantowych bram logicznych co najmniej jednego kubitu i jest wykonywany dla określonej liczby zdjęć. Liczba strzałów bramy jest obliczana przez następującą formułę:

$$ QGS = N · C $$

gdzie:

  • $N$ to liczba przesłanych bram jedno-lub dwóch kubitów
  • $C$ to liczba żądanych strzałów wykonania

Limity przydziału są oparte na wyborze planu i można je zwiększyć za pomocą biletu pomocy technicznej. Aby wyświetlić bieżące limity i przydziały, przejdź do bloku Środki i przydziały i wybierz kartę Przydziały obszaru roboczego w Azure Portal. Aby uzyskać więcej informacji, zobacz Azure Quantum quotas (Limity przydziału usługi Azure Quantum).

Uwaga

Jeśli używasz planu środków na korzystanie z usługi Azure Quantum , a nie planu rozliczeniowego, informacje o przydziałach są mapowane na przydzielone środki. W takim przypadku limit przydziału zawiera łączną liczbę otrzymanych środków.

Stan IonQ

Aby uzyskać informacje na temat opóźnień przetwarzania zadań QPU IonQ, zobacz stronę stanu IonQ.

Najlepsze rozwiązania i wykres łączności IonQ

Aby zapoznać się z zalecanymi najlepszymi rozwiązaniami dotyczącymi interfejsu QPU IonQ, zobacz Najlepsze rozwiązania IonQ (ionq.com).