Poskytovatel Quantinuum

Quantinuum poskytuje přístup k zachyceným iontovým systémům s vysokou věrností, plně připojenými qubity a schopností provádět měření středního okruhu.

  • Vydavatel: Quantinuum
  • ID zprostředkovatele: quantinuum

Targets

Od tohoto poskytovatele jsou k dispozici následující targets možnosti:

Název cíle ID cíle Počet qubitů Description
Kontrola syntaxe H2-1 quantinuum.sim.h2-1sc 56 qubitů Před odesláním do hardwaru nebo emulátorů na platformě Quantinuum ověří kvantové programy proti kompilátoru H2-1. Zdarma
H2-2 Kontrola syntaxe quantinuum.sim.h2-2sc 56 qubitů Před odesláním do hardwaru nebo emulátorů na platformě Quantinuum ověří kvantové programy proti kompilátoru H2-2. Zdarma
Emulátor H2-1 quantinuum.sim.h2-1e 56/32 qubitů Používá realistický fyzický model a model šumu H2-1. Simulace 56 qubitů je k dispozici pouze jako simulace stabilizátoru.
Emulátor H2-2 quantinuum.sim.h2-2e 56/32 qubitů Používá realistický fyzický model a model šumu H2-2. Simulace 56 qubitů je k dispozici pouze jako simulace stabilizátoru.
H2-1 quantinuum.qpu.h2-1 56 qubitů Zařízení s uvězněnými ionty Quantinuum H2-1.
H2-2 quantinuum.qpu.h2-2 56 qubitů Ionické zařízení H2-2 od Quantinuum.

Quantinuum targets odpovídá QIR Adaptive RI profilu. Další informace o tomto target profilu a jeho omezeních najdete v tématu Principy target typů profilů ve službě Azure Quantum.

Všechny Quantinuum targets teď podporují integrované hybridní okruhy. Další informace o odesílání integrovaných hybridních úloh naleznete v tématu Integrované hybridní výpočetní prostředí.

Tip

Kvantové úlohy odeslané v rámci relace mají výhradní přístup k hardwaru Quantinuum, pokud úlohy umístíte do fronty v jednominutových intervalech. Potom se jakákoli úloha přijme a zpracuje pomocí standardní logiky fronty a stanovení priority. Další informace o relacích v Azure Quantum najdete zde.

Kontroly syntaxe

Doporučujeme, aby uživatelé nejdřív použili kontrolu syntaxe k ověření kódu. Kontroly syntaxe ověřují správnou syntaxi, dokončování kompilace a kompatibilitu počítače. Nástroje pro kontrolu syntaxe používají stejný kompilátor jako kvantový počítač target. Například nástroj pro kontrolu syntaxe H2-1 používá stejný kompilátor jako H2-1. Spustí se kompletní kompilovací stack s výjimkou skutečných kvantových operací. Pokud se kód zkompiluje, vrátí kontrola syntaxe stav a výsledek samých 0. Pokud se kód nekompiluje, vrátí kontrola syntaxe stav selhání a zobrazí chybovou zprávu, která uživatelům pomůže ladit syntaxi okruhu. Kontrola syntaxe umožňuje vývojářům kdykoli ověřit svůj kód, i když jsou počítače offline.

  • Typ úlohy: Simulation
  • Formáty dat: honeywell.openqasm.v1, honeywell.qir.v1
  • ID cíle:
    • Kontrola syntaxe H2-1: quantinuum.sim.h2-1sc
    • Kontrola syntaxe H2-2: quantinuum.sim.h2-2sc
  • Profil provedení cíle: QIR Adaptive RI

Využití kontroly syntaxe se nabízí zdarma.

Emulátor systému Model H2

