Rene: Hi, welcome to QuBites, your bite sized pieces of quantum computing. My name is Rene from Valorem Reply and today we're going to talk about noisy quantum systems and I'm very honored to have a special expert guest today Dr. Christopher Granade. Hi Chris, and welcome to the show, how are you today?
Christopher: I'm doing great! Thanks for having me here.
Rene: Can you tell us a little bit about yourself and your background as it relates to quantum computing?
Christopher: Yeah, so I started, you know, really getting interested in quantum computing a little over 10 years ago. Started learning, oh hey, you know, there's this area that really intersects between physics and computer science and math and all these other things that I love and it kind of gave a neat idea of like there's a different way of computing than classical that might tell us something about what kinds of computation are possible in the universe and you know that's a little bit high-minded in everything but it was a lot of fun kind of learning about different parts of complexity and how you know quantum computing really challenges a lot of assumptions there. And based on that as an undergrad you know started pursuing a master's degree and a PhD in quantum computing and then did a post-doc at University of Sydney and about four years ago joined Microsoft as a research software developer and I now work on Quantum development kit in particular Q# language libraries and things like that. It's been neat to see that, sort of come back to a lot of, you know what interested me about quantum computing in the first place and putting the software tools out there to help explore and understand what quantum computing really is and make the most of it.
Rene: Got it. So, let's dive into today's topic. In QuBites season one and two we have already talked with Dr. Sarah Kaiser who is also the Co-author of this amazing book ‘Learn quantum computing with Python and Q#- A hands-on approach”. It's been out now since June, I think, and of course I have a copy here which I paid for myself folks right. So, this is not an advertisement right, but this is an advertisement in the sense that I'm just going to highly recommend this book. I started to read it, it's fantastic and so Sarah Kaiser, whom you know from previous episodes and finally we also have Chris. I'm sure you're happy now that it's finally out right, because I can imagine it's a lot of work, this book. It doesn't look that thick but folks this is amazing content in here, definitely get a copy. Anyhow what has happened since the release? Any other feedback and comments you received so far?
Christopher: Well, I mean first off, it's been really wonderful and just very humbling to hear, you know, the amazing and kind words, you know, such as what you've just shared, so thank you very much for that. But you know, I think the other that has been really neat to see is quantum computing hasn't stopped moving when we put out the book right? You know that a lot of things keep moving forward and there's a lot of really neat exciting developments that are continuing to get be made and you know Q# as a language, the libraries for Q#. I think one of the things that's really excited me in the months since we put that out there and what I love to talk about my follow-up would be quantum intermediate representations. So really using LLVM, using everything we've learned about classical compilers and toolchains and out of represent classical programs taking that and applying it to help solve some pretty difficult problems with running quantum computers on real actual scalable hardware. And so seeing the progress in that area has really been exciting to see. As far as feedback, you know, I just mentioned I think it's been really amazing to hear all the kind words, you know. We really wanted to try and make quantum computing more understandable you know, tend to not make things more weird or mysterious but just actually talk about quantum computing. So, it's been really neat to hear that. But I think the other thing that I didn't really expect, that's been really neat to hear, is that our book has helped people realize, “oh hey I can use Q# along with whatever tools I already know and love like Python. You know that there's a, I think. a kind of tendency to think ‘oh hey, quantum computing means I need a whole new tool set I need to give up everything I know. But I really think of it more like, you know, a GPU or something like that where I might write in CUDA or I might write an Open CL but that's part of a program written in Python or whatever other language I already know. You know rather than reinventing the wheel with something that works well alongside and so hearing that our book has really hope to address that and invite people in who are using Python and loving Python, that's been really neat to hear.
Rene: Awesome! And I can only just reiterate, get a copy, it's amazing! You made a great point about looking at quantum computers more, let's say, like an acceleration chip, like a GPU kind of thing, right? It's giving us extra power because, like there's a lot of misconceptions still out there, a couple of people still think like quantum computers are going to replace our classical computers, right? Folks, this is not going to run a quantum computer, like, you will still have classical computer, you will still have semiconductor chips and all of that is still needed. And so, I love how you phrase it, like saying, basically quantum computer is almost like a GPU, like an accelerator chip, another extra thing I have for certain specific tasks, better and faster for certain specific task and so to actually reach this and that we actually have good quantum computers in the end. I know you also work on this quantum computing research field in the control and simulation of these noisy quantum systems right and of course it's very important for error correction and prevention in the end as well. So, can you explain why noise plays such an important role in quantum computing systems and why error correction and prevention is key for achieving the true quantum advantage. Basically, meaning that quantum computers are outpacing classical computers for certain problems of course. So long question but let's talk about noise.
Christopher: But I think you set that up beautifully because you know it's right there and like talking about advantages for certain problems right. Because if I go all the way back to, you know, what quantum computing really is, we don't expect, as you say, quantum computing will replace your phone or replace, you know, kind of your web browser, right? There are tasks for which quantum computers will simply never be better than corresponding classical computers. A lot of what we do in quantum algorithms and quantum applications is find areas where you know for specific problems, we get a lot of speed up by using a quantum computer. On the other hand, if there isn't a particular speed up then we'll just stop running the classical program put on a quantum computer and we really don't expect to see an advantage if we're not actually using an algorithm that takes advantage of unique properties about physics. And that gets back at noise because this is, you know, at a very broad brush what noise in a quantum system does. It makes your quantum computer behave more like a classical computer and in its most extreme I can't actually run any of those algorithms that really give us that advantage if there's too much noise or if I'm running an algorithm that's too sensitive to that noise. And then, longer term we know from things like the fault-tolerant threshold theorem that there is a good enough that we can get noise past that really helps us address that longer term. But if you're sitting running on hardware today running near term algorithms on what's currently available, noise is a part of life and that's something that you have to deal with and understand as an algorithm's developer, so that you can use error correction you can use error medication or you can use and write algorithms that are inherently more robust to that noise. And you know understanding noise and studying and simulating how noise affects your programs helps understand how that noise will affect the output that you get. So, I think that really ties into that broader story of how we reach an advantage to be able to understand the effect that noise has in getting there.
Rene: Right. It makes a lot of sense. Thanks for that excellent explanation. Still, it's limited availability of real quantum computing hardware, right? So, it's still like real quantum computers are still very much in its infancy. Actually, getting access to one even though they're in the infancy stage basically it's very very hard right, to get access to real quantum computing power. Unfortunately there are services like Azure quantum, for example, where you can basically rent computing time on a real quantum computer via the cloud, it's a super fantastic model. Anyhow like in order to solve these challenging problems and you know with noise and so on and like you said, like making developers or algorithm developers aware that they need to think about noise correction and so on. It’s also important to simulate noise for quantum computers because we don't have enough quantum real hardware there, right? So, we need to simulate noise as well in order to simulate properly for the real quantum computer in the end. And so, this is not possible to work to basically simulate noise with quantum computing algorithms and you mentioned that you also work on the Azure QDK, the Azure Quantum Development Kit, but there is a noisy simulator in there right and can you tell us really bit about that exciting feature and what does it do and how can it be leveraged?
Christopher: Absolutely. So, we were really excited to have put this out there a few months ago for, you know, in preview for people to try give us feedback. You know, see how things work but the QDK now includes an open system simulator that's another way of saying a noisy simulator that lets you attach a noise model that says when I push the H button, when I call in H operation, actually this other object called a quantum channel happens instead of the ideal H. And then you, as a developer, can take and attach a noise model that describes what should happen when you press an H. I called an H operation and then run the same programs that you run on the standard typical full state simulator that simulates an ideal quantum computer and see how your outputs change on, when you're running against that noise model. And that lets you do a number of things and you know as you said that lets you predict how things will work on hardware, you know, maybe not perfectly. It's hard to really learn exactly what noise works on quantum. It is affecting your quantum computer and the process of learning that, there's a whole field of research that as you allude to that was a lot of what I didn't HTM called quantum characterization verification and validation, sometimes under the acronym QCVV. But that's how you learn what noise models apply to your system but having a noisy simulator not only lets you take the noise model that you learn through something like QCVV and run your programs against that, but it also lets you hypothesize what a different noise model might look, to say if I had a qubit that was this good, this high fidelity what would I see if I had a qubit that was worse than what’s there in hardware. And that's really important because it is a moving target we keep seeing better and better hardware, you know, you mentioned the really exciting hardware available through Azure quantum today and I could barely even imagine noise rates that low from, you know, all of the experience I had talking to experimentalist friends like 10 years ago. It's night and day, you know, we've really come a long way and there's a lot less noise and devices now than there used to be. So, maybe back then I would say, hey, let me go simulate on a noise model that's impossibly good no one could ever get and then we got there, right, because things keep improving. So, maybe I'm here sitting today, I'll want to simulate how an algorithm works an even lower noise or noise that might look a little bit different, that's more coherent or more incoherent and having the ability to set those noise models really lets me do that exploration as a quantum developer, to see how different noise will affect my probes.
Rene: A very important topic that we haven't covered in our show so far and that you don't hear very often actually, like you said, it's so important because like typically when you have a simulator it simulates the ideal state but that's not how the real world works, right? So, injecting noise and simulating noise so that it's closer to how it would actually execute in real quantum computer that of course has noise is super important. Because otherwise you might get crazy you might, you might scratch your head and debugging, that’s a whole different story, right? So yeah! Super important topic. Thanks so much Chris for joining us today and sharing all your insights. That’s very much appreciated, thank you so much.
Christopher: Absolutely! And thanks for having me here. Really exciting to talk about it and you know, your kind words, I really appreciate it.
Rene: Well thanks everyone for joining us for yet another episode of QuBites your bite-sized pieces of quantum computing. Watch our blog, follow our social media channels to hear all about the next episodes and of course take care of yourself and your loved ones and see you soon, bye bye!