O kvantových počítačích už jste pravděpodobně někdy slyšeli, byť jsou stále zastřeny jakousi tajuplnou rouškou budoucnosti. Možná vás proto překvapí, že můžete i vy už dnes napsat a spustit svůj první kvantový program. Jak to celé přibližně funguje, k čemu to je a proč byste si měli vyzkoušet zrovna Azure Quantum, se dozvíte v tomto článku.
Co je kvantové programování a jak se liší od toho klasického?
Klasické počítače využívají jako základní jednotku informace bity, které mohou nabývat hodnot 0 a 1. Oproti nim kvantové počítače fungují na principu kvantových bitů neboli qubitů (z anglického quantum bit), které mohou existovat nejen ve stavu 0 nebo 1, ale i ve speciálním stavu tzv. kvantové superpozice, kdy mají hodnotu 0 i 1 zároveň v určitém “poměru“.
Kvantové počítače musí mít nejen specifický hardware, ale i software. Klasické programovací jazyky počítači slouží jako sekvenční instrukce, kdežto kvantové programovací jazyky (Q#, Qiskit, Cirq…) qubitům udávají soubor matematických operací. Jednodušeji řečeno je klasický program čten řádek po řádku jako seznam instrukcí, zatímco kvantový program dokáže provádět několik výpočtů najednou. Tato schopnost qubitů se nazývá kvantový paralelismus.
Kvantový paralelismus spočívá v tom, že princip superpozice umožňuje provádět výpočty na všech kombinacích stavů provázaných qubitů najednou. Toto vede k efektivnějšímu a rychlejšímu zpracovávání informací, a proto je kvantový paralelismus v srdci mnohých kvantových algoritmů.
K čemu to je a proč to ještě není?
Především díky kvantovému paralelismu kvantové počítače otevírá zcela nové možnosti v oblasti výpočetní techniky. Tyto oblasti zahrnují například kryptografii, optimalizaci, simulaci molekulárních systémů a umělé inteligence, kde je žádoucí právě velké množství souběžných výpočtů. Jak ale pravil strýček Ben mladému Peteru Parkerovi, „s velkou mocí přichází velká zodpovědnost“. Musíme mít na mysli to, že kvantové programy mohou v budoucnosti sice akcelerovat medicínský výzkum modelováním interakcí libivolných částic, ale i prolomování kdejakého současného šifrování založeného na faktorizaci velkých čísel.
Ačkoliv mají kvantové počítače bezesporu obrovský potenciál a přední technologické firmy do něj investují miliardy dolarů, budeme si muset na plné využití prozatím převážně teoretické kvantové výhody muset ještě chvíli počkat. Jednou z hlavních překážek je v současnosti velká náchylnost k dekoherenci. To je jev, při kterém kvantový systém ztrácí svou kvantovou povahu a přechází do klasického stavu kvůli vnějším vlivům. Vědci se navíc shodují, že kvantové počítače nikdy nebudou schopné ty klasické zcela nahradit. K úkonům, jako je přehrávání videí, jsou sekvenční programy zkrátka lépe uzpůsobené a žádný kvantový algoritmus je už nezrychlí.
Proč Azure Quantum?
Microsoft se v oblasti kvantových počítačů vyznačuje silným zaměřením na výzkum tzv. topologických qubitů. Ty by měly vynikat přirozenou spolehlivostí a přístupnou škálovatelností a řešit tak dvě nejfundamentálnější překážky v honbě za kvantovou výhodou. Přestože zprvu nebylo vůbec zřejmé, jestli tento výzkum je krok správným směrem, kvantovému týmu Microsoftu se v březnu 2022 podařilo qubity “zabalit“ do uměle vytvořeného ochranného stavu Majorana zero modes.
Tento stav by měl za správných podmínek umožnit produkci skutečných topologických qubitů. V příštích letech je proto v Microsoft Azure Quantum určitě na co se těšit. Partnerství Azure Quantum s předními výrobci kvantových zařízení, jako jsou Rigetti, IonQ a Quantinuum, dále umožňuje uživatelům přístup k různým kvantovým zařízením s různými technologiemi a kapacitami a vybrat tu nejvhodnější konfiguraci pro konkrétní aplikaci.
Síla Azure Quantum spočívá i v plynulém propojení kvantového a klasického programování. Uživatel může volně míchat například klasický Python s kvantovým Q# a využívat tak to nejlepší z obou světů. Quantum Development Kit, postavený kolem open-source Q# z dílen samotného Microsoftu, pak nabízí celou řadu nástrojů a knihoven pro vývoj, ladění a testování kvantových algoritmů. V neposlední řadě je Azure Quantum plně integrováno do ekosystému Azure a je možné ho propojit s dalšími Azure službami.
Dost teorie – teď je čas na praxi!
Jak jsem slíbil v úvodu článku, pojďme si teď sami nějaký ten kvantový program vyzkoušet.
Stejně jako u jakékoliv jiné Azure služby začneme kliknutím na tlačítko „vytvořit prostředek“, které nás přesměruje na Azure Marketplace. Tam stačí najít Azure Quantum a znovu kliknout na „vytvořit“.
Pokud byste se chtěli ponořit hlouběji do nastavení této služby a vybrat například cílený úložný prostor, nic vám v tom nebrání, ale pro naše účely nám bude nyní zcela stačit „rychlé vytvoření” s přednastavenou konfigurací.
Prostředku přiřadíme libovolné jméno a oblast a vytvoření můžeme potvrdit.
Může trvat několik minut, než je proces vytváření dokončen a v záložce na levé straně lze přejít do sekce „Poznámkové bloky“ k programování ve známém prostředí Jupyter Notebook. Ihned se nám nabízí kolonka „Sample gallery“ se šablonami jednoduchých programů na vyzkoušení. Jak je vidno, různí poskytovatelé hardwaru nabízí vlastní „Hello, world“ úvodní programy v jiných programovacích jazycích. Jelikož všechny plní tu stejnou funkci, projdeme si tady jen tím od IonQ napsaným v Pythonu a Q#.
Hello, world!
Jakmile máme šablonu zkopírovanou do vlastních bloků, můžeme si ji projít buňku po buňce. Příkazy v první sekci importujeme potřebnou Q# knihovnu pro práci v Azure a připojíme se k našemu vytvořenému prostředku.
Dále si ověříme, jaký hardware máme k dispozici.
Druhá sekce nás provádí inicializací Q# prostředí a vytvořením jednoduchého programu k simulaci idealizovaného qubitu a zjištění pravděpodobnosti naměření jednotlivých klasických hodnot – tedy té, která “převládá“.
A nyní tento program můžeme poslat buď opravdovému kvantovému nebo, v této ukázce, simulovanému kvantovému počítači, aby ho vykonal.
A na závěr pravděpodobnosti naměření 0 a 1 na idealizovaném qubitu vizualizujeme pomocí Python knihovny Matplotlib.
Gratuluji, právě jste spustili kvantový program ze svého vlastního účtu!
Pokud vás však takové jednoduché demo neuspokojilo, doporučuji vám projít si poměrně čtivou dokumentací Azure Quantum.
Kam dál?
Teď už víte, v čem se kvantové počítače liší od těch klasických, proč je ještě nemáme, ač jsou tak vytoužené, čím vyniká Azure Quantum, a dokonce i jak napsat a spustit vlastní kvantový program. Pokud vás toto téma zaujalo a chcete o něm vědět více, najdete na internetu spoustu skvělých přístupných zdrojů o různých úrovních obtížnosti. Pro samotné kvantové programování doporučuji dokumentaci Azure Quantum, kde se dozvíte více i programovacím jazyku Q#.