Microsofts Quantum Programming Language, Q#, kan hjälpa dig att lära dig kvantfysik

Krysta Svore Microsoft Q# Quantum Computing Coding
Microsoft

Datorer håller på att bli konstiga.

Innehåll

  • Att göra mysteriet tillgängligt
  • En kvantgemenskap
  • Förbereder inför morgondagen

Efter decennier som teori sitter de första kvantdatorerna nu i ett fåtal utvalda labb över hela världen. De är rudimentära och utan tvekan mindre praktiska än tidiga elektroniska datorer som 50-tons ENIAC. Ändå gör forskare framsteg. IBM, Google och Intel gör framsteg på kvanthårdvara, och en praktisk kvantdator känns äntligen som en verklighet nära framtiden istället för ett ämne för science fiction.

Det är en möjlighet. Det är också ett problem. Kvantfysik är en konstig värld av teleportering och sannolikhet som inte följer reglerna vi känner till. De flesta människor förstår inte kvantmekanik, och det inkluderar programmerare, de människor som kommer att behöva sätta kvantdatorer till praktisk användning.

Relaterad

  • Ytreparationsdelar är nu tillgängliga via Microsoft Store
  • Microsoft Teams får nya AI-verktyg – och de är gratis
  • Microsoft retar designöversyn av stora Windows 11-appen

Microsoft har en plan för att utbilda dem.

Att göra mysteriet tillgängligt

Alla utvecklare som vill lära sig ett nytt programmeringsspråk, som C# eller Javascript, vill omedelbart använda hennes lektioner. Ändå kan kvantdatorns linda göra det svårt. Att skapa ett program för många kvantenheter är ungefär som att försöka skriva i binär maskinkod – förutom ännu svårare, eftersom kvantmekaniken. Det här är inte bara ett fält som är väl förstått utan svårt att översätta. Det är ett studieområde där vissa grunder fortfarande är okända.

Microsoft Quantum Q#, kodning på en dator
Matt Smith/Digital Trends

Det inkluderar orsaken Varför kvantdatorer fungerar. "Vad vi har inom kvantberäkning är bevis på att kvantdatorer kan överträffa klassiska datorer," sa Krysta Svore, principiell forskningschef på Microsofts Quantum Architectures and Computation-grupp. "Den heliga gralen i vårt område skulle vara ett verkligt matematiskt bevis på det."

Quantum computing är så nytt, och så olik allt tidigare, att även toppforskare förblir i mörkret om viktiga och grundläggande element.

Quantum Computing 101

Att lära programmerare att koda för quantum på riktig hårdvara är uteslutet för närvarande. Microsofts kvantprogrammeringsspråk, Q#, kringgår det problemet genom att erbjuda enkel tillgång till de verktyg som behövs för att börja programmera. Det innebär att göra Q# så bekant och lättillgänglig som möjligt, även medan forskare fortsätter att göra genombrott i grunderna för hur kvantdatorer fungerar.

Q# är inte undangömt bakom en vägg av fruktansvärd dokumentation och dåligt förklarade installatörer. Programmerare kan komma åt det via Visual Studio, världens mest populära utvecklingsmiljö. Och programmerare behöver inte ha tillgång till en kvantdator för att använda den.

Istället kan de programmera som om deras kod skulle köras på en verklig kvantenhet men sedan köra den på en virtuell simulering. Det är möjligt eftersom kvantdatorn inte behandlas som sitt eget kompletta, oberoende system, men istället som en accelerator som anropas av en klassisk dator som kör en klassisk dator koda.

"Vi föreställer oss att kvantdatorn är en annan resurs i Azure, förutom GPU, FPGA, ASIC att använda. Azure blir hela det här tyget som inkluderar en kvantdator i sin dator, säger Svore till Digital Trends.

quantum microsoft q kodning python interop jpg 3605
quantum microsoft q kodningsprov github jpg 3604
quantum microsoft q-kodning 3603
quantum microsoft q kodning python simulering jpg 3602

De flesta programmerare är bekanta med att använda specialbyggd hårdvara för specifika uppgifter, och de flesta är bekanta med att använda resurser i molnet. Att starta Q# skiljer sig inte från de välkända uppgifterna. Kvanthårdvara kan vara exotisk och sällsynt, men den programmeringsmiljö som Microsoft erbjuder för Q# är det exakt vad du skulle se idag om du tittade över axeln på en programmerare som mest Fortune 500 företag. Det gör det mycket mindre skrämmande.

"Den ultimata visionen är att användaren inte säger "Ok, nu måste jag ta den här appen och köra den på den här delen på processorn, den här delen här, den här delen där," sa Svore. "Det är samma sak med kvantberäkning. Vi vill att acceleratorn ska vara sömlös.”

En kvantgemenskap

Programmerare kan presentera sig för Q# genom en uppsättning kostnadsfria tutorials som Microsoft kallar Quantum Katas. Varje lektion involverar "en sekvens av uppgifter om ett visst kvantberäkningsämne" som programmerare utmanas att lösa. Att hitta rätt lösning är målet, men resan är lika viktig. Katas är inte menade att lösas i ett enda pass. De undervisar genom trial-and-error och introducerar programmerare till grunderna i kvantprogrammering längs vägen.

Q# och Quantum Katas ger en transformativ nivå av feedback till kvantprogrammering

Chris Granade, en Research Software Development Engineer på Microsoft, såg dem själv när han deltog i en handledningssession som arrangerades av University of Technology Sydney. "Det var verkligen fantastiskt att se att människor kunde gå från noll kunskap i kvantum till att skriva det," sa han till Digital Trends. "Det som var omvälvande var att när människor hade ett missförstånd, led de inte av det. De kunde köra katas, de kunde se att de fick fel svar och den feedbacken fick verkligen folk att förstå på ett praktiskt sätt."

