The mystery surrounding quantum physics and the opportunity it poses for disruption in the computing industry are both reasons that I have kept, and continue to keep, the subject in my peripheral.
I was first introduced to the weird and wonderful world of quantum mechanics when shown Thomas Young's double slit experiment during a physics lesson at school. For those not familiar with the experiment, or those who have simply forgotten, it is the process of shining light (or an alternative) from a single monochromatic source through 2 parallel slits and observing the result (as shown in figure 1). When looking at the optical screen, you see a interference pattern depicted by the light and dark beams. This is what you might expect from two interfering waves such as sound. However, we know that light is in fact made up of discrete particles (photons) and therefore should not, at least classically, behave like a wave. In order to understand how this was possible with light, scientists measured which slit the photons were actually passing through. On doing so, they observed the particles only passing through 1 slit each and very peculiarly the result of the experiment actually changed to reflect this i.e. a single light beam for each slit rather than the interference pattern.
Somehow, when only observing the result of the experiment the light was acting like a wave, but when observing the actual experiment the light behaved as a single particle. Nature had truly thrown us a curve ball. For me as a student, this was incomprehensible as it defied my current understanding of the universe and better yet nobody seemed to be able to properly explain it without referring to some form of 'quantum magic'. Even Einstein referred to quantum entanglement as 'spooky action at a distance', a phenomenon that seemingly ignores the universe's speed limit of 1 Planck unit. Like most, I suspect, I let this abnormality in the universe simply drift to the back of my mind as I tackled other problems... problems I actually found comprehendible.
However, when I got the opportunity to watch Professor Brian Cox and Microsoft Research's Krysta Svore present on quantum computing at Future Decoded 2015 I was certainly intrigued to see what we'd been working on and how things had developed. The presentation was great - Brian Cox introduced the audience to quantum physics and how that manifested itself with quantum computing and Krysta mapped this onto the work they'd been doing in research to make this a reality. I won't give a comprehensive review of their presentation here but it, ironically, left me in a superposition of optimism and pessimism. A year on, my key takeaways are... this is a very very hard problem and there are lots and lots of different ways to try to solve it.
Shortly after this presentation, my boss came to me and said something to the effect of, "I'd like to understand more about what we are doing at Microsoft with Quantum computing, give me a brief in a few weeks". I was certainly interested in finding out more for myself so I got to work. It appeared we had a 2 fold strategy; develop a hardware agnostic quantum software platform with tooling and develop the hardware platform itself. Given that the hardware was stored in a secret bunker somewhere and my office isn't very well suited for atomic experiments, I opted to concentrate my efforts on the software side of things. Krysta had talked about a platform called Liquid in her presentation which they were developing in research. This platform, as well as running on potential quantum hardware, could also be simulated on a classical computer by utilising additional bits. After a little searching on the web, I found it on StationQ's GitHub page. At the time, this was very primitive and had only just been open sourced. There was little to no documentation but after a few hours I managed to hack together a sample. Liquid also had a few examples such as Shor's algorithm and the ability to calculate the ground state of a molecule. What the platform does nicely is provide a familiar syntax to anyone who has used F# before. It also provides a set of abstracted primitives in the form of quantum gates, mathematical operators and data structures. After a few hours working with it, you begin to grasp, at least mathematically, what the code can do. With my very limited understanding of quantum computing or the true capabilities of Liquid, I just about managed to brief my boss.
Then I fell back into the rhythm of business and didn't look again at quantum computing until very recently. At Microsoft, we have a mission to democratise AI and allow it to empower everybody equally. With the advances in data creation, analysis, storage and visualisation there is an every growing need for faster and faster computing power made available via the cloud. This has recently been demonstrated with the popularity of our GPU enabled VMs and FPGA integration in Azure. However, the trajectory of Moore's law is starting to outpace our ability to cram more and more transistors on silicon chips. This is because we're now working at such a small transistor size (< 20 atoms) that quantum effects and the laws of thermodynamics kick in. So what is beyond silicon? Molecular transistors? Quantum transistors?
I'm not sure, but it looks like computing might need a fundamental change to avoid stagnation and help us solve some of our truly critical problems (global warming) over the coming decade. Most experts appear to predict we're more than 10 years away from the first commercially viable quantum computer, although, you can never be to sure whose showing their hand and who is not. Either way, it's definitely an interesting area that I recommend you look into and I will try to blog about in the future. The guys over at StationQ would welcome any collaboration or feedback via their GitHub!