A kvantumszámítógép teljesítményét kubitokban mérik, amely a kvantumszámítógép alapegysége. .
Minden egyes ilyen mondat elolvasása után arcomat a tenyerembe temetem. Ez aztán nem jó, és már kezd romlani a látásom; hamarosan a Meklonhoz kell fordulnom.
Szerintem itt az ideje, hogy rendszerezzük a kvantumszámítógép alapvető paramétereit. Ezek közül több is van:
- Kubitok száma
- Koherencia megőrzésének ideje (dekoherencia ideje)
- Hibaszint
- Processzor architektúrája
- Ár, elérhetőség, fenntartási feltételek, amortizációs idő, programozási eszközök stb.
Kubitok száma
Itt minden nyilvánvaló, minél több, annál jobb. Valójában azonban a kubitokért fizetni kell, és ideális esetben annyi kubitot kell vásárolni, amennyi a feladat végrehajtásához szükséges. Az exkluzív játékgépek fejlesztőinek elegendő egy kubit egy géphez (a véletlenszám-generáláshoz). Az RSA-2048 «brute force» megtöréséhez legalább 2048 kubit szükséges.
A legfelkapottabb kvantumalgoritmusok nevei Grover és Shor. Grover lehetővé teszi a hash-ek «feltörését». A bitcoin összeomlásához legalább 256 kubitos számítógépek szükségesek (lehet játszadozni a bitcoin nehézségével, de maradjunk ennél a kerek számon). Shor lehetővé teszi a számok faktorizálását. Egy n bináris számjegy hosszúságú szám faktorizálásához legalább n kubitra van szükség.
Jelenlegi maximum: 50 kubit (). És valójában 50 kubit a határ. A kvantumszámítógép szimulációs határa. Elméletileg bármennyi kubit szimulálhatunk klasszikus számítógépeken. A gyakorlatban azonban egy kubit hozzáadása a szimulációhoz megköveteli a klasszikus számítógépek megduplázását. Ehhez add hozzá a pletykákat, miszerint kubitokat évente megdupláznak, és tedd fel magadnak a kérdést: hogyan hibakereshettük az algoritmusokat 25651210242048 kubitra? Nincs szimulátor, kvantumprocesszoren nem lehet breakpointot állítani.
Koherencia megőrzésének ideje (dekoherencia ideje)
A koherencia és a koherens állapot nem ugyanaz. A koherenciát inkább az operatív memória regenerációjához hasonlítanám. A RAM modulon milliárdnyi cella található, mindegyiken egy töltés lóg, amely lehet nulla vagy egy. Ennek a töltésnek van egy nagyon érdekes tulajdonsága – lecsapódik. Az eredetileg „egyes” cella 0.99-re, majd 0.98-ra, és így tovább alakul. Ennek megfelelően a nullás cella 0.01, 0.02, 0.03... töltést halmoz fel. Ezt a töltést frissíteni, „regenerálni” kell. Minden, ami kevesebb mint fele, nullára áll vissza, míg a többiek elérik az egyet.
Kvantuális processzorokat nem lehet regenerálni. Ennek következtében minden számításra van egy ciklus, az első „szivárgó” qubitig. Az első „szivárgásig” eltelt időt nevezzük dekohereáló időnek. A koherens állapot pedig az, amikor a qubitok még nem „szivárogtak”. Kicsit komolyabb magyarázatokat is lehet nézni.
A dekohereálás a qubitok számával függ össze: minél több qubit van, annál nehezebb megőrizni a koherenciát. Másrészről, ha sok qubit áll rendelkezésre, az egy részét a dekohereálással kapcsolatos hibák javítására használhatjuk. Innentől kezdve ez következik, hogy a qubitok száma önmagában nem old meg semmit. Meg lehet duplázni a qubitok számát, és az összesen 90%-át a dekohereálás rögzítésére költeni.
Itt körülbelül megjelenik a logikai qubit fogalma. Durván fogalmazva, ha van egy 100 qubital rendelkező processzorod, de 40 közülük a dekohereálás rögzítésére irányul — akkor 60 logikai qubit marad. Azok, amelyeken a saját algoritmusod fut. A logikai qubitok koncepciója jelenleg inkább elméleti, a gyakorlati megvalósításokról személyesen nem hallottam.
Hibák és azok javítása
Még egy probléma a kvantuális processzorokkal. Ha megfordítasz egy qubitot, 2% valószínűséggel a művelet hibával zárul. Ha két qubitot összekapcsolsz, a hibás működés valószínűsége eléri a 8%-ot. Vegyél egy 256 bites számot, hash-eld SHA-256-tal, számold ki a műveletek számát, és számold ki a valószínűségét annak, hogy EZT a sok műveletet hibamentesen végrehajtod.
A matematikusok megoldást kínálnak: hibajavítás. Vannak algoritmusok. Két logikai qubit összekapcsolásának megvalósítása 100.000 fizikai qubitot igényel. A bitcoin-káosz nem fog hamarosan bekövetkezni.
Processzor architektúrája
Szigorúan véve, kvantumszámítógépek nincsenek. Csak kvantumprocesszorok léteznek. Miért lenne szükség RAM-ra, amikor a munka ideje milliszekundumokra korlátozódik? Q# nyelven programozok, de ez egy magas szintű nyelv. Lefoglaltam magamnak 15 qubitet, és csinálj velük, amit akarsz. Ha akarom, összekapcsolom az első qubitet a tizedikkel. Ha vágyom rá - összekapcsolom az első hatot.
Valódi processzoron nincs ilyen szabadság. Kértem, hogy kapcsolja össze az első qubitet a 15-tel – a fordító 26 további műveletet generál. Ha szerencsém van. Ha nincs szerencsém – akkor százat generál. A qubit csak a szomszédaival tud összekapcsolódni. Több mint 6 szomszédot qubittal még nem láttam. Alapvetően léteznek optimalizáló kvantumprogram fordítók, de ezek egyelőre inkább elméleti jellegűek.
Minden processzornak megvan a saját utasításkészlete, és a qubitekkel való kapcsolatok eltérőek. Ideális világban szabad Rx, Ry, Rz és azok kombinációi állnának rendelkezésre, plusz szabad összekapcsolás tucatnyi jelző alapján, plusz Swap: nézd meg az operátorokat a -ben. A valóságban azonban néhány qubit pár áll rendelkezésre, és a CNOT (q[0], q[1]) összekapcsolása egy műveletbe kerül, míg a CNOT (q[1], q[0]) már 7-be. És a koherencia egyre csökken...
Ár, elérhetőség, fenntartási feltételek, amortizációs idő, programozási eszközök…
Az árak nem kerülnek nyilvánosságra, az átlagemberek számára az elérhetőség körülbelül nulla, az amortizációs időt a gyakorlatban nem számolták ki, a programozási eszközök csak most kezdődnek. Dokumentáció az arxiv.org-on.
Milyen információkat kellene kérni a szakértőktől egy új kvantumszámítógép megjelenésekor?
A fenti listán kívül tetszenek nekem a lehetőségek a és :
Jó lenne, ha minden új kvantumszámítógépről szóló cikk két jellemzővel kezdene - a párhuzamos összekapcsolt qubitekről és a qubitok megtartási idejéről.
Vagy még jobb - a legegyszerűbb benchmark végrehajtási idejével kezdődne, például a 91 szám prímtényezőinek meghatározása.
Forrás: habr.com
