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ą Result
s, 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 native bramom 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 .
|
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).
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla