Vývojový postup
Termín Qiskit pattern popisuje vývojový postup pro rozčlenění doménově specifických problémů a kontextualizaci potřebných schopností do jednotlivých fází. To umožňuje bezešvou skládatelnost nových schopností vyvinutých výzkumníky IBM Quantum® (a dalšími) a otevírá budoucnost, ve které jsou kvantové výpočetní úlohy prováděny výkonnou heterogenní (CPU/GPU/QPU) výpočetní infrastrukturou. Bloky nebo skupiny bloků provádějí kroky patternu, přičemž Qiskit SDK poskytuje důležitou základní vrstvu, podporovanou dalšími nástroji nebo službami vyvinutými IBM Quantum nebo kvantovou open-source komunitou. Qiskit patterns umožňují odborníkům na danou doménu specifikovat problém a sestavit sadu nástrojů (bloky), která daný Qiskit pattern realizuje. Tento pattern pak může být spuštěn lokálně, prostřednictvím cloudových služeb nebo nasazen pomocí Qiskit Serverless.
Čtyři kroky Qiskit patternu jsou následující:
- Mapování problému na kvantové Circuit a operátory
- Optimalizace pro cílový hardware
- Spuštění na cílovém hardwaru
- Postprocessing výsledků
Každý krok je podrobně popsán v níže uvedených sekcích.
Mapování problému na kvantové Circuit a operátory
Tento krok popisuje, jak uživatel začíná s klasickým problémem a přichází na to, jak ho namapovat na kvantový počítač. Například v aplikacích jako chemie nebo kvantová simulace tento krok obecně zahrnuje konstrukci kvantového Circuit reprezentujícího Hamiltonián, který se snažíš vyřešit. V průběhu tohoto kroku může být u určitých problémů žádoucí specifikovat již od začátku mapování problému na Qubit v heavy-hex (nebo gross) mřížce IBM® hardwaru, pokud se struktura problému hodí pro dřívější optimalizaci. V tuto chvíli je také vhodné zvážit, jaký výsledek daný algoritmus přinese, jako přípravu na pozdější krok spuštění – například pokud požadovaný výsledek zahrnuje odvozování korelačních funkcí pomocí Hadamardových testů, může být vhodné připravit se na použití Sampler, zatímco specifikace pozorovatelných veličin by využila Estimator a mohla by nabídnout mnoho možností mitigace chyb.
Výstupem tohoto kroku je obvykle sada Circuit nebo kvantových operátorů, které lze v dalším kroku optimalizovat pro hardware.
Optimalizace pro cílový hardware
V tomto kroku vezmeš abstraktní Circuit (nebo operátory) vytvořené v kroku mapování a provedeš na nich sérii optimalizací. To může zahrnovat mapování trasy a rozložení Circuit na fyzický Qubit hardware, převod do základních Gate hardwaru a redukci počtu operací – to vše navrženo tak, aby se zvýšila pravděpodobnost úspěchu v pozdějším kroku spuštění. V tuto chvíli možná také budeš chtít otestovat své Circuit pomocí simulátoru před spuštěním na reálném hardwaru v dalším kroku.
Během tohoto kroku musí být abstraktní Circuit transpilovány do obvodů architektury instrukční sady (ISA). ISA Circuit je takový, který se skládá pouze z Gate srozumitelných cílovému hardwaru (základní Gate), přičemž vícequbitové Gate musí dodržovat jakákoli omezení propojení (coupling map). Na IBM hardwaru pomocí IBM Qiskit Runtime lze spouštět pouze ISA Circuit.
Spuštění na cílovém hardwaru
Tento krok zahrnuje spuštění tvých Circuit na hardwaru a produkuje výstupy kvantového výpočtu. ISA Circuit vytvořené v předchozím kroku lze spustit pomocí primitiv Sampler nebo Estimator z Qiskit Runtime, inicializovaných lokálně na tvém počítači nebo z clusteru či jiného heterogenního výpočetního prostředí. Tyto lze spouštět v Batch režimu, který umožňuje paralelní transpilaci pro klasickou výpočetní efektivitu – nebo v Session, která umožňuje efektivní implementaci iterativních úloh bez zpoždění způsobených čekáním ve frontě. Během tohoto kroku je také možné nakonfigurovat určité techniky potlačení a mitigace chyb poskytované Qiskit Runtime.
V závislosti na tom, zda používáš primitivum Sampler nebo Estimator, bude výsledek tohoto kroku odlišný. Při použití Sampler bude výstupem měření pro každý shot ve formě bitových řetězců. Při použití Estimator budou výstupem střední hodnoty pozorovatelných veličin odpovídající fyzickým veličinám nebo nákladovým funkcím.
Postprocessing výsledků
Tento závěrečný krok zahrnuje spojení výstupů z předchozího kroku dohromady za účelem získání požadovaného výsledku. To může zahrnovat řadu kroků klasického zpracování dat, jako je vizualizace výsledků, techniky mitigace chyb při čtení, marginalizace kvazi-pravděpodobnostních distribucí za účelem zjištění výsledků na menších sadách Qubit nebo post-selekce na základě inherentních vlastností problému, jako je celkový spin, parita nebo zachování počtu částic odstraněním nefyzikálních pozorovatelných veličin.
Jak se oblast posouvá od zakázkové konstrukce Circuit k pracovním postupům v měřítku utility, flexibilita a snadnost, s níž Qiskit patterns umožňují uživatelům skládat různé kroky patternu, otevírají kvantové výpočty širokému spektru aplikací a technik pro snadné použití kvantovými výpočetními vědci.