Egenskaber ved kvantecomputere

Kraften i en kvantecomputer måles i qubits, den grundlæggende måleenhed i en kvantecomputer. Kilde.

Jeg gør facepalm efter hver læsning af en sådan sætning. Det førte ikke til noget godt; mit syn begynder at svigte; snart må jeg henvende mig til Meklon.

Jeg tror, det er på tide at systematisere de grundlæggende parametre for en kvantecomputer. Der er flere af dem:

  1. Antal qubits
  2. Koherenstid (dekoherens tid)
  3. Fejlrate
  4. Processorarkitektur
  5. Pris, tilgængelighed, driftsvilkår, afskrivningstid, programmeringsværktøjer osv.

Antal qubits

Det er åbenlyst, at jo flere desto bedre. I praksis skal man dog betale for qubits, og ideelt set skal man købe præcist så mange qubits som nødvendigt for at udføre opgaven. For udviklere af eksklusive spilleautomater er det tilstrækkeligt med én qubit pr. automat (til at generere tilfældighed). For en 'brute force'-angreb på RSA-2048 kræves der mindst 2048 qubits.

De mest hypede kvantealgoritmer bærer navnene Grover og Shor. Grover muliggør 'hackning' af hashes. For at knække bitcoin kræves computere med mindst 256 qubits om bord (man kan ændre sværhedsgraden af bitcoin, men lad os holde os til dette runde tal). Shor tillader faktorisering af tal. For at faktorisere et tal med længden n i binære cifre kræves der mindst n qubits.

Den nuværende maks: 50 qubits (allerede 72?). Og faktisk er 50 qubits grænsen. Grænsen for simulering af en kvantecomputer. I teorien kan vi simulere et hvilket som helst antal qubits på klassiske computere. I praksis kræver tilføjelse af en enkelt qubit til simuleringen en fordobling af de klassiske computere. Tilføj rygter om fordobling af qubits hvert år, og spørg dig selv: hvordan debugger man algoritmer til 25651210242048 qubits? Der findes ikke simulatorer, og på en kvanteprocessor kan du ikke sætte breakpoint.

Koherenstid (dekoherens tid)

Kohærens og kohærenthed er ikke det samme. Jeg foretrækker at sammenligne kohærenthed med regenerering af RAM. På en RAM-brik er der milliarder af celler, hver med en ladning, nul eller et. Denne ladning har en meget interessant egenskab - den aflader. Oprindeligt bliver en 'et' celle til en celle på 0,99, derefter 0,98, og så videre. Tilsvarende opbygges der 0,01, 0,02, 0,03... på nul. Man må opdatere denne ladning, 'regenerere' den. Alt hvad der er mindre end halvdelen, nulstilles til nul, alt andet opdateres til et.

Kvantprocessorer kan ikke regenereres. Derfor er der kun én cyklus for alle beregninger, indtil den første 'utætte' qubit. Tiden indtil den første 'utæthed' kaldes dekohærens-tiden. Kohærenthed er derimod den tilstand, hvor qubits endnu ikke er 'utætte'. Her man kan se på lidt mere voksne forklaringer.

Dekohærens er relateret til antallet af qubits: jo flere qubits, desto sværere er det at opretholde kohærenthed. På den anden side, med et stort antal qubits, kan man bruge nogle af dem til at korrigere fejl forbundet med dekohærens. Herfra udledes, at antallet af qubits i sig selv ikke afgør noget. Man kan fordoble antallet af qubits og bruge 90% af dem til at sætte dekohærens fast.

Her opstår begrebet logisk qubit cirka. Kort sagt, hvis du har en processor med 100 qubits, men 40 af dem er rettet mod at fastsætte dekohærensen - så har du 60 logiske qubits tilbage. Dem, hvorpå du kører din algoritme. Konceptet med logiske qubits er nu mere teoretisk, jeg har ikke hørt om praktiske implementeringer.

Fejl og deres korrektion

Endnu en plage for kvantprocessorer. Hvis du inverterer en qubit, vil operationen med 2% sandsynlighed ende med en fejl. Hvis du sammenfletter 2 qubits, når fejlprocenten op på 8%. Tag et tal på 256 bits, hash det til SHA-256, regn antallet af operationer, og beregn chancen for at udføre ALLE disse operationer uden fejl.

Matematikere tilbyder en løsning: fejlkorrektion. Der findes algoritmer. Implementeringen af én sammenfletning af 2 logiske qubits kræver 100.000 fysiske qubits. Bitcoin-kapet vil ikke komme snart.

Processorarkitektur

Strengt taget findes der ikke kvantecomputere. Der er kun kvanteprocessorer. Hvad skal man med RAM, når arbejdstiden begrænses til millisekunder? Jeg programmerer i Q#, men det er et højniveau sprog. Jeg har tildelt mig 15 kubitter, og gør hvad jeg vil med dem. Jeg ønskede det, og sammenflettede den første kubit med den tiende. Jeg ønskede det — sammenflettede de første seks.

På en ægte processor er der ikke så meget frihed. Jeg bad om at sammenflette den første kubit med den 15. — compileren genererer 26 ekstra operationer. Hvis jeg er heldig. Hvis ikke, genererer den hundrede. Problemet er, at en kubit kun kan sammenflettes med nabokubitternes. Jeg har ikke set mere end 6 naboer på en kubit. I princippet findes der optimerende kvanteprogram kompilatorer, men de er endnu mest teoretiske.

Hver processor har sit eget sæt instruktioner, og forbindelserne mellem kubitterne varierer. I en ideel verden har vi vilkårlige Rx, Ry, Rz og deres kombinationer, plus fri sammenfletning over et dusin egenskaber, plus Swap: se på operatørerne i Quirk. I virkeligheden har vi derimod et par kubitter, og sammenfletningen CNOT (q[0], q[1]) koster én operation, mens CNOT(q[1], q[0]) allerede koster 7. Og koherensen svinder…

Pris, tilgængelighed, opbevaringsbetingelser, ammortiseringstid, programmeringsværktøjer…

Priserne er ikke offentliggjort, tilgængelighed for den almindelige borger er praktisk taget nul, ammortiseringstiden er ikke beregnet i praksis, programmeringsværktøjer er kun i startfasen. Dokumentationen findes på arxiv.org.

Hvilken information skal man så kræve fra eksperterne ved lanceringen af en ny kvantecomputer?

Udover listen ovenfor kan jeg godt lide forslagene fra PerlPower og Alter2:

Det ville være godt, hvis hver artikel om en ny kvantecomputer begyndte med to karakteristikker — antallet af samtidigt sammenflettede kubitter og tiden for opbevaring af kubitter.

Eller endnu bedre — med tiden for udførelse af den enkleste benchmark, for eksempel at finde primtallene for tallet 91.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster