Kvantna računala se već godinama najavljuju kao sljedeća „velika stvar“ na području hardvera računala, a u posljednjih nekoliko godina pojavljuje se sve više konfiguracija računala zasnovanih na takvoj arhitekturi. Sasvim dovoljan razlog da u nekoliko tekstova prikažemo kako djeluju i kako će se programirati takva računala. U prvom tekstu ćemo se, prije svega, usredotočiti na objašnjavanje pojmova iz ovog područja, a sljedeći put počinjemo s prvim programskim primjerima. Možda prethodna rečenica o „programskim primjerima“ za hardver koji se još uvijek razvija ili je teško dostupan zbog velike cijene na prvi pogled izgleda kontradiktorno, ali doista nije. Postoje besplatni simulatori za razvoj kvantnih programa na digitalnim računalima! O njima će nešto više riječi biti sljedeći put, zajedno s odgovarajućim programskim primjerima.
Osnovna razlika između klasičnih i kvantnih računala
Kod klasičnih, digitalnih računala osnovna jedinica informacije je 1 bit. Bez obzira na svoju fizičku implementaciju u hardveru, jedan bit u nekom trenutku može biti u samo jednom od dva osnovna stanja – 0 ili 1. Računanje ili bilo koja druga operacija u digitalnom računalu (bez obzira na stvarnu implementaciju u hardveru) svodi se uvijek na rad s ove dvije vrijednosti. Za predstavljanje svih ostalih vrijednosti u računalu pojedinačni bitovi moraju se kombinirati u nizove bitova (bajtove, riječi ili još složenije grupe bitova). Dobro poznata priča o 8, 16, 32 ili 64-bitnim računalima.
Kod kvantnih računala osnovna jedinica informacije je kvantni bit (quantum bit) ili skraćeno qubit. U odnosu na klasično računalo, gdje implementaciju pojedinog bita predstavlja manja ili veća količina osnovnih elektroničkih sklopova (bez obzira na to koliko oni bili minijaturizirani u modernim mikroprocesorima), kod kvantnih računala jedan qubit može biti predstavljen čak i pojedinačnim elektronom (ali i nešto složenijim sklopom) s različitim stanjima. Zbog zakona kvantne mehanike takav qubit može biti u jednom od osnovna dva stanja, baš kao bit u digitalnim računalima, ali može istovremeno biti i u oba stanja (tzv. superposition). Takvo ponašanje qubita utječe na nekoliko stvari u radu kvantnih računala:
- U istom broju qubita može se čuvati mnogo veća količina informacija što bitno ubrzava izvođenje operacija.
- Zbog načina implementacije qubita osnovni dijelovi računala zauzimaju bitno manje dimenzije. To isto utječe na brzinu izvođenja operacije, jer podaci koji se prenose unutar računala ne moraju prevaljivati velike udaljenosti.
- Potrošnja energije za rad bitno je manja nego kod klasičnih računala.
Povećanjem broja qubita koji se istovremeno koriste za rješavanje nekog problema, drastično se povećava ukupna snaga kvantnog računala.
Negativna strana qubita i kvantnih računala dolazi istovremeno s njihovom prednošću. Način pisanja programa na najnižoj razini za qubite bitno se razlikuje od pisanja takozvanog „strojnog koda" za digitalna računala, što znači da se moraju primjenjivati i potpuno drugačiji algoritmi za rješavanje problema. Istovremeno, kvantna računala zahtijevaju dodatne dijelove zadužene za rad osnovnih dijelova u idealnim uvjetima (npr. na temperaturama bliskim apsolutnoj nuli). U slučaju da uvjeti za djelovanje qubita nisu idealni, kvantna računala mogu postati vrlo nestabilna.
Na kvantna računala ne treba dugoročno gledati kao na potpunu zamjenu za trenutačno prevladavajuća digitalna računala, jer je sasvim nepotrebno koristiti se njihovim mogućnostima na područjima poput obrade teksta, pisanja e-mailova ili drugih vrsta poruka te za druge slične operacije. Međutim, na određenim područjima kvantna računala omogućavaju dobivanje rješenja za koja bi klasičnim računalima trebale stotine ili čak tisuće godina. Neka od područja posebno pogodna za korištenje kvantnim računalima su kriptografija, modeliranje i simuliranje na području medicine, kemije, financija ili istraživanja svemira te strojno učenje i druga AI područja.
O važnosti kvantnih računala najbolje govori činjenica kako vodeći proizvođači hardvera i softvera u pravilu imaju posebne odjele specijalizirane za razvoj takve tehnologije. Postoje i posebne kompanije nastale isključivo zbog razvoja i primjene kvantnih računa. Slijedi popis nekoliko najpoznatijih kompanija s ovog područja: Google Research, Microsoft Quantum Computing, IBM Quantum Computing, Toshiba Quantum Computing, D-Wave Systems itd.
Primjer kvantnog računala
Kao primjer komercijalno dostupnog kvantnog računala možemo spomenuti D-Wave 2000Q.
Slika 1. Primjer kvantnog računala D-Wave 2000Q (originalni materijali proizvođača)
Središnji procesor kvantnog računala (Quantum Processing Unit - QPU) na ovom računalu sastoji se od čak 2048 qubita međusobno povezanih s 5.600 veza. Čitav sklop radi na temperaturi blizu apsolutne nule, kako bi se maksimalno iskoristio efekt superprovodljivosti materijala, a tijekom rada mora biti zaštićen od svih elektromagnetskih i drugih utjecaja okoline. Zato najveći dio računala, u stvari, predstavlja zaštita procesora od okoline, a ne dio zadužen za samu obradu podataka.
Slika 2. Unutrašnjost računala D-Wave 2000Q (QPU je označen crveno)
Osim brzine u izvođenju operacija, kao jednu od prednosti računala zasnovanih na kvantnim principima, treba istaknuti i manju potrošnju energije. Dok D-Wave 2000Q potroši 25 kW, za isto vrijeme digitalno superračunalo potroši oko 2500 kW, odnosno 100 puta više.
Kao i svaki drugi hardver, tako je i hardver kvantnih računala neiskoristiv bez odgovarajućeg softverskog okruženja za pisanje softvera. U slučaju D-Wave 2000Q dio softverskog okruženja dostupan je već danas, dok se dio nalazi u stanju prototipa ili koncepta (vidi sljedeću sliku).
U ovom trenutku korisnici mogu vlastiti softver pisati u nekom od dobro poznatih programskih jezika kao što su C, C++, Python ili MATLAB. Riječ je posebno prilagođenim programima za prevođenje izvornog koda (i dodatnim bibliotekama) u oblik razumljiv D-Wave 2000Q QPU jedinici, odnosno za prihvat rezultata obrade vraćenih iz kvantnog računala.
Cijena je spomenutog kvantnog računala (kao i drugih sličnih konfiguracija) takva da je teško dostupna programerima pojedincima, osim možda preko nekog javno podijeljenog resursa. Postoji li nekakav alternativni način za upoznavanje s programiranjem kvantnih računala? Odgovor je, srećom, potvrdan. Pomoću posebnih kolekcija alata moguće je simulirati pisanje i izvođenje kvantno orijentiranih programa na postojećim digitalnim računalima u rasponu od pojedinačnih Windows računala do posebnih cloud-okruženja.
Slika 3. Softversko okruženje računala D-Wave 2000Q
Jedan od najpoznatijih alata takve vrste dolazi iz razvojnih odjela Microsofta, a o njemu će više riječi biti u sljedećem članku.