Mange tror kvantedatamaskiner vil revolusjonere hvordan vi gjør beregninger, og til og med gjøre mye av dagens krypteringsteknologi ubrukelig. Samtidig er andre igjen skeptiske, og mener kvantedatamaskiner er overvurdert.
I det siste har aktører som IBM og Microsoft kommet med SDK-er og verktøy som gjør det mulig for utviklere å begynne å skrive programmer og få dem til å kjøre på ekte kvantedatamaskiner i skyen.
Har du hørt om språket Q#..?
Dermed har kvantedatamaskiner plutselig blitt noe ikke bare fysikkforskere på en eller annen lab har et forhold til, men en teknologi utviklere faktisk kan ta i bruk nå.
Men hva er egentlig kvantedatamaskiner? Hvordan virker de? Hva kan de gjøre som ikke vanlige datamaskiner kan gjøre?
Vi spurte en av Norges fremste eksperter, fysikkprofessor Sølve Selstø ved OsloMet.
– Sølve, hva er egentlig en kvantedatamaskin?
– En kvantedatamaskin er veldig forskjellig fra en vanlig, klassisk datamaskin på den måten at den kan behandle informasjon og data på en mer generell måte. En måte som kan prosessere flere bitstrømmer samtidig – i én beregning.
– De bruker noe som kalles qubits? Det må du forklare...
– En kvantebit, en qubit, er den minste informasjonsenheten i en kvantedatamaskin. Til forskjell fra en "vanlig" bit, som er enten 0 eller 1, er en qubit generelt en slags blanding av 0 og 1; den er litt av begge deler samtidig.
– Den store fordelen med dette oppstår når man setter flere slike kvantebits sammen. Når en klassisk bitstrøm øker med én bit, øker informasjonsmengden litt. Når et system med et visst antall qubits øker med én qubit, blir den potensielle informasjonsmengden doblet. Altså: Den vokser eksponentielt!
– Dette har å gjøre med en veldig spesiell kvanteegenskap som vi kaller sammenfiltring, entanglement på engelsk.
– Derfor er det lite relevant å se på "spesifikasjoner" som antall bits hvis man vil sammenligne klassiske datamaskiner og kvantedatamaskiner. Med rundt 55 kvantebits vil du ha en minnemengde som overgår de kraftigste superdatamaskinene som finnes – og sannsynligvis noensinne vil finnes.
«Med rundt 55 kvantebits vil du ha en minnemengde som overgår de kraftigste superdatamaskinene som finnes.»
– Hva kan du gjøre med en kvantedatamaskin, som du ikke kan med en vanlig datamaskin?
– Å utnytte en potensiell kvantefordel – å utvikle algoritmer som kan håndtere informasjon på en mer generell kvantemåte, er langt fra trivielt.
– En grunn til dette er at når vi skal lese resultatet av en kjøring, får vi uansett bare én bitstrøm som svar. Og kvantefysikken er til og med slik skrudd sammen at det er tilfeldig hvilket av de mulige resultatene vi vil lese av. Om vi kjører kvanteprogrammet vårt om igjen, vil resultatet antagelig være annerledes – selv om vi gjør alt likt.
– Så når vi skal utnytte kvantemulighetene må vi gjøre det på en smart måte – en måte som sørger for at bare de svarene vi er interessert i vil være mulige å lese av til slutt. De andre må bli "nullet ut" på veien. Og de som blir igjen, må vanligvis analyseres på en statistisk måte.
– Det finnes visse slike smarte algoritmer. Den mest kjente er kanskje Shors algoritme, som kan finne primtall langt raskere enn noen metode vi kjenner til for vanlige datamaskiner. Litt marginalt kanskje, men også ganske relevant: En av de mest brukte krypteringsmetodene vi bruker i dag baserer seg fullt og helt på at det er vanskelig og tidkrevende å finne primtall.
– En søkealgoritme, Grovers algoritme, kan også vise til en kvantefordel.
– Det finnes en hel "dyrehage" av kvantealgoritmer med kvantefordel. Noen relevante, noen av mer akademisk interesse. De fleste har med beregningsmessige – numeriske – bruksområder å gjøre.
– Er det tilfeller der det er bedre å bruke en vanlig datamaskin?
– Massevis!
– Selv om det forsåvidt finnes mange kvantealgoritmer som i teorien kan vise til en kvantefordel, er det også massevis av tradisjonelle metoder som fremdeles ikke har møtt sin kvante-overmann.
– Hvor energikrevende er kvantedatamaskiner?
– Dette er kanskje en underkommunisert kvantefordel. Med den er kanskje ikke så lett å tallfeste, siden denne teknologien fremdeler er under utvikling.
– Når en lykkes med å løse store, kompliserte problemer med mer effektive algoritmer – algoritmer som går raskere og krever mindre regnekraft – vil jo dette i seg selv være energisparende.
– Når det gjelder det mer tekniske, er nok nedkjøling den største utgiftsposten når det gjelder energi. Men, til forskjell fra store datasentre, er det bare selve kvante-chipen som må kjøles ned. Og når vi etter hvert kan sette sammen flere og flere qubits på slike kort, vil neppe dette føre til at energiforbruket vil øke på same måte som regnekraften. Dette henger også sammen med at det krever relativt lite energi å manipulere enkelt-qubits.
«Vi håper at kvantedatamaskiner vil kunne spille en viktig rolle når det gjelder de store utfordringene vi har med å nå bærekraftsmålene våre.»
– I denne sammenhengen er det kanskje også interessant å løfte blikket og se litt større på det. Vi håper jo at kvantedatamaskiner vil kunne spille en viktig rolle når det gjelder de store utfordringene vi har med å nå bærekraftsmålene våre.
– Kanskje kan vi, ved å lykkes med avanserte kvantekjemiske beregninger, kunne finne katalysatorer som kan gjøre kjemisk industri langt mindre energikrevende. Kanskje kan vi bruke nye optimeringsteknikker innen logistikk til å finne løsninger som gir langt lavere CO_2-avtrykk?
– Hva er de største utfordringene for å kunne skalere opp kvantedatamaskiner?
– Den største utfordringen er nok det vi kaller dekoherens. Akkurat som bølger på havet, kan biter av kvanteinformasjon settes sammen enten slik at de forsterker hverandre eller nuller hverandre ut – mer eller mindre.
– Denne vesentlige egenskapen, som vi kaller koherens, vil kvante-systemet gradvis miste dersom vi ikke lykkes med å holde det veldig godt isolert fra miljøet rundt. Siden vi snakkar om små, sensitive systemer, er dette veldig vanskelig.
– En annen utfordring når en skal skalere opp en kvantedatamaskin med flere qubits er dette med konnektivitet – å klare å sette opp arkitekturen slik at flest mulig qubits kan «snakke» direkte med de andre «qubitsene».
– Kommer kvantedatamaskinene til å erstatte vanlige datamaskiner?
– Kvantedatamaskiner kommer ikke til å ta over. De vil fungere i tandem med tradisjonelle datamaskiner.
– En ser for seg heterogene arkitekturer der deler av jobben blir satt bort til kvanteprosessorer, mens andre deler blir håndtert på "tradisjonelt" vis.
– Hva er de mest vanlige misforståelsene du møter på?
– Kanskje tanken om at en kvantedatamaskin bare er en veldig rask datamaskin – en maskin som kjører algoritmer mer effektivt.
– Kvantedatamaskiner er bare annerledes. De håndterer informasjon på en mer generell måte. En måte som gjør at noen problemer, neppe alle, kan løses på en raskere måte, ved å implementere spesifikke metoder som klarer å utnytte kvantefordelen.
– En kvantedatamaskin er noe helt annet enn en klassisk maskin med uvanlig rask prosessor eller usedvanlig stort minne.
– Hvis jeg som utvikler vil utforske kvantedatamaskiner, hvor begynner jeg?
– Kanskje kan IBMs kvanteplattform være et fint sted å starte. Her får du ikke bare tilgang til et ganske intuitivt GUI, men også mulighet til å kjøre kvanteprogrammene dine på faktiske kvantedatamaskin-prototyper.
– Og så må du gjerne ta kontakt med oss på OsloMets kvantehub om du har lyst til å teste kvantedatamaskinen vår!
– Er det noen bestemte programmeringsspråk eller verktøy jeg kan bruke?
– Her må jeg innrømme at jeg har relativt lite "hands-on" erfaring. Men mitt inntrykk er at Qiskit er det dominerende rammeverket. Språket, som baserer seg på Python, er utviklet hos IBM. Det legger til rette for å kunne utvikle kvantekode som kan kjøres på kvantedatamaskiner eller vanlige datamaskiner som simulerer kvantedatamaskiner.
– Det skal også nevnes at IBM slett ikke er den eneste aktøren her. For eksempel utvikler også Intel, Google og Microsoft sine egne kvante-SDK-er.
Intel lanserer SDK som lar deg begynne å utvikle for kvantedatamaskiner
– Mye kvantekoding baserer seg på at en adresserer enkelt-bits direkte; vi er ikke kommet så langt i evolusjonen på dette området. Men det skjer mye utviklingsarbeid når det gjelder rammene for kvante-programvareutvikling.
– På sikt, og i takt med utviklingen av bedre og mer robust kvantemaskinvare, vil det bli utviklet mer sofistikerte tilnærminger til kvanteutvikling – der vi i større grad kan snakke om skog, og ikke bare trær og barnåler.