Po ověření syntaxe kódu pomocí nástroje pro kontrolu syntaxe H2-1 můžou uživatelé využít emulátor systémového modelu H2 společnosti Quantinuum, což je emulační nástroj, který obsahuje podrobný fyzický model a realistický model šumu skutečného hardwaru System Model H2. Další informace o modelu šumu najdete v datovém listu produktu emulátoru systémového modelu H2 na stránce Systémový model H2. Emulátor systémového modelu H2 používá stejné rozhraní API pro odesílání úloh jako hardware System Model H2, což umožňuje bezproblémový přechod z emulace na hardware. Aby se maximalizovala produktivita a zkrátila doba vývoje, je emulátor H2 dostupný i v době, kdy je hardware offline.

  • Typ úlohy: Simulation
  • Datový formát: quantinuum.openqasm.v1
  • ID cíle:
    • Emulátor H2-1: quantinuum.sim.h2-1e
    • Emulátor H2-2: quantinuum.sim.h2-2e
  • Profil provedení cíle: QIR Adaptive RI

Využití emulátoru system Model H2 se nabízí bezplatně s předplatným hardwaru. Podrobnosti najdete v cenách Azure Quantum.

Systémový model H2

Řada kvantových počítačů Quantinuum System Model H2, vyvinutá společností Honeywell, je tvořena kvantovým zařízením typu charge-coupled device (QCCD) se dvěma propojenými lineárními sekcemi a v současnosti zahrnuje jeden systém, H2-1. Další informace najdete v datovém listu produktu System Model H2 na stránce Systémový model H2 . Uživatelům se doporučuje otestovat kompatibilitu kódu odesláním úloh do nástroje pro kontrolu syntaxe a emulátoru systémového modelu H2 před jejich odesláním do target počítačů.

Pokud uživatel odešle úlohu do počítače H2-1 a počítač H2-1 není k dispozici, zůstane úloha ve frontě daného počítače, dokud nebude počítač dostupný.

Hardware System Model H2 se průběžně upgraduje v průběhu životního cyklu produktu. Uživatelům se udělí přístup k nejaktuálnějšímu, pokročilému a dostupnému hardwaru.

  • Typ úlohy: Quantum Program
  • Datový formát: quantinuum.openqasm.v1
  • ID cíle:
    • H2-1: quantinuum.qpu.h2-1
    • H2-2: quantinuum.qpu.h2-2
  • Profil provedení cíle: QIR Adaptive RI

Technické specifikace systémového modelu H2

Technické podrobnosti o systémovém modelu H2 najdete v datových listech produktu Quantinuum na stránce System Model H2 spolu s odkazy na specifikaci Quantinuum a úložiště kvantových objemů dat a o tom, jak citovat využití systémů Quantinuum.

Další možnosti

Tady jsou uvedeny další možnosti dostupné prostřednictvím rozhraní Quantinuum API.

Capability Description
Měření a resetování středního okruhu (MCMR) Měření qubitů uprostřed okruhu a jejich opakované použití
Libovolná úhlová brána ZZ Přímo provádějte otočení bran o libovolné úhly pro 2 qubity
Obecná provázaná brána SU(4) Přímo provádějte otočení bran o libovolné úhly pro 2 qubity
Parametry šumu emulátoru Experimentujte s parametry šumu používanými v emulátorech Quantinuum
Optimalizace TKET v rámci Quantinuum Stack Experimentujte se zapnutím různých úrovní optimalizací TKET v rámci zásobníku Quantinuum.

Uživatelé můžou tyto další funkce využít prostřednictvím funkcí okruhu nebo předávacích parametrů ve zprostředkovatelích Azure Quantum Q# a Qiskit.

Měření a resetování středního okruhu

Měření a resetování v polovině obvodu (MCMR) umožňuje uživatelům měřit qubity během průběhu obvodu a poté je resetovat. To umožňuje funkce pro opravu kvantových chyb a také schopnost opakovaně používat qubity v okruhu.

Vzhledem k vnitřní úrovni struktury zachycených iontových qubitů může měření středního okruhu ponechat qubit v nekótačním stavu. Všechna měření středního okruhu by měla následovat resetování, pokud se má qubit v daném okruhu znovu použít. Následující příklady kódu to demonstrují.

