Microsoft stelt eind dit jaar programmeertaal voor quantumcomputers beschikbaar

Microsoft stelt nog dit jaar een preview van een systeem beschikbaar waarmee ontwikkelaars aan de slag kunnen met programmeren voor quantumcomputers. Het systeem simuleert dertig qubits, waar de ontwikkelaars voor kunnen programmeren.

Microsoft integreert de programmeertaal in Visual Studio en biedt functies als debugging en autocomplete. Tegelijk met de gratis preview eind dit jaar maakt Microsoft handleidingen en libraries beschikbaar waarmee ontwikkelaars aan de slag kunnen, ook als ze geen kennis op het gebied van quantumcomputers hebben.

Gebruikers kunnen problemen simuleren waar ze tot aan dertig logische qubits voor kunnen inzetten op hun eigen systeem, terwijl een selecte groep gebruikers via Azure veertig gesimuleerde qubits kan inschakelen. Volgens Microsoft kunnen ontwikkelaars dankzij de gesimuleerde omgeving sneller aan de slag zodra quantumcomputers daadwerkelijk beschikbaar zijn. De programmeertaal moet op deze quantumcomputers te gebruiken zijn.

Microsoft denkt dat de quantumcomputers onder andere voor het trainen van machine learning voor flinke verbeteringen gaan zorgen. Het bedrijf is wereldwijd betrokken bij onderzoeksinstituten, waaronder de TU Delft, voor de realisatie van quantumchips. Het bedrijf richt zich met name op topologische qubits, die beter bestand zijn tegen invloeden van buitenaf.

Vorig jaar stelde IBM een omgeving beschikbaar waarin ontwikkelaars algoritmes op een quantumprocessor konden uitproberen.

Microsoft quantumchip

Door Olaf van Miltenburg

Nieuwscoördinator

25-09-2017 • 16:21

39

Reacties (39)

39
38
26
6
2
4
Wijzig sortering
Ik kan het niet echt opmaken uit het artikel, maar het lijkt er op dat het voortkomt uit het al bestaande LIQUi|> (Language-Integrated Quantum Operations).
LIQUi|> includes state-of-the-art circuit simulation of up to 30 qubits on a single machine with 32 GB RAM, limited only by memory and computing threads. The largest number factored to date on the simulator is a 13-bit number, which required 27 qubits, half a million gates, and 5 days runtime. The circuit was based on Beauregard’s circuit for Shor’s algorithm.
Anoniem: 367951 25 september 2017 16:33
Kosten de simulaties dan niet vreselijk veel tijd als ze op een gewone computer uitgevoerd moeten worden?
Ja precies. Hoe kun je een qubit simuleren met een gewone bit?
Simpel, gewoon een kwestie van vectoren/matrices berekenen.
Alleen dan heb je een diepte van 2^n waarvan n de hoeveelheid qubits je probeert te simuleren.

Een setje van 2 qubits is |00> is dan ook een array/vector van [1,0,0,0], als je deze wilt uitlezen gooi je met een dobbelsteen tussen 0 en 1. Bij een resultaat van 0,33 op d dobbelsteen kijk je of het meer is dan de index waar je bent. Is dit waar dan is de nummer index je bitset omgerekend naar binair. Zo kun je dus willekeur in qcomputers simuleren.

Voor mijn minor heb ik een emulator geschreven die de quantum taal van ibm kam simuleren, tot ongeveer 20 qubits op een macbook pro 2012 met 8 gigabyte ram.
Deze kun je hier vinden https://github.com/valvy/miniqubit

Edit: foutje

[Reactie gewijzigd door valvy op 23 juli 2024 08:49]

Door jouw reactie snap ik waarom mijn ouders het altijd vervelend vonden als ik iets uit ging leggen over de computer, en dan het woord simpel gebruikte ;)
Het was niet de bedoeling om zo over te komen, ik typte dit berichtje in de trein vandaar dat het zo kort door de bocht is.

Laten we voor de grap een twee qubit register nemen waar het honderd procent zeker is dat het 100% is dat deze collapsed in 00 dit is een vector. [1,0,0,0] bij een staat van 01 dan hebben we een vector van [0,1,0,0] staat van 10 [0,0,1,0] en 11 een vector van [0,0,0,1]. [index :0, index:1, index :2, index :3] oftewel [00,01,10,11]