Den praktiska upplevelsen förvandlar omedelbart kvantberäkning från ett teoretiskt koncept till en praktisk verklighet, vilket gör stor skillnad i hur människor närmar sig det. Programmerare kanske inte gör fysiska föremål, men de är vana vid att se feedback precis som alla andra hantverkare. De skapar en sak och den fungerar – eller så gör den inte det. Q# och Quantum Katas ger den nivån av feedback till kvantprogrammering, vilket ger alla som är intresserade en chans att gräva i och förstå vad kvantberäkning gör möjligt.

Quantum Computing

Förändringen som Granade såg personligen sker inte bara i klassrummen. Quantum Development Kit, som Q# är en del av, kan laddas ner av vem som helst under en öppen källkodslicens. Intresserade utvecklare kan inte bara börja använda det, utan aktivt bidra till samhället. Svore berättade för Digital Trends att QDK-nedladdningar uppgår till "de övre tiotusentals", och deltagare har redan lagt till "en handfull betydande bidrag", inklusive nya algoritmer och dokumentation.

Även om det fortfarande är en nisch, placerar detta Quantum Development Kit ribban tillräckligt lågt för att även en nybörjare programmerare kan börja experimentera med Q# och, genom att göra det, börja förstå vad som gör kvantberäkningar bock. Det är användbart inte bara för programmerare, utan för hela kvantfysikområdet. Att förklara kvantteorier är en stor huvudvärk inte bara för att kvantvärlden är konstig jämfört med den "klassiska" fysik de flesta programmerare känner till, men också för att de praktiska implikationerna av kvantfysik kan vara svåra att demonstrera.

"Du behöver inte kunna fysiken. Du behöver inte känna till kvantmekaniken."

Klassiska datorer hanterar binära absoluter. 1:or och 0:or. Av eller på. Quantum handlar om sannolikheter, och programmering för kvant innebär att skapa algoritmer som manipulerar sannolikheter för att producera den korrekta lösningen. "Du vet att den här vågen inkluderar min lösning. Dessa andra vågor inkluderar inte en lösning. Så jag vill att vågorna, när de stör, ska försvinna”, förklarade Svore. "Och jag vill att vågen som inkluderar min lösning ska bli riktigt stor. I slutet mäter vi kvanttillstånden. Sannolikheten att få ut den höga vågen är mer sannolikt ju högre vågen är. Det är så vi designar kvantalgoritmer."

Förstår du vad Svore menar?

Om inte, må du inte dåligt. Det är inte lätt att förstå, och det är inte lätt att visa. Även tankeexperiment avsedda att förenkla kvantmekaniken, som Schrodingers berömda katt, kan få dig att klia dig i huvudet.

Microsoft Quantum Q#-ingenjörer
Microsoft

Microsoft hoppas att Q#, och Quantum Katas, kommer att erbjuda ett praktiskt alternativ för att närma sig ämnet. "Du behöver inte kunna fysiken. Du behöver inte känna till kvantmekaniken. Faktum är att jag erkänner att jag inte tog kvantmekanik förrän efter examen, säger Svore. "Jag började med kvantdatorer utan att någonsin läsa fysik på college. Jag är datavetare av utbildning."

Kvantprogrammering kan bli ett fönster av insikt genom att ge programmerare en chans att praktiskt använda kvantteorier utan att tappa verktygen de har kommit att förlita sig på. Det finns ingen anledning att spendera år på att lära sig fysik. Det är bara att hoppa in, skapa en applikation som använder Q# och se vad som händer.

Förbereder inför morgondagen

Dagens praktiska användning av Q# är begränsad eftersom det inte finns någon hårdvara att anlita. Microsoft har ännu inte byggt en kvantdator, och även om det hade gjort det skulle det vara för primitivt för att utföra användbara beräkningar. Men en programmerare kan kontrollera sitt arbete genom att köra Q# på en simulerad kvantdator. Det gör det möjligt att koda ett program för quantum med en rimlig förväntan att, när hårdvaran är tillgänglig, kommer den att fungera.

Krysta Svore, Chris Granade, Microsoft Quantum Q#
Krysta Svore, Principle Research Manager på Microsofts Quantum Architectures and Computation-grupp (till vänster) och Chris Granade, en forskningsprogramvaruutvecklingsingenjör på Microsoft.Matt Smith/Digital Trends

Det är avgörande. Kvantdatorer är inte bara en bättre modern dator. De är fundamentalt olika. De kräver olika hårdvara, olika algoritmer och ett annat tillvägagångssätt för att lösa komplexa problem. Även om en tidsresenär dök upp med en funktionell, stabil kvantdator med miljoner kvantbitar, skulle vi ha problem med att använda den, precis som romerska forskare skulle bli förbryllade om de fick en bärbar dator. 99,9 procent av moderna utvecklare, programmerare och datavetare har ingen erfarenhet av kodning för kvant, och ingen aning om hur kvantfysik fungerar. Grunderna måste introduceras innan fler imponerande upptäckter kan göras.

Undervisning som kommer att ta tid – men Microsofts Q# är ett viktigt steg framåt.

Redaktörens rekommendationer

  • ChatGPT kan nu generera fungerande Windows 11-nycklar gratis
  • Microsoft kan ha ignorerat varningar om Bing Chats olåsta svar
  • Kinesiska hackare riktar in sig på kritisk amerikansk infrastruktur, varnar Microsoft
  • Du kan nu prova avatarer och virtuella utrymmen i Microsoft Teams
  • Microsoft Build 2023: de största tillkännagivandena inom AI, Windows och mer