Když se uprostřed okruhu měří podmnožina qubitů, dají se klasické informace z těchto měření použít k podmínce budoucích prvků okruhu. Příklady také zvýrazňují toto použití.

Informace o MCMR v systémech Quantinuum najdete na stránce MCMR na webu Quantinuum Docs.

V jazyce Q# MResetZ je možné funkci použít k měření qubitu a jeho resetování. Další informace o této funkci najdete MResetZ v dokumentaci k jazyku Q#.

%%qsharp
import Std.Measurement.*;

operation ContinueComputationAfterReset() : Result[] {
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Perform Bell Test
    H(qubits[0]);
    CNOT(qubits[0], qubits[1]);

    // Measure Qubit 1 and reset it
    let res1 = MResetZ(qubits[1]);

    // Continue additional computation, conditioned on qubits[1] measurement outcome
    if res1 == One {
         X(qubits[0]);
    }
    CNOT(qubits[0], qubits[1]);

    // Measure qubits and return results
    let res2 = Measure([PauliZ, PauliZ], qubits);
    return [res1, res2];
}

Libovolná úhlová brána ZZ

Nativní sada bran Quantinuum zahrnuje libovolnou úhlovou bránu ZZ. To je užitečné pro snížení počtu bran 2 qubitů pro mnoho kvantových algoritmů a sekvencí bran. Pro informace o libovolných úhlových ZZ branách v systémech Quantinuum, navštivte stránku Parameterized Angle ZZ Gates v dokumentaci Quantinuum.

V Q# je libovolná úhlová brána ZZ implementována operací Rzz.

%%qsharp
import Std.Intrinsic.*;
import Std.Measurement.*;
import Std.Arrays.*;

operation ArbitraryAngleZZExample(theta : Double) : Result[] {
    
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Create array for measurement results
    mutable resultArray = [Zero, size = 2];

    H(qubits[0]);
    Rz(theta, qubits[0]);
    Rz(theta, qubits[1]);
    X(qubits[1]);

    // Add Arbitrary Angle ZZ gate
    Rzz(theta, qubits[0], qubits[1]);  

    // Measure qubits and return results
    for i in IndexRange(qubits) {
        resultArray w/= i <- M(qubits[i]);  
    }
    
    return resultArray;
}

Obecná SU(4) Propletení brány

Nativní brána setu Quantinuum zahrnuje obecnou SU(4) propojovací bránu. Všimněte si, že kvantové obvody odeslané do hardwaru se překládají na plně provázající bránu ZZ a libovolnou úhlovou bránu RZZ. Okruhy se přelistují pouze na obecnou propletenou bránu SU(4), pokud se k tomu uživatelé rozhodnou. Informace o obecném SU(4) entangleru v systémech Quantinuum naleznete na stránce parametrizovaných úhlových SU(4) bran na webu Quantinuum Docs.

V Q# se obecná zaplétací brána SU(4) implementuje pomocí Quantinuum profilu QIR. Pokud ji chcete použít, definujte funkci s vlastním vnitřním objektem, který odpovídá podpisu profilu QIR, a tuto funkci použijte v rámci SU4Example operace.

Chcete-li zajistit, aby okruh fungoval s obecným proplétacím portem SU(4), předejte v zásobníku Quantinuum následující možnosti:

  • nativetq: Rxxyyzz aby se zabránilo přesměrování na jiné nativní brány.
  • noreduce: True aby nedocházelo k dalším optimalizacem kompilátoru (volitelné).
%%qsharp
import Std.Math.*;

operation __quantum__qis__rxxyyzz__body(a1 : Double, a2 : Double, a3 : Double, q1 : Qubit, q2 : Qubit) : Unit {
    body intrinsic;
}

operation SU4Example() : Result[] {
    use qs = Qubit[2];
    
    // Add SU(4) gate
    __quantum__qis__rxxyyzz__body(PI(), PI(), PI(), qs[0], qs[1]);
    
    MResetEachZ(qs)
}

Teď zkompilujte operaci:

