My Summer Quantum Computing Experience
August 13th, 2016 Kyle Herndon I’ve wanted to post on this blog for quite a while, but until now life seems to have gotten in the way. However, I received an anonymous tip that if I don’t write a post, I might not get another chance in the future. With this threat, I decided to make some time. Funny how that works. Given this is my first post, I think it would be prudent to note that I am not quite as computer science oriented as the others who have posted this far. I consider myself more of a physicist than a computer scientist, but I do both and I am interested in everything in between. Specifically, of all subjects, I am most interested in quantum computing. First, I was quite happy to hear Justin Trudeau’s comment this summer. Getting Right Into Things A bit later on, I was excited to check out IBM’s “Quantum Experience”, whose main selling point is the fact that it allows you to run actual programs on a quantum computer! My excitement decreased a little bit when I realized that it’s only 5 qubits. Regardless, it’s still pretty amazing that IBM was able to release this technology to the public in such a fashion. The first thing you will see when you register an account is that you can view tutorials on quantum computing. When I first read them I was amazed; IBM did a fantastic job of opening up the subject to anyone who is technically minded. Whereas all the articles I’ve previously read completely avoided any math, IBM embraces it while still making it accessible. They do an incredible job of organizing the basic building blocks and forming them into compound concepts. For anyone who is willing to do a little linear algebra and wants to understand what quantum computing is about, this is my absolute best recommendation to start with. (Whether or not you have a technical background this video by Kurzgesagt is a pretty good watch). When you’re actually writing programs for the quantum computer to run you’ll use what IBM calls the “Quantum Composer”. IBM did a good job once again of making the interface extremely approachable, however, in doing this — as is the case with most visual scripting languages — they left out too much useful functionality, most notably the ability to write functions. Some of you may now wonder, “Why is he complaining? There are only five qubits. If you asked me to let you write functions on a computer that only had access to five bits, I would laugh in your face.” If this were a classical computer, you would be right. However, the operations that can be performed on qubits are much more complex and merely setting the value of qubits can take multiple lines each. Furthermore, IBM’s computer’s architecture (understandably) implements little more than the bare minimum operations required to make a universal gate set. This scarcity of functionality becomes a real issue because IBM is trying to make a community of quantum programmers, yet without functions, it is hard to modularize code sufficiently for sharing. IBM has stated they are interested in making improvements to the composer, so I presume this will get better with time; yet, the computer scientist in me can not help but cringe. One of the most common gates used in quantum algorithms is the Toffoli gate. This is not implemented as a single function and takes 17 lines to execute. Wow. With my deep love for quantum computing, I’m interested to see where this will go in the future, especially given how widely IBM seems to want this type of knowledge spread. If IBM works with the community, this could very well develop into something like a GitHub for quantum algorithms. IBM obviously jumped on this train really early, and it makes me wonder if any of the other tech companies have something in store for us.