 You can find us online at RCE-CAS.com. You can find the entire back catalog there, all these episodes we've been doing for these good number of years here. I also have again here Jeff Squires from Cisco Systems and one of the authors of OpenMPI. Hey Brock, how's it going? All right, as for upcoming events, I will be in mid-March, mid to the end of March at University of Illinois at the Advanced Research Computing on Campuses which is part of the ACI-RF series of projects out there. I will be there. So if you're gonna be there, please drop by and say hello. Also, there's gonna be a number of deadlines coming up for the Exceed 16 Conference. That's the XSEDE, Extreme Scientific Engineering and Discovery Environment. This is the successor to Terrigrid. There's a whole number of items there coming up, tutorials, papers, other things coming up there. So please take a look at those if you're interested. Okay, so Brock, we got something a little different today. This is different than the normal straight old HPC software or vendor kind of thing that we normally do, but this is something actually people may have heard about in the news before because they have made the headlines a couple of times. We are gonna talk to the people from D-Wave, the quantum computing people. So Brock, I wonder if you could tell us who our guest is. Yeah, so our guest today is Denny Dahl, who is from D-Wave. Denny, take a moment to introduce yourself. Yeah, hey Brock. Yeah, I've been with D-Wave for a little more than four years. I'm a physicist and right now I'm actually at Los Alamos National Laboratory. I'm on assignment here. Los Alamos purchased a system from our company about a few months ago and I'm here helping users get up to speed. So can you tell us a little bit about D-Wave? Maybe a little bit of history? Oh yeah, sure. So D-Wave has actually been around for a lot longer than most people think. The company was founded in around year 2000. We've been using venture capital since then. We were founded by Jordy Rose, who was a physicist from the University of British Columbia up in Vancouver in Canada. Now, what can you tell us? Start at the high level here. What exactly is quantum computing? Because I think there's a lot of information out there, but from a semi-technical audience perspective, how would you describe what is quantum computing? Sure, regular computing, or as we actually call it now classical computing, classical computing starts from this notion of you've got a bit. You can control a bit. A bit can be a zero or a one. But over the last hundred years, physicists have realized that if you tunnel deeply enough through the layers of nature, at its heart, nature has this quantum mechanical aspect to it, which means systems are not just a zero or a one. They actually exist in these superposition states. And so the whole notion behind quantum computing is to start from that point of view and use the fundamental superposition aspect of really the basic building blocks of nature to build a different kind of computer than we normally think of having. And when you say different, what do you mean by that? Because it sounds like that is fundamentally different and is gonna affect everything from soup to nuts in the design. Absolutely, that's certainly true because with a classical computer, you can imagine that you've got a number and a register and another number and another register and you can ask the machine to add them together and you're gonna get a deterministic result. The same thing will happen every time. But with a quantum computer, at its very core, you don't just put a single piece of information into a quote register. A register and a quantum computer holds a whole superposition of different information states at the same time. And so when you operate on a collection of information like that, your results are necessarily probabilistic. So it means you have to think through your computing model starting all the way at the ground up. So why would we even wanna do this? I mean, normally we like to just do regular old math. So what's supposedly so great about quantum computing? Sure, it's a great question. The one of the guys in the physics community who made this suggestion that we should look at quantum computing decades ago was a fellow by the name of Richard Feynman. And Feynman observed that certain kinds of physics problems that you might wanna simulate on a computer can be simulated efficiently. Things like partial differential equations and whatnot, you can map them onto a classical computer and get reasonable efficiency. But there are certain kinds of systems in nature, Feynman observed, there are certain kinds of systems in nature that do not have this character. The so-called quantum physics systems cannot really necessarily be efficiently simulated on classical computers. And so Feynman made the suggestion, I think back in the 80s, actually, that in order to do a good efficient job of simulating some of these quantum physics systems in nature, we're going to have to build a new kind of computer, a quantum computer, as opposed to a classical one. So quantum computing, when you read it in the news, it's talked to kind of like, because it's holy grail, it's gonna solve all these problems. But you're actually building machines today. So what people think about as a perfect quantum computer, is that what you've actually got? And you've got a complete revolution, or are you like on the path there, and you've got something that's quantum-like? Oh, actually, good question. My personal opinion is where we are is on the path. We don't have today a perfect quantum computer. And I'm not actually personally convinced that such a thing as a perfect quantum computer will ever be buildable. But the idea that we have right now is we know how to put certain kinds of quantum mechanical devices together to make a useful quantum computing engine. It may not be the most general possible one that people may wish to, that they can envision. But what we have is kind of a starting point, which we think will allow people to get their feet wet and actually start to experience what quantum computing is like and how it differs from classical computing. All right, let's talk about one of those things. So the typical model of classical computing that is discussed is a Turing machine, right? It has a start and an end and a bunch of sequences that goes between the two to put it super crassly, right? Is that the same here, or are we looking at just a fundamentally different model? Well, that's a great starting point. In fact, after Richard Feynman made this suggestion that classical computers were not really gonna be great at simulating certain kinds of quantum physics systems, it took another person to sort of take the idea to the next level. And that was David Deutsch. And I think it was in the late 80s that Deutsch did kind of the reasonable thing, based on the idea that you have or that Alan Turing had decades ago, Deutsch said, let's take a Turing machine, which it does exactly as you said, it starts off in a state, it reads something from a tape, it looks up some information in a table, it writes down a new symbol on the tape and then it moves to a new square on the tape. So that's your classical Turing machine. Deutsch took that concept and he said, let's replace each of the steps in that process with quantum mechanical steps. And what that means, literally then, is that when this quantum Turing machine enters a new state, it's not actually a new state, but it's a superposition of states. So that was actually kind of the first or the next step forward in the whole quantum computing thought process. The idea was, how do we take something as simple as a Turing machine and recast it in the framework of quantum mechanics? So how do you exactly represent these quasi states within a superposition of two states? And also a lot of times in quantum mechanics, you have a probability of being in one state or the other. So you are more towards one or the other, but you don't necessarily know. How do you do all of this? How do you represent it? Sure, well, the representation, in some sense, starts off being very simple. Instead of a qubit being a zero or a one, the words we say is a qubit can be in a superposition of the zero and the one state. And literally what that means mathematically is, instead of just saying, my qubit is zero or my qubit is one, now I have a weight. And it turns out to be a complex number, but I associate a complex number with the zero state and another complex number with the one state. And the magnitude of those two complex numbers tells me, in effect, does my system lean towards being a zero or does it lean towards being a one or maybe it's in a 50-50 superposition of those two states? So that's the starting point. That's how one qubit is described mathematically. And then if you wanna build on that and build a system that has gotten multiple qubits, this is where things get fascinating real quickly. So the concept in the quantum mechanical world that you hear talked about a lot is this notion of entanglement, which sounds like a very deep concept. It sounds like things being tied up in a knot. The easiest way to explain entanglement is to first explain its opposite. So the opposite of entanglement is this notion of separability. And separability is so common to us that we hardly even, you know, it's such a basic concept in our world that we hardly ever even think about it. So the notion of separability is if I have two separate systems like the door in my office and a filing cabinet, you know, the door in my office can be open or closed and the filing cabinet can be open or closed. So if you ask me what's going on in my office, I tell you about the door, I tell you about the filing cabinet and separately those two pieces of information tell you everything you need to know. That's separable. But it turns out in the quantum mechanical world that principle you cannot apply. So it turns out if you entangle two systems like the door and the filing cabinet, it's not enough just for me to tell you about the state of the door and then to tell you about the state of the filing cabinet. I also have to tell you about the possibility of, you know, the door being closed and the filing cabinet being closed. The door being closed, the filing cabinet being open. The door being open, the filing cabinet being closed and then they're both open. So all four of those possibilities gets their own weight in this big superposition. And that's kind of what's at the heart of some of the power in quantum computing. Because as I add another qubit to my system, the number of weights that I have to provide to you to describe that superposition state, that number of weights doubles with every new qubit that I add into the system. So to describe the state of an n qubit system, I actually need to provide the number of weights to you, which is 2 raised to the power n. And that exponential right there is at the heart of what we think is causing quantum computing to be much more powerful than classical computing. So if I understand you, and I have to admit, my head is exploding a little bit right here, so I'm not 100% sure that I do. If I understand you correctly, it sounds like there's a probabilistic nature and, for lack of a better word, a multiplicative nature. Is there an inherent parallelism in the different states that are represented simultaneously? Yeah, absolutely. Some people that I've talked to actually think of a quantum computer that has n qubits, they think of that as being, in effect, a computer that's got a degree of parallelism equal to 2 raised to the power n. Now, quite honestly, I think that that's maybe a little bit of an oversimplification. But in a sense, it is the case that a quantum computer is effectively computing with this huge number of possible different states at the same time. So that is a form of parallelism. And that really does seem to be very intricately tied up with the phenomenal power that may be accessible to us through quantum computing. So then, is this the idea that I have heard, again, maybe this is super crass way of describing it. But you're actually, you can try multiple inputs simultaneously, say this 2 to the n different inputs simultaneously. And that's how you get this inherent parallelization and inherent power of what a quantum machine is. Right. I think that's not a bad sort of a fuzzy way to think about what a quantum computer is doing. The only reason I'm a little bit hesitant to just give you a fully unqualified yes answer is that some people in the field are very sensitive to that particular description of a quantum computer. For example, Scott Aronson is, I've read his blog a lot in the past. And I know that he's very, he reacts strongly and negatively towards that particular description of a quantum computer. I actually don't think it's a bad starting point. But once you internalize that intuition, you have to go a little bit further and recognize that it's not really the case that each of these parallel instantiations, they don't behave independently. There's a very, very tight coupling between all these different so-called parallel degrees of freedom. And so it's not quite like you can tell each one of these different parallel instances of a quantum computer to go and do its own thing at the same time, because there is a very tight coupling between all these different degrees of freedom. So what is this good for, actually? So you described a number of problems that we can solve directly, numerically. But it doesn't sound, this is all statistical. If I wanted to know exactly how much money it was in my bank account, I don't want to be plus or minus $0.35 or $35. So what sort of problems are these systems good for? Well, that's a great question. And it's very, very important to understand that there are a lot of problems, computing problems, in the real world that are completely adequately addressed by classical computers. Quantum computers are meant or thought to be able to attack a very special category of problems. So here was a big thing that really just kind of electrified the field. And it was about a little more than 20 years ago. In the early 1990s, a mathematician by the name of Peter Schor realized that you could actually use one of these hypothetical quantum computers that no one had built at that point. And in fact, even today, only very, very, very small versions of that kind of hypothetical quantum computer have been built. But Peter Schor realized that if you had one of those machines, then you could solve a math problem that has been a very important problem. You could solve it far more efficiently than you could on classical computers. And so Peter Schor's insight has come to be known as Schor's algorithm. And what it allows you to do is take huge numbers, integers, not floating point numbers, but integers, huge integers, and then factor them. And the reason that that kind of special sounding math problem attracted so much attention is it's a difficult problem, especially on classical computers. And the difficulty that problem has been used to actually build a significant amount of the encryption infrastructure that we rely on every day when we do e-commerce and other kinds of secure transactions. So the promise that a quantum computer might be able to actually break encryption like that was really a revolutionary idea. And that had the effect of energizing a lot of people in the physics and computer science and math community to start looking at this possibility of quantum computers way more seriously. So actually, that's probably the most famous thing that we've always heard about with quantum computers that, if they exist, that effectively all of our encryption that we currently use is broken. I've always heard described as you can pretty much simultaneously look at all possible answers. But it's really just this multiplicative factor you were talking about earlier. It can look in a much wider space much more quicker than a classical computer. Yeah, I think that's a fair way to describe it. So that was, you know, a Shor's factoring algorithm was certainly one of the first most dramatic suggestions about what quantum computers could do. And, you know, in the intervening couple of decades since then, of course, a lot of researchers have looked at this question of, what kinds of things could you do with a quantum computer that you can do much more efficiently as opposed to a classical computer? And there have been a few other answers that have come out of all that research. So it really looks like quantum computers, the attraction then is that there's a very special class of problems that it looks like they can attack efficiently. Not all problems, but some of them. And some of them look like very high-value problems, high enough value to really motivate some serious, you know, serious investment in effort and money to try to see if these things could be made real. So this sounds like one, they're not necessarily going to replace classical processors for things where we want a very deterministic answer. And two, should I not be putting anything online because it's all encryption broken for every D-Wave customer that's out there? Well, we're not at the point, so great question. One of the interesting things that's happened between the time when Peter Schor articulated his algorithm and today is there has been a new kind of quantum computer that has been suggested by researchers. The original model of the quantum computer that sort of dated all the way back to David Deutsch and the work that we're talking about earlier, that's what's called, today it's kind of referred to as a circuit or gate model quantum computer. And sometimes people, you know, they think of those as the quote universal quantum computer. Those seem to be extremely hard to build. The good news is that in the late 90s and around the year 2000, several different research groups independently suggested a different kind of an architecture for a quantum computer. And that's the so-called adiabatic quantum computer. So the reason I'm kind of going off on this tangent right now is the adiabatic quantum computer is significantly easier to build than the gate model machines. And so this is where D-Wave is right now. D-Wave has built and we are, you know, marketing and selling an adiabatic quantum computer. But the reason this distinction is important is that Schor's factoring algorithm does not run on the adiabatic quantum computer that's made by D-Wave. So the fact that Los Alamos, Google, NASA, Lockheed have access to quantum computers, that does not at all mean that anything that you've got encrypted or any of your banking transactions right now are at risk. We're a long, long way from being able to attack things like RSA with the current technology that we have. So then what are people using your machines for? So again, Brock said encryption is the most famously known problem. You've said there's other classes of problems. What kind of things are they doing? Can you talk about those? Sure. The thing that is easiest to describe really is optimization. It's the natural programming model for our system is radically different from the programming model for a classical computer. So instead of having instructions that do things like add and multiply and divide, do a logic test, branch, et cetera, et cetera, instead of having instructions like that, our computer really has essentially one instruction. But that one instruction is very, very powerful and flexible. What that instruction does is effectively it encapsulates an entire optimization problem into a single quantum machine instruction. And so one of the ways that we kind of help people, we provide this metaphor for thinking about the way the machine works. If you imagine a mountain landscape, you know, it's got at each point of latitude and longitude, you know, you're either at a mountain or you're in a valley or something like that. The question then is, out of this complicated mountain landscape, where is the lowest point in terms of altitude? And so that's kind of a nice metaphor for what our system does, because our system, each instruction that our system executes encodes what we think of as an optimization problem like that, you're looking for the lowest altitude or it might be the highest value. And so each instruction allows the computer to search through this large, large search space and then return to you a point which represents a very, very good solution to an optimization problem. So we think of optimization as being one of the key, you know, the key application areas for our system. Then the other ones we think about are machine learning. We believe that it's possible to cast a lot of machine learning problems in the language of optimization. And so we think we might be able to really bring, bring, you know, kind of new algorithmic techniques to machine learning through the quantum computing paradigm. And then the last one is this thing that we call sampling. Sampling is this notion where, you know, you've got, you've got some probability space and you're interested in picking samples out of this probability space according to some predefined set of probabilities. This is, you know, for example, you know, one of the things that physicists do a lot is they run these so-called particle transport codes where you might imagine you've got a beam of particles that, you know, impinges on some very complicated shapes and then the particle transport code is a Monte Carlo. In other words, it uses random numbers to sort of try to figure out, you know, where these fluxes of particles ends up. So that's an example where you're effectively sampling from a complicated distribution. And we think something like that, we might be able to attack that very effectively with this kind of adiabatic quantum computer as well. So those are the three areas we're trying to focus on. Optimization, machine learning, and sampling or Monte Carlo. So you said something there though and you use very careful language that I'm not sure that the average computing person would understand. So you're talking about, you know, like finding a minima or maxima. One, how do you avoid the usual problem of getting stuck in a local minima or maxima? And then also these are all against stochastic problems. So do you have to run this like many, many times and take like the best result returned and how are you confident in that actual result? Yeah, sure. So the first point you brought up, the whole notion of, you know, how do you actually navigate around this landscape and find a good value? What we do is so different from what a classical computer does that some of the limitations that a classical computer runs up against, they simply don't even apply to what our system is doing. So typically with a classical computer, if you've got a complicated landscape and you're looking for a minima, your classical computer somehow represents a point in the landscape. And then with each computational step, you can imagine perturbing that point in the landscape a little bit and you look to see whether, you know, you're moving in a good direction or a bad direction. And if you're moving in a bad direction, you discard that step. But if you're moving in a good direction, you'll keep that step. And hopefully by doing that over and over again, you'll go down, down, down, down, down hill and you'll end up in a good valley. So that kind of roughly is, it's a rough description of how a lot of classical computers approach an optimization problem like that. But I think what you're alluding to is a real problem, which is what if you end up in a valley but there's a much better deeper valley nearby you but you can't get from here to there because there are mountains between you and the deeper valley. So that's, you could think of that as being a barrier and with classical computing, it's really, really tough to figure out how to build smarts into a program so that it can know that it should climb up and over some mountains because on the other side of the mountains is gonna be a better answer. So those barriers are very hard to deal with in the classical computing world. But with our system, the system is not at one point on the landscape. Instead, our system starts off effectively being like a cloud spread over the entire landscape at once. That's what the superposition states that we were talking about earlier allow us to do. So our system effectively starts off in a very different place from a classical computer. We don't start at one point on the landscape. We're kind of spread over the entire landscape at once. And so this actually allows us to make use of a very powerful phenomena of quantum physics which is called tunneling. And this is one of the differences between the classical physics world and the quantum physics world. In the classical world, if you don't have enough energy to get over a barrier, you're stuck. Like if you're in a roller coaster and your roller coaster car is not going fast enough to make it up and over a hill, then you'll go part way up the hill and you'll fall back. But in the quantum mechanical world, it's absolutely possible for a system not to have enough energy to go over a barrier, yet the quantum mechanical tunneling effect allows a system to effectively go right through the barrier. And so that quantum tunneling is one of the things that we've tested and we know that our system exhibits that capability. And it's one of the things that allows us to do a much better job of finding those minima in a large complicated landscape. I don't want to go on too long here, but there's one other point you mentioned which is these systems are stochastic. That's absolutely true. So when we actually set up one of these optimization problems, there's a certain amount of setup cost associated with defining that problem and passing it to the quantum processor. So typically once we've done that setup work, we won't ask for just one good value for our optimization problem. We'll ask it to return 10 or 100 or 1,000 good values. And since the system is stochastic because of the quantum mechanical nature, then if we ask for 1,000 answers back, we will typically get different answers and some of those may be great answers and some of them may be a little bit higher up in the landscape. But getting back a collection of answers very quickly is one of the kind of cool, powerful features of the adiabatic quantum computer. So how does one even write software for this? Because what you're talking about is so fundamentally different from what I know about writing software. But then again, I've been writing traditional software for my entire career. Do you have a different programming language? Is it a different compiling method? Is it a whole different way about thinking of writing software? Right, it's not so much that the languages are different. In fact, you can program our computer using C or Python or we actually have an interface from MATLAB too. The issue is more that the way you actually put together a quantum machine instruction for our system requires you to build a data structure in C or Python and that data structure represents a quantum machine instruction which you then can go and execute. Okay, that's actually super cool. It's incredible to be able to write Python to write something so powerful as this. Let me ask you this. You must have a separate quantum processor. Is this thing driven by a traditional processor with a traditional type of operating system that you can kind of view the D-Wave as an analog to classic machines, an accelerator? Absolutely, yeah. So you do not ever interact directly with the quantum processor. And that really is, that's exactly how we refer to it. We have this chip which is the quantum processor but sitting in front of the chip is a completely standard classical processor where we run a lot of server and management code. So when I'm programming the quantum processor, I actually, I'll write C or Python or MATLAB and a lot of the action takes place between a client system that I'm sitting on and that kind of front end or host system. But after I've done the work necessary to actually create a quantum machine instruction and I'm ready to execute it, then I'll invoke a special command in C or Python or whatever and that's the queue for the host processor to actually send the quantum machine instruction down to the quantum processor and it goes through its exotic quantum mechanical dance and then reports the results back to me. Okay, so quantum mechanics though, to be able to get quantum like behavior observed four years of nuclear engineering degree basically told me you need to have very tightly controlled environments. Even, you know, being above absolute zero introduces information into the system, trying to directly read from the system introduces, you're governed by Heisenberg, right? So how do you even create the physical environment to even support these quantum processors? Yeah, that's a huge challenge and what you're saying is exactly right. These quantum mechanical wave functions is the technical term for these things. These quantum mechanical wave functions are very easy to disturb and if you disturb them, they lose their coherence and they lose their power from the point of view of quantum computing. So we work really, really hard to create this special environment for the quantum processor and it's running at very, very low temperature, very hard vacuum. It's vibration isolated. It's shielded from magnetic fields and radiation. So there's just a tremendous amount of engineering required to create the very, very quiet, low noise environment for the quantum processor. It was like a deal, you got five tons of equipment to support a little thing the size of a nickel. Well, actually, that's exactly true and it's kind of funny when you compare our system to an HPC system. Our system consumes on the order of 25 kilowatts, which is kind of peanuts in the HPC world. But the thing that's even stranger about that power consumption is if you look at the quantum processor itself, the power consumption on the quantum processor is virtually at zero and the vast majority that 25 kilowatts is, it's used to just power the front end servers and we have pumps, compressors, refrigerators, all that kind of stuff. So it really is a very, the quantum processor itself is essentially like almost zero power dissipation. Now, I'm gonna go back to the architecture here a bit. So if you look at this kind of as an accelerator, how does the data work? This is, and again, I could very well would just be stuck in today's model of computing with accelerators, but one of the traditional problems we have is you have up in main memory, this whole chunk, your data set, which could be large and you have to transfer that data down to the accelerator and then the processors down on the accelerator chomp on that. Is that the same model here? Or where does, how does the data fit into how your processor operates? That's my question, I suppose. Sure, yeah. So if you have a reasonably sized application, and you've got some kind of data set, and that's gotta be managed by the front end processor, the classical host. The quantum processor, it takes in one quantum machine instruction at a time, just like a classical processor, takes in one machine instruction at a time. And then when the quantum processor gets its quantum machine instruction, it goes through this process of looking for the best points in this huge search space and those get returned back to the host. Okay, so is it really kind of the same problem that we have in classical computing? That I'm still, even if I load a cache line or much of the cache at the same time, I'm still looking at one 32-bit or 64-bit quantity at a time by the processor. Are you, you have the same kind of architectural design in your processor? Absolutely, that's a great analogy. With our machine, the machine executes one quantum machine instruction at a time, and that quantum machine instruction has a bunch of information that you can pack into it, but it's certainly not going to be able to allow you to pack megabytes or gigabytes of data into it. So in the same way with a classical computer that we have these great algorithmic techniques for taking a huge data problem and breaking it down into lots and lots and lots of small instructions, we're looking at the same kind of strategies in the quantum world where even though that we've got a big data problem, we're trying to figure out how to decompose that into bite-sized chunks where each bite-sized chunk now fits into the quantum processor. So to increase performance on one of these things, it's probably a lot better to just keep making it a system that has more qubits, right? Because you get exponentially more states you can simultaneously look at than the way we would do on a normal system, which is increase the number of cores or increase the number, which would be unattached, with no relationship between them, or increasing class computing. Well actually, Brock, you make a very interesting point there because in increasing performance in parallel computing, we add more cores, which means we're looking at more data simultaneously. Yeah, but that'd be linear. Which is analogous to adding more qubits. Am I off base here? No, it is analogous. So that's one way that we wanna make the system more powerful, more qubits. That's kind of the easiest metric for people to grab onto. But in addition to just qubits, the other piece of the architecture that's very, very important is what we call couplers. Okay, I'll bite. What's a coupler? Well, a coupler is the way that a user can cause one qubit to influence another qubit. So if you imagine that each qubit has kind of a built in tendency to either turn on or turn off, that's okay. But unless you can cause one qubit to influence other qubits, then you haven't really built any interesting interactions into the system. So in addition to the qubits of the system, we also have thousands of couplers. And those couplers are the way the user or the programmer kind of expresses the influence that one qubit has on another qubit. Okay, so you just talked about two methods slash metrics of increasing performance. I mean, what else? I mean, I feel like we just keep going down the rabbit hole. My head here is totally exploding because you're like, oh, wait, I've still got yet another trick which blows your mind even more. What else you got? Well, I'm gonna try not to blow your mind too much here but the last thing that we really fight constantly in the kind of the engineering of these systems is the thermal effects and noise. I think Brock, you were referring to this earlier. If you have a system at finite temperature that means you've got energy sloshing around in the system and that energy can disrupt your quantum state. So that's a bad thing. We're always trying to figure out ways to reduce those thermal effects and very closely related stuff is what we think of as being kind of like intrinsic control error. The idea is, the way I think about it is if you're driving a high performance car and you've got your hands on the steering wheel, you want the front wheels of the car to respond very, very sensitively to the motions of the steering wheel. But there's a mechanical linkage between the steering wheel and the wheels and so you don't expect that it's perfectly going to reflect. The front wheels aren't gonna perfectly reflect what you're doing with the steering wheel. In the same way with our computer, you can dial in all these weights for the qubits and these coupling strengths but the system may not perfectly reflect the landscape that you've tried to dial in. And so we're trying to constantly minimize that sort of that control error while we're also adding qubits and adding couplers. Sure. So obviously these systems require a lot of special TTUs but there's a lot of people out there who know about these different theories but also they require these special, hard vacuum, really low temperature. How can someone just get access to one of these systems because I assume they're probably not the price of a desktop? Yeah, the list price is rather high and there are not a lot of these systems out there. We have some in the lab back in Vancouver where all the systems are built and then Google's got one that they share with NASA and Lockheed's got one that they share with University of Southern California and Los Alamos has one as well or they're in the process of getting one. So fundamentally if you're interested in actually getting access to one of these systems, the model is kind of a cloud model, quantum cloud. You're going to get access over the internet to one of these systems that I mentioned and the way that you're gonna probably do it is having an affiliation with either a university or some research organization that has ties with one of the places I mentioned. And then you talk to your buddies and you say I've got a great idea for an application that could run on one of these quantum computers. Please tell me how to go about getting time. Okay, and where can people find out more about D-Wave systems and quantum computing? Well, a great way is to start with our website. We've got a website at www.dwavessis.com and we do our best, we're a small company but we do our best to respond to invitations that are kind of have real merit and interest. We go out and give talks. I'm gonna be in Washington DC next week and we'll visit a number of entities out there and try to educate them about what we've been able to do in the last year and drum up some interest. So check out our website, that's a great starting point and we've got, oops, I'm trailing off into nothing this year. I think the right answer is website. Yeah, this was fascinating. I feel like we could talk to you for hours because like I said, there feels like there's just so much more down the rabbit hole we could go but we are somewhat limited. Our listeners like to have podcasts that are less than six hours in length so we probably do need to cut this off. Thank you for your time. Sure, I hope you guys got what you needed. Thanks much for your questions. Thank you.