from qdk import qsharp

MyProgram = qsharp.compile("GenerateRandomBit()")

Připojte se k Azure Quantum, vyberte target počítač a nakonfigurujte parametry šumu pro emulátor:

from qdk.azure import Workspace

MyWorkspace = Workspace(resource_id="")

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")

# Update TKET optimization level desired
option_params = {
    "nativetq": `Rxxyyzz`,
    "noreduce": True
}

Předávejte možnost noreduce při odesílání úlohy.

job = MyTarget.submit(MyProgram, "Submit a program with SU(4) gate", shots = 10, input_params = option_params)
job.get_results()

Parametry šumu emulátoru

Uživatelé mají možnost experimentovat s parametry šumu emulátorů Quantinuum. Tady je zvýrazněno pouze několik dostupných parametrů šumu, které ukazují, jak předávat parametry ve zprostředkovatelích Azure Quantum.

Další informace o úplné sadě dostupných parametrů šumu najdete na stránce Quantinuum Emulators na webu Quantinuum docs.

Nejprve naimportujte požadované balíčky a zahajte základní profil:

from qdk import qsharp
from qdk.azure import Workspace

qsharp.init(target_profile=qsharp.TargetProfile.Base)

Dále definujte funkci.

%%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);
}

a proveďte kompilaci operace

MyProgram = qsharp.compile("GenerateRandomBit()")

Připojte se k Azure Quantum, vyberte target počítač a nakonfigurujte parametry šumu pro emulátor:

MyWorkspace = Workspace(resource_id="")

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")

# Update the parameter names desired
# Note: This is not the full set of options available. 
# For the full set, see the Quantinuum Emulators page
option_params = {
    "error-params": {
        "p1": 4e-5,
        "p2": 3e-3,
        "p_meas": [3e-3, 3e-3],
        "p_init": 4e-5,
        "p_crosstalk_meas": 1e-5,
        "p_crosstalk_init": 3e-5,
        "p1_emission_ratio": 6e-6,
        "p2_emission_ratio": 2e-4
    }
}

Při odesílání úlohy předejte možnosti šumu emulátoru:

job = MyTarget.submit(MyProgram, "Experiment with Emulator Noise Parameters", 
                      shots = 10, 
                      input_params = option_params)
job.get_results()

Pokud chcete vypnout model šumu emulátoru, nastavte error-model možnost Falsena hodnotu . Ve výchozím nastavení je nastavena na Truehodnotu .

option_params = {
    "error-model": False 
}

Chcete-li použít emulátor stabilizátoru, nastavte možnost simulator na hodnotu stabilizer. Ve výchozím nastavení je nastavena na state-vectorhodnotu .

option_params = {
    "simulator": "stabilizer" 
}

Kompilace TKET v Quantinuum Stacku

Obvody odeslané do systémů Quantinuum, s výjimkou integrovaných hybridních úloh, jsou automaticky zpracovány pomocí kompilačních průchodů TKET pro hardware Quantinuum. Díky tomu se okruhy automaticky optimalizují pro systémy Quantinuum a efektivněji běží.

Další informace o konkrétních průchodech kompilace najdete v pytket-quantinuum dokumentaci, konkrétně v části pytket-quantinuum Průchody kompilace.

V softwarovém zásobníku Quantinuum je použitá úroveň optimalizace nastavena parametrem tket-opt-level. Výchozí nastavení kompilace pro všechny okruhy odeslané do systémů Quantinuum je úroveň optimalizace 2.

Uživatelé, kteří si přejí experimentovat s procházením kompilace TKET a chtějí zjistit, jaké optimalizace by se použily na jejich okruhy před odesláním jakýchkoli úloh, si mohou prohlédnout poznámkový blok Quantinuum_compile_without_api.ipynb ve složce pytket-quantinuum Příklady.

Chcete-li vypnout kompilaci TKET v zásobníku, možnost no-opt lze nastavit na True uvnitř option_params. Například "no-opt": True.