Deze vector bestaat uit complexe getallen van double precission. Dit vanwege superposition. Een vector kan daarom ook [0.5,0,0.5,0] zijn.

Willen we dit “collapsen” dan pakken we een willekeurig getal tussen 0 en 1 van double precission. Daarna sommen we telkens de norm op en kijken we of het totaal meer is dan ons willekeurig getal.

Laten we voor de grap de vector [0.5, 0,0.5,0] even doen met een willekeurig getal 0.3 en daarna een willekeurig getal 0.6

Res += 0,5
Is het meer dan 0.3? Index is 0 dus het antwoord kan 00 zijn
Res += 0
Is het meer dan 0.6? Nee kan dus nooit 01 zijn
Res += 0.5
Is het meer dan 0.6? Ja het antwoord is 2, omgerekend 10 in binair
Res += 0
Hoeft eigenlijk niet maar het antwoord kan nooit 11 zijn

Nu willen we ook graag instructies uitvoeren. Dit doen we met een matrix
Een register van bijvoorbeeld 1 qubit met een bitflip (2 is me net teveel werk)
[0,1][1] = [0]
[1, 0][0]. [1]

Dit is een bitflip (paulix gate), wil je een entangled bit bitflippen, dan doe je een kronecker product eerst (kun je beter even opzoeken op wikipedia)

De reden dat het zo zwaar is om een quantum computer te emuleren is vanwege exponenten. Een twee qubit register is 4 double precission getallen, een 64 qubit register is 18446744073709552000 double precission complex getallen dat PER instructie wordt nagegaan. Natuurlijk valt er wel wat concurrent te doen maar uiteindelijk is het gewoonweg niet mogelijk om binnen de levensduur van het universum een groot quantum algoritme uit te voeren op een klassieke computer.

Hopelijk heb je hier wat aan,

Edit: typo

[Reactie gewijzigd door valvy op 23 juli 2024 08:49]

Ik had het niet beter kunnen verwoorden _/-\o_ Weet iemand een artikel met wat meer info en uitgebreider (lees eenvoudiger) wordt uitgelegd hoe qbits nu werken? Ik weet dat een qbit een 1 of een 0 of 1 en 0 tegelijk kan zijn maar daarmee snap ik totaal niet hoe dit vele male efficienter kan zijn.
Een goed youtube filmpje zou nog mooier zijn imo, je leert het beste door het te horen en zien.
https://www.youtube.com/watch?v=JhHMJCUmq28

Deze vond ik wel behulpzaam bij het snappen van de principes

[Reactie gewijzigd door evanraalte op 23 juli 2024 08:49]

Anoniem: 58230 @valvy25 september 2017 23:21
Simpel...
Door alle mogelijkheden apart te berekenen. Simulatie zal dus ook heel langzaam zijn. Een qubit is ook maar een 1 of een 0. Alleen kan een qubit beide statussen tegelijk hebben
Waarschijnlijk we, maar dat geeft toch niet? Het simuleren van botsingen van quantumdeeltjes, een explosie of een FPGA circuit kost ook vele malen meer tijd dan de gesimuleerde gebeurtenis, maar het versnelt het ontwerpproces aanzienlijk.
Ik call het nu vast. De taal gaat ergens in de toekomst Q# (Q Sharp) heten
Zou kunnen :) Maar Q bestaat al en is iets totaal anders, dus wellicht verwarrend. C en C# zijn namelijk wel verwant.
De overeenkomst tussen C en C# is wel eens vergeleken met de overeenkomst tussen car en carpet. :P

(C# is Java, maar dan door Microsoft, net zoals de CLR Microsofts interpretatie is van de JVM. C is een low-level procedurele niet-OO taal die naar assembly compileert )
Voor die 30 qubits die we nu krijgen lijkt QBasic me voldoende ;)
we hebben het wel over het bedrijf dat een 3de game console "one" noemt dus ik zou niet logica gaan gebruiken. :*)

