Building quantum applications with D-Wave's Leap
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Condello, Alexander
In the past, quantum computing was largely reserved for researchers, physicists, and scientists with direct access to physical quantum computing systems. But the game has changed, thanks to the cloud. Barriers to quantum computing are coming down quickly. Today, cloud access (like D-Wave’s Leap 2 quantum application environment) and improvements in quantum computing hardware, software, and developer tools are allowing programmers around the world to code on live quantum computers in real-time. Developers, students, and researchers around the world can now tap into the power of a quantum via their browser — quantum mechanical knowledge not required. Users and private companies have already built over 200 early applications on D-Wave’s computers in industries ranging from automotive to machine learning, aerospace, finance, and beyond. The quantum application era is here, and the growing quantum developer community is making it a reality. In this session, Alex Condello, Manager of Applications Development Technology and Tools at D-Wave Systems, will talk about the burgeoning quantum application development ecosystem, and how developers can start learning to code on a quantum computer today. This includes a walkthrough of Leap 2, D-Wave's new quantum cloud service equipped with hybrid solvers, and D-Wave's Ocean SDK. Alex will also explore some of the early applications that developers and companies have built to-date.
 Okay, so this is the 15 minute delayed and with an excellent improv intro to building quantum applications with D-Wave's leap. So if we go to the next slide. So I'm going to skip over my intro, but the really quick version is that I am the manager of applications development technologies and tools at D-Wave. So one of our mandates is writing the open source tools in Python that people use to access the D-Wave system and to solve practical problems with our quantum computing products. So I also want to just say that, you know, we're really invested in the Python open source ecosystem. And because of that pretty much everything I'm going to be talking about today is available in open source stuff is available online and in our leap platform, and we really, really want feedback from you all. So things like GitHub issues, bug reports, pull requests, that's all super valuable to us because it helps us prioritize because we really want to make this accessible to you all. Next slide. Normally I would do a quick demo with our online platform, but I think I'm going to cut that in the interest of time. So let's go on to the next one. And instead and one more. And talk about solving problems with binary quadratic models, which is the problem class that we at D-Wave are interested in solving with our system. So I think that the metaphor that we often use when we're talking about solving problems with our system is the so-called landscape metaphor, which is imagine that you are on a landscape. And this sort of height of the various parts of the landscape, the hills and the valleys, are defined by, or in some sense represent the quality of your solution. And the problem that we're trying to solve is to find the lowest space on the landscape, and that one corresponds to the best quality solution. So it's a metaphor that's useful. We tend to talk about like there is a large energy ridge between two solutions, which means you have to walk like way uphill, except much, much worse solution as you sort of journey from one solution to another using a classical algorithm. And the value that quantum computing brings is its ability to essentially, I'm going to use a metaphor here because this will get upset with me, tunnel through these energy barriers to sort of jump into other valleys in a way that a classical computer can't do. Next slide, please. So to make this a little bit more concrete, I want to talk about a specific example that helps sort of demonstrate how we think about solving problems with these binary quadratic models and is a really good representation of how we solve problems on the quantum computer. So imagine that I have a network of pipelines. You can sort of see it on the right hand side there. And these pipelines intersect at various junctions. So you can see that the pipe between one and two and the pipe between two and three, they intersect at a junction too. What we would like to do is to find a minimum set of junctions from which we can monitor every pipe in the segment. So if we jump to the next slide, please. So you can see here on the right hand side an example of this so-called minimum cover, which is that from each of those different locations, we can, every single pipe is adjacent to at least one of those red junctions. And it's one thing, it's important to note that there's also some other options here. In fact, we could, for instance, have a monitoring station at node one instead of node two. That's fine, but the point is to find some minimum set, the smallest number of locations from which we can monitor every junction. It's also really, and you could sort of probably work this pipeline problem out on a piece of paper without too much issue, although it's not trivial, trivial. But as you can sort of imagine that as this gets bigger, this problem becomes increasingly difficult. Next slide, please. But so here's what solving that problem with the ocean tools looks like. So everyone here, I think should be, I normally would say, does everyone read Python? But I think here we can probably rest assured that people do. So here is the Python code using our packages that solves this problem. So at the top, you can see we're importing network X, which some of you might be familiar with. It's a very popular graph library, open source library in Python that was developed by some folks out of Los Alamos National Labs, but is pretty widely used. And you can see right away that we're leveraging sort of Python's open source ecosystem because we have implemented our own sort of extension to that package called D-Wave Network X, which extends some of the notions in that one. And you can also see that we're importing the sort of some objects from our D-Wave system package that lets us access the quantum computer. Let's go to the next slide. So before I actually jump back to that in a moment, but I want to talk a little bit about how we organize our software stack. So at the very bottom, we have a set of compute resources. So those are things like CPUs and GPUs, just like normal. But what's new and different when you start talking about quantum computing is the addition of this quantum processing unit. And I really want to dwell on this for a moment because it's important to think of this quantum processing unit as another co-processor. It's like a GPU in that you're never going to use quantum QPUs to sort of, you know, one of the questions that it's getting asked is, can I play crisis on your quantum computer? And the answer is no, because you wouldn't necessarily, you wouldn't have an operating system on a quantum computer. You wouldn't use it for a text editing. You wouldn't use it for, you know, watching movies. You might use it the way that you use a GPU to accelerate some aspects of that. So you might be doing rendering and use the quantum computer to accelerate that, but it's not in and of itself sort of a full fledged computer that can run, you know, an operating system and a GUI and run a keyboard and all that kind of stuff. So starting at the bottom, you have these CPUs and GPUs and the QPUs. Sitting above that, you have a set of samplers. So these are where, this is the level that these binary quadratic models are solved at. So this is sort of a set of algorithms slash packages that people can use to solve that problem class I was describing. And then above that, being a software developer and having a team of software developers, we wanted a uniform abstraction level for these different solvers, because they all have sort of different needs and they're all have strengths and weaknesses. Finally sitting above that, we have a bunch of mapping methods. One of the ones I touched on was this network X package. And then above that we have our applications. So let's go to the next slide, please. So going, you know, we can now go back to that little ocean script that I described before. And here you can actually see those abstraction layers in practice. So at the top there, we have the sampler equals embedding composite D-Wave sampler. So the D-Wave sampler is our access to the quantum processor. It's the sort of, it's the object that encodes the, you know, the network calls and all of that to access the QPU. On that we have this embedding composite. That's what gives us our uniform sampler API. That's what allows us to solve sort of in some sense arbitrary problems on it. And then we have our, we use network X to specify a graph. This is the same graph that I, you know, had in the picture before. And then we use the problem mapping layer, this min vertex cover function, where we pass in the graph and the sampler and it uses the sampler to solve this problem. So you can see that sort of abstraction layers in just one relatively short Python program. If we could jump to the next slide, please. So I'm going to not dwell too long on this, but I just want to sort of give you the mathematical formalism that underpins the problem that we're actually trying to solve here. So really the way that you should think about using our quantum computer and using classical solvers that solve the same type of problem is it is trying to find a vector V that minimizes this equation. And the things I want you to note about this equation is number one, that this vector V is over binary variables. So, you know, yes, no, or negative one, one or zero, one binary, I just mean two state. And the reason that this is the case is because our quantum computer has a set of qubits and these qubits ultimately end their computation in a classical state. That's why we can read them. You know, when you read them, they collapse into a classical state. And so ultimately our solutions are classical even though our computation is quantum. The other thing that I want to note is that sort of first term in the equation, which is this VIVJAij. This is the quadratic part of the problem. This is what makes these problems difficult. This is that sort of second order interaction between the different antenna or the different pipes and the different network vertices in my pipe network. That's what makes the problem difficult. It's not just pick the cheapest set of vertices. It's pick the cheapest set of vertices subject to the requirement that each pipe have a sensor. Next slide, please. So going back to our pipe problem, you can sort of see that why this is this binary quadratic problem. So first off, we have binary variables. Should junction one have a sensor or no at the binary variable? We have pairwise interactions. Each pipe must have a sensor. That's a sort of quadratic interaction, an interaction between two different variables. And then we have a linear optimization. I want to do it as cheaply as possible. So this pipeline problem was picked specifically because it is exactly already natively a binary quadratic model. So let's jump on to the next slide, please. So I want to point out that these binary quadratic models are an NP-hard problem, which I think a lot of you are familiar with what that means. So just to belabor the point, that means that if you can solve that problem faster than other NP-hard problems, then there's a fast transformation from those other hard problems into yours. And so what that means is that we are able to affect a huge variety of problems, even ones that aren't sort of natively binary quadratic models. So we take a problem, we reformulate it as a binary quadratic model, we solve it on the quantum computer, we take it back out, we undo that reduction. And some examples of things that we've looked at is formation of terrorist networks, we've looked at traffic flow optimization, we looked at satellite placement, we've looked at protein design, we've done image recognition, just 200 or more proof of concept and applications that have been run on the D-Wave system. If we can go to the next slide. So I've talked a little bit about the binary quadratic models, but that's not quite a quantum machine instruction. So we have to get from this binary quadratic model into something that the quantum computer can understand. So next slide, please. So here is the sort of, you know, the pretty pictures of the inside of our quantum computer. And so, you know, if you walked into our lab in Burnaby and outside of Vancouver in Canada, you would see our systems look like these big black boxes, just like you see on the left. This box is about the size of a, you know, a mid-sized bathroom. You can see the sort of server racks there on the front. Those are, you know, a little bit shorter than a person. And then inside the box, there is a sequence of refrigerators that are designed to keep the processor as isolated and cold as possible. So starting at sort of outside the box, obviously, is room temperature. Inside the box, it's like a refrigerator. Inside that first canister, you're at 50 Kelvin, then four Kelvin, then one Kelvin, then 100 millikelvin, and then 15 millikelvin. So for reference, this is colder than interstellar space. It's unbelievably cold. And this is all to keep a little chip that's about the size of your thumbnail, which you can see in that right-hand picture. Actually, let's jump to the next slide. A little chip that is about the size of your thumbnail, cold. And that's where the quantum, that's the quantum processing unit, this QPU. And you can see a picture there that's even zoomed in on that last picture where that sort of chip holder is bigger than this picture. So that chip is really quite small. Yeah, perfect. Thanks. You can see that it's being covered there by that little gold plate. If you remove the gold plate and you look at the next slide, you can see that's where the chip is. So jumping to the next slide. So again, this is a fairly math heavy and now physics heavy equation. This is the equation that defines behavior of our quantum computer. This is called an icing Hamiltonian. And if you look over on the right-hand side, you see an equation that looks an awful lot like that binary quadratic model I was describing. You can see that there is a sum over a bunch of binary variables. And then on the right-hand side, you see that there is a sum over quadratic interactions of those binary variables. We call this part of the icing Hamiltonian the quantum machine instruction. And this is the part that you are programming when you're programming the quantum computer. Next slide. And next slide. This is just the binary quadratic model, which shows you the similarity. And so there's a reasonable question, which is, how do you get a binary quadratic model into a quantum machine instruction? Because those are not quite the same thing. And the answer is that a quantum machine instruction is a binary quadratic model plus some rules. Those rules are, first off, your variables must be spin. So that's negative 1, 1. Before I said they could be binary, they could be anything. Now they must be either negative 1 or 1. And the reason for that is that our system is essentially running on little magnetic fields. And so your magnetic field is either basically pointing down or up, corresponding to spin values. We also have an energy range associated with our variables. And there's a sort of limited resolution that our processor has. And so that can be a problem. And finally, you have to be hardware structured, which is to say you must be shaped like the quantum computer. Let's go to the next slide. So if you zoom in even further on that chip picture, you can maybe make out, depending on the resolution of your screen, you see there's kind of a checkered board shape on the chip. Those checkered board shapes, each square in that checker board corresponds to eight qubits on our quantum processing unit. And you can see on the left the picture of the connectivity of our graph. So each of those eight qubit tiles is connected to the tiles to the sort of north, south, east, and west of it. And so each of these qubits is connected to six other qubits. Next slide. Now that's true on our current 2000 Q processor, but in the fall we're coming out with our advantage processor, which has quite a bit more connectivity and has a lot more qubits. So on the right hand side, you can see that it has a 5000 qubit processor with 40,000 couplers. And on the left hand side is our current technology with 2000 qubits and 6000 couplers. So ultimately, when you're getting your binary quadratic model, you need to shape it like one of these processors. And how you actually do that is a little bit beyond the scope of this talk, but suffice to say we have tricks to do that. Let's advance two slides, please. And the next one, please. Okay. So before we move on to time for questions, I want to talk a little bit about hybrid algorithm development. So hybrid algorithms are combining the best of classical and quantum computing. So next slide, please. So we have in Python, we have our D-Wave hybrid framework, which is a hybrid asynchronous decomposition sampler framework. It uses Python code to generate new hybrid algorithms in a very sort of plug and play kind of way. So you can create brand new never before seen algorithms with just a couple lines of Python. And I'm going to be talking a little bit about different types of hybrid algorithms. And then in them, I'm going to have a little snippet of Python code to sort of show you what that looks like. So next slide, please. So the motivation for this package is that normally these algorithms are quite complicated to specify. So on the left-hand side, you can see sort of the pseudo code for a particular hybrid algorithm called QB solve. And then on the middle, you can see that this takes many, many, many lines of C and C++ code. And then on the right-hand side, you can see an example that sort of loop racing branches, that is actual Python code that is used to implement this algorithm with only six lines of Python. And on the bottom, you can sort of see how this algorithm is organized. The basic idea is that you're running a problem both on a classical sampler on your local system while the problem is being run remotely on the quantum computer in Burnaby. You then take the problem, you determine which had the better solution, and then you decide whether you want to keep going. And you can either go back around the loop again or exit. So next slide, please. So I want to talk about a couple different types of hybrid algorithms because I think it's useful to have a sense of what one could do with hybrid. So the first one is decomposition. And this is obviously most often what people think about when they think about hybrid. So the idea here is I want to grab a sub-problem from the quantum computer. And I want to use it, sorry, from the larger problem. And then I want to solve that sub-problem on the quantum computer because quantum computers have at this point a relatively small number of qubits. And not all problems can fit directly on it. Next slide, please. The next type is pre-processing. So the idea here is I'm going to use a classical algorithm to pre-process my problem before submitting it to the quantum computer. Next slide, please. The next one is post-processing. So for instance, I want to use, I want to take the quantum computer to see the classical algorithm. And this is actually a very good thing to do because the quantum computer is very good at finding pretty good samples quickly, whereas classical computers can be very good at finding very good samples slowly. So if you can accelerate that by preceding the classical algorithm with a quantum computer, you can often get a lot of benefit. Next slide, please. The next sign is the so-called meta-algorithm. So the idea here is I'm going to take a purely classical algorithm and accelerate one part of it with a quantum computer. So for instance, if I'm trying to build a strong classifier out of a collection of weak classifiers, which is a typical machine learning task, I can use the quantum computer to help select my collection of weak classifiers to use to build that strong classifier. Next slide. And then the last one is it's not really a hybrid technique, but it is a useful technique which is so-called racing. So the idea is that the quantum computer, because it lives remotely in a lab in Burnaby, when you've submitted a problem to it, it has to, if you're submitting it from Europe, say, it might take a second to make its way across the internet and get to the lab in Burnaby, and then it solves the problem in the Burnaby in a couple of microseconds, and then it comes back over the wire over a second. And so your system is sitting idle for that two seconds, and there's probably a lot of computation that could be done in that time. And so by using racing, you can basically not, you can use that time to do other useful things to solve your problem. So anyways, that's the slightly rushed version of my talk. I wanted to open it up to questions, although I'm not 100% sure how the questions are going to get passed to me given our slightly messed up setup, but yeah. This is actually going to be quite easy because I'm just going to read them out. So okay. Thank you for the talk. That was nice, very intense. I didn't really quite understand all that, but just in theory, the top high level thing, so I think I do know. So the first question is, how far are we from commercial quantum computing as a service? So QCAS. Yeah, I mean, so we have, I mean, quantum computers are available in the cloud today. That's both D-Wave and other providers like IBM, Kisget. So in some sense, and they're all purchasable with time. So in the commercial sense, we've already, we already have that. I think implicit to your question is, when are quantum computers going to be valuable to customers? When are we going to start seeing advantage with quantum computers? And the answer I will give is that we are already seeing commercial advantage using hybrid systems. So that's combining quantum and classical. So we're already starting to see cases where we're able to provide advantage to customers, value. Now, if the customer say was to hire a team of computer scientists and give them a year, could they come up with a classical algorithm that would be able to replace the quantum computer? Almost certainly. This isn't sort of a scientific result, but it is nonetheless promising that we reached a point of sophistication with quantum computers, that we are able to affect real world problems and use them in real world commercial applications. Do you think we will see more slur in quantum computing? Absolutely. I expect you. Yeah. Yeah, I mean, just to sort of give a picture, the quantum computer, as I said, has to pass through all these different refrigerators, right? And when we're programming the quantum computer, you're sending signals down to that processor that's being kept at 15 millikelvin, and those signals are, oh, sorry, I'm actually talking about the ends of war law. First off, we have already doubled our quantum computer about every two years, but I think that we're also going to run into similar limits that the classical computers are running into, which is that there's a fundamental limit, which is that eventually, we're going to be able to keep doubling for quite a while, but eventually we're going to start running into physics limits, which is you can't program 1 billion qubits at 15 millikelvin because of the amount of heat you need to send down just to send those signals. So I both think that for a while, we're going to get that sort of end over end doubling every couple years, but I don't think it's going to last forever, just like classical computers. And then we'll be talking about a new type of computer that no one has thought of yet, but I'm sure it's not. Okay. Excellent. So next question. Are there any resources where hobbyists can play around with programming on virtualized quantum computers and algorithms? Oh, I can do better than that. You can play on a real quantum computer for free. So if you go to our leap platform, you'll get one minute of free time on the quantum computer. I know that other vendors in the space have similar programs, so it's not just the wave that you can do that with. And then ocean itself comes with a collection of simulators and classical algorithms that kind of emulate the quantum computer that you can use to play with them if you'd like, but a minute of quantum computing time doesn't sound like a month a lot, but since each problem only takes about five microseconds or 20 microseconds, it's actually quite a bit. All right. Nice. So next question. Is it possible to sort faster than n times log n with quantum computers? Is it to sort? To sort faster than n log n. Well, the... Oh, not that I know, but yeah. I guess you need some more QPUs, you call them, right? Yeah. So there's...oh my God, I'm choking on the name, but the very famous quantum computing sorting algorithm that's not occurring to me right now. But...and that's a gate model algorithm that none of the quantum computers that exist today can run, really, because it requires error correction or universal quantum annealer, and neither of those are available on the market today. So next one. Can you mine cryptocurrencies using quantum computing? Yes. And it's something that we've been asked about before. I would say that we have not yet reached...I'm not using it to mine cryptocurrencies. So I don't think we're quite at a point where it's...it'll save you money. On the other hand, quantum computers, by their very nature, because they're kept so cold, you can't put a lot of power down there. I mean, when I said before, like, oh, you're sending a lot of heat, I'm still talking about just tiny fractions of a watt. And so they are a very energy-efficient way to do calculations. And so I do think that if cryptocurrency sticks around and all that, that quantum computing will be quite useful for that, just for that reason. Having to keep them cold and having to keep your data centers powered is becoming quite a limiting factor. Right. I have another question, because there are normal questions in the Q&A. Would it make sense to build a quantum computing data center, let's call it, on the moon? Because then you don't have to...you have to...you know, the heat problem, you know, kind of...it doesn't go away, but it gets more manageable. Yeah, it's a great question. We get asked it fairly often, you know, in terms of like, could you put it in a satellite? So the problem is, is that getting it to Kelvin, which is about the temperature of interstellar space and sort of the dark side of the moon, is actually the relatively easy part of the cooling. It's getting it down to 15 millikelvin, that's the hard part. And so...and on the moon, there's less...it's harder to dissipate heat than it is on Earth. So it's actually easier to have it here on Earth than it is on the moon. Oh, right. Okay. Yeah. It's a great question. I mean, yeah. Oh, yeah, I was just, you know, thinking maybe, you know, you can do that. But you said about the cryptocurrencies, though, I mean, if the quantum computers actually get to the point where you can do crypto mining using quantum computers, I think the cryptocurrencies are basically going to collapse, right? Because they will need a completely new crypto to still be...I mean, to still fulfill their purpose, right? So... Yeah. I actually...it's a question I don't...I'm sure somebody is thinking about quantum secure cryptocurrency. I don't...I'm...someone must be. Definitely. Yeah. I don't know about it if it does exist, but I no doubt someone is. Okay, let me see. Okay, now they're discussing there. Is it...another question here. Is it kept...I suppose it's the computer. Is it kept in a void to be cooled down? Yes, it's also in a vacuum. That's right. And, you know, that set of canisters is also to maintain that. It's also kept in a ferrite cage, obviously, to limit electromagnetic interference. And I can also tell you that we are able to detect earthquakes with our quantum computer because it has to be kept ferrite vibration free. Do you have to put in any protection against cosmic rays? I'm not actually sure. It's a good question, probably, but I don't know. Okay. Good. Let me see whether we have more questions. Otherwise, I think we are done. No, don't see anything. All right. Thank you, everyone. Sorry for the rush talk. Thank you very much. Let me give you your applause. So... Yeah, thank you. Very nice. Very nice. Okay. Thank you very much. I got some news on 5th diye
 Okay, so this is the 15 minute delayed and with an excellent improv intro to building  quantum applications with D-Wave's leap.  So if we go to the next slide.  So I'm going to skip over my intro, but the really quick version is that I am the manager  of applications development technologies and tools at D-Wave.  So one of our mandates is writing the open source tools in Python that people use to  access the D-Wave system and to solve practical problems with our quantum computing products.  So I also want to just say that, you know, we're really invested in the Python open source  ecosystem.  And because of that pretty much everything I'm going to be talking about today is available  in open source stuff is available online and in our leap platform, and we really, really  want feedback from you all.  So things like GitHub issues, bug reports, pull requests, that's all super valuable  to us because it helps us prioritize because we really want to make this accessible to  you all.  Next slide.  Normally I would do a quick demo with our online platform, but I think I'm going to cut  that in the interest of time.  So let's go on to the next one.  And instead and one more.  And talk about solving problems with binary quadratic models, which is the problem class  that we at D-Wave are interested in solving with our system.  So I think that the metaphor that we often use when we're talking about solving problems  with our system is the so-called landscape metaphor, which is imagine that you are on  a landscape.  And this sort of height of the various parts of the landscape, the hills and the valleys,  are defined by, or in some sense represent the quality of your solution.  And the problem that we're trying to solve is to find the lowest space on the landscape,  and that one corresponds to the best quality solution.  So it's a metaphor that's useful.  We tend to talk about like there is a large energy ridge between two solutions, which  means you have to walk like way uphill, except much, much worse solution as you sort of journey  from one solution to another using a classical algorithm.  And the value that quantum computing brings is its ability to essentially, I'm going to  use a metaphor here because this will get upset with me, tunnel through these energy  barriers to sort of jump into other valleys in a way that a classical computer can't do.  Next slide, please.  So to make this a little bit more concrete, I want to talk about a specific example that  helps sort of demonstrate how we think about solving problems with these binary quadratic  models and is a really good representation of how we solve problems on the quantum computer.  So imagine that I have a network of pipelines.  You can sort of see it on the right hand side there.  And these pipelines intersect at various junctions.  So you can see that the pipe between one and two and the pipe between two and three, they  intersect at a junction too.  What we would like to do is to find a minimum set of junctions from which we can monitor  every pipe in the segment.  So if we jump to the next slide, please.  So you can see here on the right hand side an example of this so-called minimum cover,  which is that from each of those different locations, we can, every single pipe is adjacent  to at least one of those red junctions.  And it's one thing, it's important to note that there's also some other options here.  In fact, we could, for instance, have a monitoring station at node one instead of node two.  That's fine, but the point is to find some minimum set, the smallest number of locations  from which we can monitor every junction.  It's also really, and you could sort of probably work this pipeline problem out on a piece  of paper without too much issue, although it's not trivial, trivial.  But as you can sort of imagine that as this gets bigger, this problem becomes increasingly  difficult.  Next slide, please.  But so here's what solving that problem with the ocean tools looks like.  So everyone here, I think should be, I normally would say, does everyone read Python?  But I think here we can probably rest assured that people do.  So here is the Python code using our packages that solves this problem.  So at the top, you can see we're importing network X, which some of you might be familiar  with.  It's a very popular graph library, open source library in Python that was developed by some  folks out of Los Alamos National Labs, but is pretty widely used.  And you can see right away that we're leveraging sort of Python's open source ecosystem because  we have implemented our own sort of extension to that package called D-Wave Network X, which  extends some of the notions in that one.  And you can also see that we're importing the sort of some objects from our D-Wave system  package that lets us access the quantum computer.  Let's go to the next slide.  So before I actually jump back to that in a moment, but I want to talk a little bit about  how we organize our software stack.  So at the very bottom, we have a set of compute resources.  So those are things like CPUs and GPUs, just like normal.  But what's new and different when you start talking about quantum computing is the addition  of this quantum processing unit.  And I really want to dwell on this for a moment because it's important to think of this quantum  processing unit as another co-processor.  It's like a GPU in that you're never going to use quantum QPUs to sort of, you know,  one of the questions that it's getting asked is, can I play crisis on your quantum computer?  And the answer is no, because you wouldn't necessarily, you wouldn't have an operating  system on a quantum computer.  You wouldn't use it for a text editing.  You wouldn't use it for, you know, watching movies.  You might use it the way that you use a GPU to accelerate some aspects of that.  So you might be doing rendering and use the quantum computer to accelerate that, but it's  not in and of itself sort of a full fledged computer that can run, you know, an operating  system and a GUI and run a keyboard and all that kind of stuff.  So starting at the bottom, you have these CPUs and GPUs and the QPUs.  Sitting above that, you have a set of samplers.  So these are where, this is the level that these binary quadratic models are solved at.  So this is sort of a set of algorithms slash packages that people can use to solve that  problem class I was describing.  And then above that, being a software developer and having a team of software developers,  we wanted a uniform abstraction level for these different solvers, because they all  have sort of different needs and they're all have strengths and weaknesses.  Finally sitting above that, we have a bunch of mapping methods.  One of the ones I touched on was this network X package.  And then above that we have our applications.  So let's go to the next slide, please.  So going, you know, we can now go back to that little ocean script that I described  before.  And here you can actually see those abstraction layers in practice.  So at the top there, we have the sampler equals embedding composite D-Wave sampler.  So the D-Wave sampler is our access to the quantum processor.  It's the sort of, it's the object that encodes the, you know, the network calls and all of  that to access the QPU.  On that we have this embedding composite.  That's what gives us our uniform sampler API.  That's what allows us to solve sort of in some sense arbitrary problems on it.  And then we have our, we use network X to specify a graph.  This is the same graph that I, you know, had in the picture before.  And then we use the problem mapping layer, this min vertex cover function, where we pass  in the graph and the sampler and it uses the sampler to solve this problem.  So you can see that sort of abstraction layers in just one relatively short Python program.  If we could jump to the next slide, please.  So I'm going to not dwell too long on this, but I just want to sort of give you the mathematical  formalism that underpins the problem that we're actually trying to solve here.  So really the way that you should think about using our quantum computer and using classical  solvers that solve the same type of problem is it is trying to find a vector V that minimizes  this equation.  And the things I want you to note about this equation is number one, that this vector V  is over binary variables.  So, you know, yes, no, or negative one, one or zero, one binary, I just mean two state.  And the reason that this is the case is because our quantum computer has a set of qubits and  these qubits ultimately end their computation in a classical state.  That's why we can read them.  You know, when you read them, they collapse into a classical state.  And so ultimately our solutions are classical even though our computation is quantum.  The other thing that I want to note is that sort of first term in the equation, which  is this VIVJAij.  This is the quadratic part of the problem.  This is what makes these problems difficult.  This is that sort of second order interaction between the different antenna or the different  pipes and the different network vertices in my pipe network.  That's what makes the problem difficult.  It's not just pick the cheapest set of vertices.  It's pick the cheapest set of vertices subject to the requirement that each pipe have a sensor.  Next slide, please.  So going back to our pipe problem, you can sort of see that why this is this binary quadratic  problem.  So first off, we have binary variables.  Should junction one have a sensor or no at the binary variable?  We have pairwise interactions.  Each pipe must have a sensor.  That's a sort of quadratic interaction, an interaction between two different variables.  And then we have a linear optimization.  I want to do it as cheaply as possible.  So this pipeline problem was picked specifically because it is exactly already natively a binary  quadratic model.  So let's jump on to the next slide, please.  So I want to point out that these binary quadratic models are an NP-hard problem, which I think  a lot of you are familiar with what that means.  So just to belabor the point, that means that if you can solve that problem faster than  other NP-hard problems, then there's a fast transformation from those other hard problems  into yours.  And so what that means is that we are able to affect a huge variety of problems, even  ones that aren't sort of natively binary quadratic models.  So we take a problem, we reformulate it as a binary quadratic model, we solve it on the  quantum computer, we take it back out, we undo that reduction.  And some examples of things that we've looked at is formation of terrorist networks, we've  looked at traffic flow optimization, we looked at satellite placement, we've looked at protein  design, we've done image recognition, just 200 or more proof of concept and applications  that have been run on the D-Wave system.  If we can go to the next slide.  So I've talked a little bit about the binary quadratic models, but that's not quite a quantum  machine instruction.  So we have to get from this binary quadratic model into something that the quantum computer  can understand.  So next slide, please.  So here is the sort of, you know, the pretty pictures of the inside of our quantum computer.  And so, you know, if you walked into our lab in Burnaby and outside of Vancouver in Canada,  you would see our systems look like these big black boxes, just like you see on the  left.  This box is about the size of a, you know, a mid-sized bathroom.  You can see the sort of server racks there on the front.  Those are, you know, a little bit shorter than a person.  And then inside the box, there is a sequence of refrigerators that are designed to keep  the processor as isolated and cold as possible.  So starting at sort of outside the box, obviously, is room temperature.  Inside the box, it's like a refrigerator.  Inside that first canister, you're at 50 Kelvin, then four Kelvin, then one Kelvin, then 100  millikelvin, and then 15 millikelvin.  So for reference, this is colder than interstellar space.  It's unbelievably cold.  And this is all to keep a little chip that's about the size of your thumbnail, which you  can see in that right-hand picture.  Actually, let's jump to the next slide.  A little chip that is about the size of your thumbnail, cold.  And that's where the quantum, that's the quantum processing unit, this QPU.  And you can see a picture there that's even zoomed in on that last picture where that  sort of chip holder is bigger than this picture.  So that chip is really quite small.  Yeah, perfect.  Thanks.  You can see that it's being covered there by that little gold plate.  If you remove the gold plate and you look at the next slide, you can see that's where  the chip is.  So jumping to the next slide.  So again, this is a fairly math heavy and now physics heavy equation.  This is the equation that defines behavior of our quantum computer.  This is called an icing Hamiltonian.  And if you look over on the right-hand side, you see an equation that looks an awful lot  like that binary quadratic model I was describing.  You can see that there is a sum over a bunch of binary variables.  And then on the right-hand side, you see that there is a sum over quadratic interactions  of those binary variables.  We call this part of the icing Hamiltonian the quantum machine instruction.  And this is the part that you are programming when you're programming the quantum computer.  Next slide.  And next slide.  This is just the binary quadratic model, which shows you the similarity.  And so there's a reasonable question, which is, how do you get a binary quadratic model  into a quantum machine instruction?  Because those are not quite the same thing.  And the answer is that a quantum machine instruction is a binary quadratic model plus  some rules.  Those rules are, first off, your variables must be spin.  So that's negative 1, 1.  Before I said they could be binary, they could be anything.  Now they must be either negative 1 or 1.  And the reason for that is that our system is essentially running on little magnetic  fields.  And so your magnetic field is either basically pointing down or up, corresponding to spin  values.  We also have an energy range associated with our variables.  And there's a sort of limited resolution that our processor has.  And so that can be a problem.  And finally, you have to be hardware structured, which is to say you must be shaped like the  quantum computer.  Let's go to the next slide.  So if you zoom in even further on that chip picture, you can maybe make out, depending  on the resolution of your screen, you see there's kind of a checkered board shape on  the chip.  Those checkered board shapes, each square in that checker board corresponds to eight qubits  on our quantum processing unit.  And you can see on the left the picture of the connectivity of our graph.  So each of those eight qubit tiles is connected to the tiles to the sort of north, south,  east, and west of it.  And so each of these qubits is connected to six other qubits.  Next slide.  Now that's true on our current 2000 Q processor, but in the fall we're coming out with our  advantage processor, which has quite a bit more connectivity and has a lot more qubits.  So on the right hand side, you can see that it has a 5000 qubit processor with 40,000  couplers.  And on the left hand side is our current technology with 2000 qubits and 6000 couplers.  So ultimately, when you're getting your binary quadratic model, you need to shape it like  one of these processors.  And how you actually do that is a little bit beyond the scope of this talk, but suffice  to say we have tricks to do that.  Let's advance two slides, please.  And the next one, please.  Okay.  So before we move on to time for questions, I want to talk a little bit about hybrid  algorithm development.  So hybrid algorithms are combining the best of classical and quantum computing.  So next slide, please.  So we have in Python, we have our D-Wave hybrid framework, which is a hybrid asynchronous  decomposition sampler framework.  It uses Python code to generate new hybrid algorithms in a very sort of plug and play  kind of way.  So you can create brand new never before seen algorithms with just a couple lines of Python.  And I'm going to be talking a little bit about different types of hybrid algorithms.  And then in them, I'm going to have a little snippet of Python code to sort of show you  what that looks like.  So next slide, please.  So the motivation for this package is that normally these algorithms are quite complicated  to specify.  So on the left-hand side, you can see sort of the pseudo code for a particular hybrid  algorithm called QB solve.  And then on the middle, you can see that this takes many, many, many lines of C and C++  code.  And then on the right-hand side, you can see an example that sort of loop racing branches,  that is actual Python code that is used to implement this algorithm with only six lines  of Python.  And on the bottom, you can sort of see how this algorithm is organized.  The basic idea is that you're running a problem both on a classical sampler on your local  system while the problem is being run remotely on the quantum computer in Burnaby.  You then take the problem, you determine which had the better solution, and then you decide  whether you want to keep going.  And you can either go back around the loop again or exit.  So next slide, please.  So I want to talk about a couple different types of hybrid algorithms because I think  it's useful to have a sense of what one could do with hybrid.  So the first one is decomposition.  And this is obviously most often what people think about when they think about hybrid.  So the idea here is I want to grab a sub-problem from the quantum computer.  And I want to use it, sorry, from the larger problem.  And then I want to solve that sub-problem on the quantum computer because quantum computers  have at this point a relatively small number of qubits.  And not all problems can fit directly on it.  Next slide, please.  The next type is pre-processing.  So the idea here is I'm going to use a classical algorithm to pre-process my problem before  submitting it to the quantum computer.  Next slide, please.  The next one is post-processing.  So for instance, I want to use, I want to take the quantum computer to see the classical  algorithm.  And this is actually a very good thing to do because the quantum computer is very good  at finding pretty good samples quickly, whereas classical computers can be very good at finding  very good samples slowly.  So if you can accelerate that by preceding the classical algorithm with a quantum computer,  you can often get a lot of benefit.  Next slide, please.  The next sign is the so-called meta-algorithm.  So the idea here is I'm going to take a purely classical algorithm and accelerate one part  of it with a quantum computer.  So for instance, if I'm trying to build a strong classifier out of a collection of weak classifiers,  which is a typical machine learning task, I can use the quantum computer to help select  my collection of weak classifiers to use to build that strong classifier.  Next slide.  And then the last one is it's not really a hybrid technique, but it is a useful technique  which is so-called racing.  So the idea is that the quantum computer, because it lives remotely in a lab in Burnaby,  when you've submitted a problem to it, it has to, if you're submitting it from Europe,  say, it might take a second to make its way across the internet and get to the lab in  Burnaby, and then it solves the problem in the Burnaby in a couple of microseconds, and  then it comes back over the wire over a second.  And so your system is sitting idle for that two seconds, and there's probably a lot of  computation that could be done in that time.  And so by using racing, you can basically not, you can use that time to do other useful  things to solve your problem.  So anyways, that's the slightly rushed version of my talk.  I wanted to open it up to questions, although I'm not 100% sure how the questions are going  to get passed to me given our slightly messed up setup, but yeah.  This is actually going to be quite easy because I'm just going to read them out.  So okay.  Thank you for the talk.  That was nice, very intense.  I didn't really quite understand all that, but just in theory, the top high level thing,  so I think I do know.  So the first question is, how far are we from commercial quantum computing as a service?  So QCAS.  Yeah, I mean, so we have, I mean, quantum computers are available in the cloud today.  That's both D-Wave and other providers like IBM, Kisget.  So in some sense, and they're all purchasable with time.  So in the commercial sense, we've already, we already have that.  I think implicit to your question is, when are quantum computers going to be valuable  to customers?  When are we going to start seeing advantage with quantum computers?  And the answer I will give is that we are already seeing commercial advantage using hybrid  systems.  So that's combining quantum and classical.  So we're already starting to see cases where we're able to provide advantage to customers,  value.  Now, if the customer say was to hire a team of computer scientists and give them a year,  could they come up with a classical algorithm that would be able to replace the quantum  computer?  Almost certainly.  This isn't sort of a scientific result, but it is nonetheless promising that we reached  a point of sophistication with quantum computers, that we are able to affect real world problems  and use them in real world commercial applications.  Do you think we will see more slur in quantum computing?  Absolutely.  I expect you.  Yeah.  Yeah, I mean, just to sort of give a picture, the quantum computer, as I said, has to pass  through all these different refrigerators, right?  And when we're programming the quantum computer, you're sending signals down to that processor  that's being kept at 15 millikelvin, and those signals are, oh, sorry, I'm actually  talking about the ends of war law.  First off, we have already doubled our quantum computer about every two years, but I think  that we're also going to run into similar limits that the classical computers are running  into, which is that there's a fundamental limit, which is that eventually, we're going  to be able to keep doubling for quite a while, but eventually we're going to start running  into physics limits, which is you can't program 1 billion qubits at 15 millikelvin because  of the amount of heat you need to send down just to send those signals.  So I both think that for a while, we're going to get that sort of end over end doubling  every couple years, but I don't think it's going to last forever, just like classical  computers.  And then we'll be talking about a new type of computer that no one has thought of yet,  but I'm sure it's not.  Okay.  Excellent.  So next question.  Are there any resources where hobbyists can play around with programming on virtualized  quantum computers and algorithms?  Oh, I can do better than that.  You can play on a real quantum computer for free.  So if you go to our leap platform, you'll get one minute of free time on the quantum  computer.  I know that other vendors in the space have similar programs, so it's not just the wave  that you can do that with.  And then ocean itself comes with a collection of simulators and classical algorithms that  kind of emulate the quantum computer that you can use to play with them if you'd like,  but a minute of quantum computing time doesn't sound like a month a lot, but since each problem  only takes about five microseconds or 20 microseconds, it's actually quite a bit.  All right.  Nice.  So next question.  Is it possible to sort faster than n times log n with quantum computers?  Is it to sort?  To sort faster than n log n.  Well, the...  Oh, not that I know, but yeah.  I guess you need some more QPUs, you call them, right?  Yeah.  So there's...oh my God, I'm choking on the name, but the very famous quantum computing  sorting algorithm that's not occurring to me right now.  But...and that's a gate model algorithm that none of the quantum computers that exist today  can run, really, because it requires error correction or universal quantum annealer,  and neither of those are available on the market today.  So next one.  Can you mine cryptocurrencies using quantum computing?  Yes.  And it's something that we've been asked about before.  I would say that we have not yet reached...I'm not using it to mine cryptocurrencies.  So I don't think we're quite at a point where it's...it'll save you money.  On the other hand, quantum computers, by their very nature, because they're kept so cold,  you can't put a lot of power down there.  I mean, when I said before, like, oh, you're sending a lot of heat, I'm still talking about  just tiny fractions of a watt.  And so they are a very energy-efficient way to do calculations.  And so I do think that if cryptocurrency sticks around and all that, that quantum computing  will be quite useful for that, just for that reason.  Having to keep them cold and having to keep your data centers powered is becoming quite  a limiting factor.  Right.  I have another question, because there are normal questions in the Q&A.  Would it make sense to build a quantum computing data center, let's call it, on the moon?  Because then you don't have to...you have to...you know, the heat problem, you know, kind of...it  doesn't go away, but it gets more manageable.  Yeah, it's a great question.  We get asked it fairly often, you know, in terms of like, could you put it in a satellite?  So the problem is, is that getting it to Kelvin, which is about the temperature of interstellar  space and sort of the dark side of the moon, is actually the relatively easy part of the  cooling.  It's getting it down to 15 millikelvin, that's the hard part.  And so...and on the moon, there's less...it's harder to dissipate heat than it is on Earth.  So it's actually easier to have it here on Earth than it is on the moon.  Oh, right.  Okay.  Yeah.  It's a great question.  I mean, yeah.  Oh, yeah, I was just, you know, thinking maybe, you know, you can do that.  But you said about the cryptocurrencies, though, I mean, if the quantum computers actually  get to the point where you can do crypto mining using quantum computers, I think the cryptocurrencies  are basically going to collapse, right?  Because they will need a completely new crypto to still be...I mean, to still fulfill their  purpose, right?  So...  Yeah.  I actually...it's a question I don't...I'm sure somebody is thinking about quantum secure  cryptocurrency.  I don't...I'm...someone must be.  Definitely.  Yeah.  I don't know about it if it does exist, but I no doubt someone is.  Okay, let me see.  Okay, now they're discussing there.  Is it...another question here.  Is it kept...I suppose it's the computer.  Is it kept in a void to be cooled down?  Yes, it's also in a vacuum.  That's right.  And, you know, that set of canisters is also to maintain that.  It's also kept in a ferrite cage, obviously, to limit electromagnetic interference.  And I can also tell you that we are able to detect earthquakes with our quantum computer  because it has to be kept ferrite vibration free.  Do you have to put in any protection against cosmic rays?  I'm not actually sure.  It's a good question, probably, but I don't know.  Okay.  Good.  Let me see whether we have more questions.  Otherwise, I think we are done.  No, don't see anything.  All right.  Thank you, everyone.  Sorry for the rush talk.  Thank you very much.  Let me give you your applause.  So...  Yeah, thank you.  Very nice.  Very nice.  Okay.  Thank you very much.  I got some news on 5th diye
Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_0_155.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_156_203.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_204_299.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_300_455.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_456_1703.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_1704_1919.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_1920_2027.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_2028_4043.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_4044_5087.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_5088_6311.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_6312_7667.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_7668_10451.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_10452_11891.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_11892_14027.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_14028_14999.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_15000_16331.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_16332_16691.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_16692_18335.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_18336_18719.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_18720_18887.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_18888_19031.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_19032_20135.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_20136_20219.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_20220_21575.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_21576_22439.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_22440_23303.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_23304_23411.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_23412_23747.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_23748_24539.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_24540_25847.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_25848_26711.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_26712_27683.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_27684_28367.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_28368_29807.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_29808_30143.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_30144_30479.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_30480_32507.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_32508_32555.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_32556_33443.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_33444_33911.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_33912_36491.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_36492_40655.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_40656_41243.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_41244_41411.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_41412_41483.png Alexander_Condello_-_Building_quantum_applications_oovofn0QPno_41484_41558.png