'Det smukkeste fysik, der længe er præsenteret': Google viser vejen til fejlkorrektion for kvantecomputere


Fejlkorrektion er en nødvendighed inden for alle beregninger - både på klassiske computere og kvantecomputere.
I en ny artikel i Nature viser Google nu for første gang, at fejlraten i en kvantecomputer kan reduceres mere og mere jo flere fysiske kvantebits, man samler til en logisk kvantebit.
- emailE-mail
- linkKopier link

Fortsæt din læsning
- Sortér efter chevron_right
- Trådet debat
Jeg kan fint forestille mig, at vi på et tidspunkt får udviklet metoder, så vi kan "oversætte" en algoritme til en kvantealgoritme. Naturligvis vil det ikke altid kunne gøres, men det er heller ikke et krav. Er det ikke muligt, kører det på en normal computer, og uden mulighed for "kvantefordel". Ofte, vil en opgave ikke kunne løses i et huk som kvanteprogram, men måske kan den udføres på en kombination af en almindelig computer, og en kvantecomputer, hvor der løses sekvenser af flere "kvantekoder", som den sædvanlige computer fodre kvantecomputeren med.Hvorfor vil du dog ønske dig at bruge konventionelle algoritmer på kvantecomputere, Nis? Hele idéen med en kvantecomputer er jo, at der til visse problemer (langt fra alle) findes algoritmer (kvantealgoritmer), som er bedre end klassiske algoritmer, og som kun kan køre på en kvantecomputer. Men jeg er enig i, at det kommer til at tage tid, og det endnu heller ikke står helt klart, hvilke anvendelser det får størst betydning for. Det bliver næppe faktorisering af store tal (Shors algoritme), som bliver det bedste argument for at købe en kvantecomputer. Som mange andre tror jeg mere på optimering af kemiske reaktioner og beslægtede emner; som jo er et kvanteproblem, der kræver en kvanteberegning. Men vi vil se.
Du kan oversætte et program til stort set hvad som helst. Det væsentlige er, at programmeringssproget ikke er låst til hardwaren. F.eks. dur C++ ikke helt - en ordre som sizeof(pointer), giver ganske enkelt ikke svar på almindeligt hardware, og den kan sættes i samme bås som at returnere et helt tilfældigt tal. Det er ikke tilladt med en ordre, der kan fortælle om computeren er 8, 16, 32, eller 64 bits, hvis softwaren skal køre på kvantecomputeren. I nogle tilfælde kan opgaver ikke oversættes med en statisk compiler, men oftest kan det så gøres med dynamisk compiler. Mange moderne optimeringsalgoritmer beror på dynamisk compilering, fordi de kan oversæte og optimere kode som ikke kan håndteres med statisk compilering. Når koden optimeres med dynamiske compilere, så sker reelt det, at programerne ikke udføres, men løses.
Jeg forestiller mig, at kvantecomputerens relevans er at løse de NP-hårde problemer og måske også PSPACE problemer,
Hvis skal tale kompleksitetsklasser, er det BQP, som en kvantecomputer skal løse. Læs om BQP i forhold til NP og PSPACE her https://en.wikipedia.org/wiki/Quantum_complexity_theory
Jeg forestiller mig, at kvantecomputerens relevans er at løse de NP-hårde problemer og måske også PSPACE problemer, hvis man finder på snedige kvantecomputerrelevante algoritmer, der elimnerer ekstremt pladsforbrug, som så selvfølgelig ikke vil kunne afvikles på en konventionel computer.
Hvorfor vil du dog ønske dig at bruge konventionelle algoritmer på kvantecomputere
Jamen, det har jeg da heller ingen ønsker om, ikke mindst fordi QC er så meget dyrere.
Korrektion: Et par kommentarer tilbage jeg til at skrive at man kortere refresh-intervaller (RI) kunne gøre PC'en - det er naturligvis længere længer RI, der er brug for, hvis PC'en skal hurtigere. Det andet er noget vrøvl; beklager.
Dette sammen med uanvendeligheden på mange konventionelle algoritmer (og teknologien d,d,) er nok grunden til, at QC ikke bliver konkurrent til konventionelle computere de første par år.
Hvorfor vil du dog ønske dig at bruge konventionelle algoritmer på kvantecomputere, Nis? Hele idéen med en kvantecomputer er jo, at der til visse problemer (langt fra alle) findes algoritmer (kvantealgoritmer), som er bedre end klassiske algoritmer, og som kun kan køre på en kvantecomputer. Men jeg er enig i, at det kommer til at tage tid, og det endnu heller ikke står helt klart, hvilke anvendelser det får størst betydning for. Det bliver næppe faktorisering af store tal (Shors algoritme), som bliver det bedste argument for at købe en kvantecomputer. Som mange andre tror jeg mere på optimering af kemiske reaktioner og beslægtede emner; som jo er et kvanteproblem, der kræver en kvanteberegning. Men vi vil se.
Kvantebitredundans Jeg kan ikke slippe tanken om, at der lige nu skal så meget redundans (til) ...
Dette sammen med uanvendeligheden på mange konventionelle algoritmer (og teknologien d,d,) er nok grunden til, at QC ikke bliver konkurrent til konventionelle computere de første par år. P.T. er de mest et sort hul man kan hælde forskningsmidler i - hdsm.
Så vidt jeg husker, er der på PC'er en timer chip, og den har altid kunnet måle i mikrosekunder.
Det er, som du siger, muligt at API har været begrænsningen, chrono er trods alt et relativt nyt bibkliotek.
DRAM timer kan navnet antyde bruges til at sætte refresh intervallet på DRAM, har man god DRAM kan intervallet gøres mindre (=PC'en hurtigere). En tidlig udgave af Mark Russinovich's PC Tools havde funktioner til sætte dette interrupt og en funktion der kunne aflæse CPU tællerne, så man kunne se hvor mange cycles der blev stalled per sekund. Deraf kan man direkte beregne, hvor effektivt software kører (eller er skrevet),
Kvantebitredundans Jeg kan ikke slippe tanken om, at der lige nu skal så meget redundans - mange tusind pr. fysiske kvantebits - til for at kunne stole på en beregning med ganske på logiske kvantebits, at hvordan skal vi kunne stole på de resultater, der er beregnet allerede nu med kvanteteknologi på det nuværende stade...
Kan man forstille sig, at kvantecomputere kan fremlægge beviser for resultaterne? Ved nogle typer algoritmer, kan et bevis udført på en almindelig computer, bevise om at kvantecomputerens resultat er forkert eller korrekt.Der er meget, man ikke ved, og som skal undersøges. Desuden er fejlraten stadig alt for høj. Men der nu et proof-of-concept, når det gælder fejlkorrektion i kvantecomputere. Så må vi se, hvad det ender med en gang.
Chippen havde tre timers. Den ene blev brugt til 18,2 Hz. En anden var fri, og brugt til lyd, så den kunne nemt bruges til 65535 deler. Den sidste blev brugt til DRAM refresh. Jeg har ikke prøvet at bruge den til andet, men hvis man kan sætte den til at tælle til et passende tal, der ikke går op i 65536 * 65535, så vil den kunne bruges til at øge antallet af bits. Tallene skal gerne være indbyrdes primiske, men kan det ikke opnås, er det nok at de er "primiske nok" tal.Cyklussen er her 65536 * 65535, så hvis man kan garantere en enkelt interrupt, for hver time, så fungerer det fint.
Der er meget, man ikke ved, og som skal undersøges. Desuden er fejlraten stadig alt for høj. Men der nu et proof-of-concept, når det gælder fejlkorrektion i kvantecomputere. Så må vi se, hvad det ender med en gang.
Man kunne også bruge en interrupt indgang fra LPT porten eller COM porten. Det var muligt uden indgreb. Herefter satte man interrupt controlleren til at ikke reagere på uønskede interrupts, og at den interrupt man brugte skulle have størst prioritet. I interrupt rutinen, hentede man port 40 ind et par gange, og fik dermed timer værdien, så vidt jeg husker ned til mikrosekunder. Der var på de gamle PC'er et 18,2 Hz interrupt. De 18,2 Hz kom som et resultat af at timerchippens tæller var udløbet efter 65536 steps. Det betød, at aflæsningen af den, havde en præcision på 65536 * 18.2 Hz = 1.19 MHz, en smule under et mikrosekund. Et problem kunne være præcisionen af interruptet, men normalt kunne det gøres ekstremt præcist, hvis man havde styr på interrupts, og disablede alle der ikke var nødvendigt, og selv overtog styringen af alle, herunder 18,2 Hz interruptet. Når så ens tidstagning var færdig, så kaldte man det antal missede interrupt på 18,2 Hz interruptet til styresystemet, så dens ur passede. Så kan man så diskutere, hvordan man undgår 18,2 Hz interruptet, og kan regne ud, hvor mange gange den har været igennem, når man disabler interrupt til den. Der var flere timers i chippen, og opsatte man en til 65536 og en anden til 65535, så kunne man ud fra forskellen bestemme antallet af 18,2 Hz missede interrupts, og dermed også den høje del af timeren (hvis der var brug for 31 bits). Cyklussen er her 65536 * 65535, så hvis man kan garantere en enkelt interrupt, for hver time, så fungerer det fint.Tricket var gentage målingen nogle gange, så også fik 1-taller, lægge dem sammen og dividere resultatet med antal målingen. Så fik man brugbart estimat af tiden for en måling. Idag kan PC måle mikrosekunder og heldigvis kører de ikke tusind gange hurtigere;-)
Så vidt jeg husker, er der på PC'er en timer chip, og den har altid kunnet måle i mikrosekunder. Det er nok mest programmør evnen der har været til millisekunder og ikke mikrosekunder. Men, det kunne være et problem med mange gentagne målinger, fordi det var nødvendigt med tid til beregningerne. Jeg er ikke sikker på at gate indgangen til timer chippen blev ført ud, men dengang var chips store klumper, så det kunne klares med en bidetang og loddekoble.Tricket var gentage målingen nogle gange, så også fik 1-taller, lægge dem sammen og dividere resultatet med antal målingen. Så fik man brugbart estimat af tiden for en måling. Idag kan PC måle mikrosekunder og heldigvis kører de ikke tusind gange hurtigere;-)
Minder mig lidt om dengang en PC kun kunne måle i millisekunder og fordi man målte korte tidsrum kunne de typisk være 0 eller 1 ms.
Tricket var gentage målingen nogle gange, så også fik 1-taller, lægge dem sammen og dividere resultatet med antal målingen. Så fik man brugbart estimat af tiden for en måling. Idag kan PC måle mikrosekunder og heldigvis kører de ikke tusind gange hurtigere;-)
Har man undersøgt, om der skal den samme overhead på i ekstra kvantebits, for at opnå samme sikkerhed, hvis computeren har henholdsvis mange logiske kvantebits, og få logiske kvantebits? Kan man risikere, at tore computere, med mange logiske kvantebits, skal have et langt større overhead, for at opnå samme sikkerhed, så opgaven bliver mere umulig ved et stort antal logiske kvantebits?