maar Q of Q# zou zeker een logische naam zijn ervoor :)
De gedachte zou vast “one device to rule them all” geweest zijn (vanwege de uitstekende game en home entertainment mogelijkheden). En even mijn eerlijke mening; xbox 720 rolt ook niet lekker van de tong! ;)
Xbox 361 was toch ook mogelijk geweest?
Anoniem: 343906 25 september 2017 16:26
Logisch om aan te sluiten bij het bekende c.q. Visual Studio al had Microsoft van mij ook echt wel met een nieuwe omgeving mogen komen hiervoor.
Met het steeds sneller worden van nieuwe hardware komt er een punt dat Visual Studio soepel en snel werkt. Voor die tijd moet Microsoft weer allerhande nieuwe features die je nooit gaat gebruiken aan Visual Studio toevoegen.
Het probleem met VS is voornamelijk dat het nog steeds een 32bits applicatie is. Zodra je een solution hebt die 2.75 GB RAM begin te gebruiken begint VS te crashen of zelfs gewoon geen debug informatie meer tonen.
Dat is voor mij nu, zelfs met resharper gaat alles redelijk vlot.
Dacht nog niet eens zo zeer aan de performance van Visual Studio an sich maar meer aan het meer aansluiten op de paradigma's die je gebruikt bij quantum computers. Je hebt nu de kans als Microsoft zijnde om echt een daadwerkelijk nieuw product op de markt te zetten. Kan me allicht vergissen maar zou mij niet verbazen wanneer een concurrent dat wel gaat doen, al dan niet een kleinere speler, al dan niet afkomstig vanuit de universitaire wereld via al dan niet een start up (dat waren aardig wat al dan niets ;) )

Toevoeging:

Kwam een aardig artikel tegen naar aanleiding van precies datgene wat ik aan trachtte te stippen: https://www.nextplatform....fast-key-codes-keep-pace/ en het rapport naar aanleiding waarvan dat artikel is geschreven: https://www.geosci-model-...2017-186/gmd-2017-186.pdf

[Reactie gewijzigd door Anoniem: 343906 op 23 juli 2024 08:49]

Weet iemand wat de mogelijke verschillen kunnen zijn van een programmeertaal voor quantum computers tegenover een voor alledaagse computers?
Het fundamentele verschil is dat er logica-operaties mogelijk zijn met quantum computers die je niet kan uitdrukken in "normale" computers. Zie https://en.wikipedia.org/wiki/Quantum_logic.
Een hoop, je zou het misschien het beste kunnen vergelijken met een functionele taal zoals haskell (maar ook niet helemaal)

In het beginsel kun je een quantum programma niet stoppen om te wachten voor user input of een file operatie. Maar nog verder er zijn geen for loops of while loops.

Het is eigenlijk gewoon wat lastigere lineaire algebra. Je multipliceert een setje qubits(vector) met een gate (matrix). Entangle je de qubits doe je dat met een kronecker operatie. Wil je het uiteindelijke resultaat dan pak je een willekeurig getal tussen 0 en 1 en ga je de vector index langs of het meer is.

Programmeren is zonder side effects, wiskundig en willekeurig maar ook herproduceerbaar.
Die vergelijking met Haskell vind ik wat onduidelijk. Maar feit is wel dat de taal gewoon een EDSL is in F#, dus ik begrijp je redenering.
Is dit dan niet meteen een prachtige kans om je deze taal meester te maken voor een leuke aanstelling in de toekomst?
Het is nog maar de vraag hoe het uiteindelijke landschap eruit gaat zien voor quantum computing en in hoeverre je wat gaat hebben aan kennis van deze taal van Microsoft, meestal is een eerste versie van een nieuw gebied niet meer dan een goede poging. Ik denk dat je het meer moet zien als ervaring krijgen met de denkwijze van het paradigma van quantum computing dan met de daadwerkelijke taal.

Desalniettemin is het zeer interessant om deze taal eens uit te gaan proberen.

[Reactie gewijzigd door A Lurker op 23 juli 2024 08:49]

Plus dat het nog maar de vraag is hoeveel mensen daadwerkelijk op dit niveau gaan programmeren.
https://www.microsoft.com/en-us/quantum/technology
Onderaan deze pagina staat een afbeelding waarin een stukje code staat in Visual Studio.
Het lijkt hier te gaan om de nieuwe programmeertaal.
Als ik kijk naar de Github repo (https://github.com/StationQ/Liquid), lijkt het er op dat het gewoon een EDSL is in F#.
zeker iets om eens mee te gaan spelen.
Dit moet natuurlijk gewoon Q# heten. Als dat niet de naam is, gemiste kans!

Geschreven in F#? Dat is cool.

[Reactie gewijzigd door Sandor_Clegane op 23 juli 2024 08:49]

Op dit item kan niet meer gereageerd worden.