Další informace o pytket najdete na následujících odkazech:

Nejprve naimportujte požadované balíčky a zahajte základní profil:

from qdk import qsharp
from qdk.azure import Workspace
qsharp.init(target_profile=qsharp.TargetProfile.Base)

Dále definujte funkci.

%%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);
}

a proveďte kompilaci operace

MyProgram = qsharp.compile("GenerateRandomBit()")

Připojte se k Azure Quantum, vyberte target počítač a nakonfigurujte parametry šumu pro emulátor:

MyWorkspace = Workspace(resource_id="")

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")

# Update TKET optimization level desired
option_params = {
    "tket-opt-level": 1
}

Při odesílání úlohy předejte možnost optimalizace:

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

Technické specifikace

Technické podrobnosti o emulátorech System Model H2 a System Model H2 najdete na stránce Uživatelská příručka k hardwaru spolu se specifikací Quantinuum a úložišti kvantových objemů dat a postupy citace Quantinuum Systems.

Cílová dostupnost

Kvantové počítače Quantinuum jsou navrženy tak, aby byly neustále upgradovány, což zákazníkům umožňuje přístup k nejnovějším hardwarovým funkcím, protože Quantinuum neustále vylepšuje věrnost brány, chyby paměti a rychlost systému.

Hardware Quantinuum prochází komerčními obdobími a vývojovými obdobími. Během komerčních období je hardware dostupný ke zpracování úloh prostřednictvím systému front. Během období vývoje je hardware offline, protože se použijí upgrady.

Každý měsíc se uživatelům Quantinuum odešle kalendář s informacemi o komerčním a vývojovém období. Pokud jste tento kalendář nedostali, pošlete e-mail QCsupport@quantinuum.com.

Stav target určuje aktuální schopnost zpracovávat úlohy. Mezi možné stavy target patří:

  • K dispozici: Je target online, zpracovává odeslané úlohy a přijímá nové úlohy.
  • Snížený výkon: Přijímá target úlohy, ale v současné době je nezpracovává.
  • Není k dispozici: Zařízení target je offline a nepřijímá nová podání úloh.

Pro kvantové počítače targetsQuantinuum , Dostupné a degradované odpovídají komerčním obdobím, zatímco nedostupné odpovídá obdobím vývoje, kdy je počítač offline pro upgrady.

Aktuální informace o stavu se můžou načíst z karty Poskytovatelé pracovního prostoru na webu Azure Portal.

Pricing

Pokud chcete zobrazit fakturační plány Quantinuum, navštivte ceny Azure Quantum.

Omezení a kvóty

Kvóty Quantinuum se sledují na základě kreditové jednotky využití QPU, hardwarového kvantového kreditu (HQC), pro úlohy odeslané do kvantových počítačů Quantinuum, a emulátorových HQC (eHQC) pro úlohy odeslané do emulátorů.

HQCs a eHQCs se používají k výpočtu nákladů na provoz úlohy a počítají se na základě následujícího vzorce:

$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$

where:

  • $N_{1q}$ je počet operací s jedním qubitem v okruhu.
  • $N_{2q}$ je počet nativních dvou qubitových operací v okruhu. Nativní brána je ekvivalentní CNOT až k několika jedno qubitovým branám.
  • $N_{m}$ je počet operací přípravy a měření stavu (SPAM) v okruhu, včetně počáteční implicitní přípravy stavu a jakýchkoli průběžných a konečných měření a resetování stavu.
  • $C$ je počet záběrů.

Note

Celkové náklady na HQCs zahrnují všechna hradla a měření napříč všemi podmíněnými větvemi a řídicími toky. To může mít vyšší dopad na integrované hybridní úlohy.

Kvóty jsou založené na výběru plánu a je možné je zvýšit pomocí lístku podpory. Pokud chcete zobrazit aktuální limity a kvóty, přejděte do části Operace a vyberte okno Kvóty vašeho pracovního prostoru na webu Azure Portal. Další informace najdete v tématu Kvóty služby Azure Quantum.