Building Quantum Computing Algorithms In Python - Episode 235


Quantum computers are the biggest jump forward in processing power that the industry has seen in decades. As part of this revolution it is necessary to change our approach to algorithm design. D-Wave is one of the companies who are pushing the boundaries in quantum processing and they have created a Python SDK for experimenting with quantum algorithms. In this episode Alexander Condello explains what is involved in designing and implementing these algorithms, how the Ocean SDK helps you in that endeavor, and what types of problems are well suited to this approach.

Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? With Linode’s managed Kubernetes platform it’s now even easier to get started with the latest in cloud technologies. With the combined power of the leading container orchestrator and the speed and reliability of Linode’s object storage, node balancers, block storage, and dedicated CPU or GPU instances, you’ve got everything you need to scale up. Go to today and get a $100 credit to launch a new cluster, run a server, upload some data, or… And don’t forget to thank them for being a long time supporter of Podcast.__init__!


  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.
  • Your host as usual is Tobias Macey and today I’m interviewing Alex Condello about the Ocean SDK from D-Wave for building quantum algorithms in Python


  • Introductions
  • How did you get introduced to Python?
  • Can you start by giving a high-level overview of quantum computing?
  • What is the Ocean SDK and how does it fit into the business model for D-Wave?
  • What are some of the problem types that a quantum processor is uniquely well suited for?
    • How does the overall system design for a quantum computer compare to that of the Von Neumann architecture that is common for the machines that we are all familiar with?
  • What are some of the differences in algorithm design when programming for a quantum processor?
    • Is there any specialized background knowledge that is necessary for making effective use of the QPU’s capabilities?
    • What are some of the common difficulties that you have seen users struggle with?
    • How does the Ocean SDK assist the developer in implementing and understanding the patterns necessary for Quantum algorithms?
  • What was the motivation for choosing Python as the target language for an SDK to attract developers to experiment with quantum algorithms?
  • Can you describe how the SDK is implemented and some of the integrations that are necessary for being able to operate on a quantum processor?
    • What have you found to be some of the most interesting, challenging, or unexpected aspects of your work on the Ocean software stack?
    • How do you handle the abstraction of the execution context to allow for replicating the program behavior on CPU/GPU vs QPU
  • Is there any potential for quantum computing to impact research in previously intractable computer science research, such as the P vs NP problem?
  • What are your current scaling limits in terms of providing compute to customers for their problems?
  • What are some of the most interesting, innovative, or unexpected ways that you have seen developers use the Ocean SDK and quantum processors?
  • What are you most excited for as you look to the future capabilities of quantum systems?
    • What are some of the upcoming challenges that you anticipate for the quantum computing industry?

Keep In Touch



The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Click here to read the raw transcript...
Tobias Macey
Hello, and welcome to podcast alternate the podcast about Python and the people who make it great. When you're ready to launch your next app, or you want to try and project you hear about on the show, you need somewhere to deploy it. So take a look at our friends over at winnowed. With 200 gigabit private networking, scalable shared block storage, node balancers, and a 40 gigabit public network all controlled by a brand new API, you've got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to Python slash the node that's LINOD today to get a $20 credit and launch a new server and under a minute, and don't forget to thank them for their continued support of this show. And you listen to this show to learn and stay up to date with the ways that Python is being used including the latest and machine learning and data. analysis. For even more opportunities to meet listen and learn from your peers you don't want to miss out on this year's conference season. We have partnered with organizations such as de diversity cranium global intelligence Alexey ON State Council. Upcoming events include the combined events of the data architecture summit and graph forum, the data orchestration summit and data Council in New York City. Go to Python slash conferences today to learn more about these and other events and take advantage of our partner discounts to save money when you register. Your host, as usual is Tobias Macey. And today I'm interviewing Alex condello about the ocean SDK from D wave for building quantum algorithms in Python. So Alex, can you start by introducing yourself?
Alexander Condello
Hey, great to be here. So yeah, my name is Alex condello. I am a developer at D wave systems, which is the practical quantum computing company. I've been here I've a mathematics background. I've been here for about three years. And I'm one of the developers who works on the D wave ocean SDK, which is our set of Python tools. for solving problems on the quantum computer,
Tobias Macey
and do you remember how you first get introduced to Python?
Alexander Condello
Yeah, you know, when I was in undergrad, I was studying mathematics. And there, they just sort of assume that you can learn how to program along the way, we don't really get much of a formal introduction. But I had to, you know, I just had a bunch of problems I had to solve. And I did a very cursory search of what's the easiest programming language to use, and Python was the one and you know, it's all all history from
Tobias Macey
there. And so before we get too far into the topic at hand, I'm wondering if you can just start by giving a bit of a high level overview about what we mean when we're talking about quantum computing.
Alexander Condello
Sure, yeah. So you know, I think the best way to define quantum computing, at least in this context is simply using quantum effects to do calculation. So you know, as as transistors are getting smaller and smaller, and as we're getting down to smaller and smaller scales with our CPUs and GPUs, on a significant amount of effort is spent on you know, accounting for quantum effects and getting around quantum effects to do sort of what we call classical quantum computation. So quantum computer Instead of taking the opposite approach, which is we have these these quantum mechanical effects. And we want to try to exploit them for for computation. So the there's a couple different models for quantum computing. So there's the topological, the gate model, and we do a particular one called quantum annealing. So quantum annealing is using little superconducting loops in superposition, to solve a particular style of problem using those quantum mechanical effects.
Tobias Macey
And my understanding is that because of the fact that the cubits are in superposition, it means that we're not restricted to the binary logic that we're used to with classical computing. And then that instead, they're able to represent multiple different states simultaneously as a means of achieving greater efficiency in terms of being able to perform these computations.
Alexander Condello
Yeah, that's right. I mean, the way that a simple simplified way to think about how you solve problems on our system is that we start off the computation with all of the bits in superposition all the cubits in superposition. And then we apply the problem on top of that. And as the computation goes on the sort of super position force backs off, and the problem force gets applied more strongly. And then they collapse into a into hopefully, what is the solution to your problem.
Tobias Macey
And so in order to make this whole new world of computing accessible to developers, D wave has built the ocean SDK. And I'm wondering if you could just discuss a bit about what that is some of the capabilities that it offers and how it fits into the overall business model for D wave?
Alexander Condello
Sure. Yeah. So you know, when I first started at D wave, actually, I was in our professional services organization, which is, you know, we we would partner with different customers to help them solve their problems. And at the time, we had a set of software that that was used to access the system, but it was relatively limited. And, you know, there's just so many problems in quantum computing and so much low hanging fruit and so many ideas that people want to implement. I mean, it's really a big way to open area. And we thought to ourselves, that would be really nice if we could get other people, other smart people in the ecosystem helping us to solve these problems, tell it giving us feedback, helping us make better tools, adding their ideas, you know, contributing their solutions, you know, beating us at our game benchmarking all these different things. And obviously, the best way to access that is with an open source package where, you know, people really can sort of explore these ideas, make contributions, tell us what what we're doing wrong, tell us what we're doing really well. And so the ocean SDK was was originally just built as a access point to the system. So you know, the first package that got released was a client that accesses the QPU through, you know, REST API. And then from there, we built up a couple abstraction layers. So you know, the particular problem the system solves is a little bit specific and a little bit restricted. And so obviously, the next thing we want to do is to abstract that a little bit into something that the user can use more generally and then abstract that even further into different domains that the user might be familiar with. So, I mean, maybe this would be a good time to sort of talk a little bit about what the problem we solve is.
Tobias Macey
Yeah. So if you can just give a bit of an overview about some of the problem spaces that you're working in, and some of the particular problem types that quantum processors are uniquely well suited for, that would definitely be helpful.
Alexander Condello
Sure, yeah. So one of the problems that we solve to pick an example would be imagine that you have a collection of people, this collection of people has relationships between them, and they're either friendly or hostile. So you know, imagine you and and all of your co workers, some people in the building, you know, you're friends with some people in the building, maybe you don't get along so well with and some people in the building you don't know at all. So there's sort of three types of relationships within this network. You have friendly relationships, hostile relationships, and no relationships. Now, imagine that you want to divide this group into two teams. You want to have a red team and a blue team, such that within each team everyone is very And between these two teams, all the hostile relationships, because that makes for, you know, a fun competition, you want to have a company soccer game or something like that? Well, this is a problem that's really well suited to our system. And the reason for that is that our cubits, as I mentioned earlier, start their computation in superposition. So they're both sort of negative one in one or both zero and one. And they end their computation in a classical state. So they've picked either zero or one, which corresponds to those two teams that I've described. The other thing that is important to understand about our cubits is that they're connected pairwise. So one cubit has a relationship with another qubit. But there's no sort of three way relationships. I don't have relationships between three cubits which corresponds to app, our social network that I described before, where I'm friends with you, but I'm not so much friends with this other person. So fundamentally pairwise relationships, and at the end of it, you want to minimize the number of violations to a rule. So I want to pick an answer such that I have as few violations, I have as few hostile relationships within my team and as few friendly relationships across teams as possible. So that is about the most classic problem that you can put on our system that you can imagine how this is really hard to do without a visual solving, obviously, describing this, you know, over an audio format is kind of tricky. So what I would really encourage everyone to do is go check out leap, which is our online platform for solving these sorts of problems. You can go to leap, and you can click through one of our demos, which shows this problem I just described, and it uses Romeo and Juliet as the front of the science, social networking, the problem
Tobias Macey
and a lot of link to the show notes for anybody who does want to click through and explore that a bit more. And so one of the other things that I'm curious about is how the overall system design for quantum computer compares to the traditional von Neumann architecture that we're all familiar with from our laptops and desktops and just some of the ways that that manifests in terms of how you interact with it.
Alexander Condello
Sure. I think One of the best models you can use for understanding how to how we interact with the system is that it's much more of a co processor than anything else. So you can think of it as a GPU in the sense that when I'm solving a problem on the system, I am almost I always starting with it, solving it just the way I normally would I start with a regular Python program or you know, whatever your language of choice is, I'm using an existing architecture, I have some existing workflow that I'm using. And I'm simply trying to extract a hard Colonel some particularly difficult job out of this problem, some particular particularly difficult subcomponent out of this problem, and submitting that to the quantum computer. So you know, the whole game of the D wave ocean SDK is to plug into your existing workflow and help you extract that particular hard problem, put it into a form that the quantum computer can understand and then dispatch it to the quantum computer. This is you know, there's no concept at least not right now have a quantum computing operating system. Or, or anything like that it's really is sort of, it's much more like an analog computer where you're, you're taking this problem and you're massaging it until it until it fits on the system. And then you're submitting it, where it gets translated into analog waveforms and finally dispatched to the system.
Tobias Macey
And so in some ways, the idea of how you would use the quantum processor is probably in a Python context using it and some form of celery task, for instance, where you have your particular long running job that you want to execute, or you want to get an answer for a particular computation. And as part of that, it dispatches to the quantum processing unit and then gets a response back at which point is then able to continue on using your standard Python logic to be able to send that to whatever end users requesting it or stored in a database, for instance,
Alexander Condello
yeah, that's exactly right. And in fact, you've kind of hit on the way that some of our you know our demos work is exactly that where you know you you're running a regular classical system, you're running up regular classical program, you're submitting jobs, the system you're carrying on with Whatever you're doing, and then you're getting the response back and feeding that into your overall calculation.
Tobias Macey
So similar approach to us, somebody might be turning to CUDA for as far as being able to parallelize across multiple cores in a GPU. In this case, you're just sending it off to the QPU for a different type of compute optimization.
Alexander Condello
That's right. And, you know, we don't really have a concept right now of sort of parallel quantum computing, although I would love to see someone try to, you know, use multiple quantum computers at the same time, just because it's a it's an interesting project. But it's exactly the same idea where you're, you're taking some some particular nugget and sending it off.
Tobias Macey
And so for somebody who is developing the logic for being dispatched to the quantum computing unit, I'm wondering what are some of the differences in terms of algorithm design that they should be aware of, and any necessary context that they should have for being able to make sure that they are making as efficient use of the GPU as possible?
Alexander Condello
Sure. Yeah. I mean, I think the first thing to understand is that when you're submitting a problem to the QPU, you're not really submitting a, like a program, you're submitting a problem to be solved. So it's much more like doing a, like LPA linear programming or mixed integer linear programming, that kind of thing where you are constructing a particular problem, specifically a particular energy equation, and the quantum computer is returning solutions to that energy equation. So it's not so much that you're compiling down to a sequence of steps that have you know, loops and and structures and functions and, and a set of transforms that are being applying it's simply dispatching what it's it's building it, it's boiling it down to one problem that hopefully encodes the entire your entire program into that problem. So if you imagine, say, you want to do factoring on the system, but we always get asked about factoring the, instead of sort of trying all the different possible factors, say, which would be the brute force solution, the way that we actually solve This is we represent a multiplication circuit, you know, actual like we we take the gates that would make up a multiplication circuit. And we encode those into this energy equation. And then we simply ask what are the inputs that will, that will match this output. And we dispatch that entire problem to the quantum computer, and it gives back hopefully solutions. The other thing that's really important to keep in mind when you're when you're solving problems on the quantum computer is that it's fundamentally a probabilistic machine, it's not guaranteed to give you a good solution, you you are, you know, it's sampling from a distribution defined by that energy equation. And so when it's not guaranteed that Oh, I've just put my problem and it's something that quantum computer can understand and I dispatched it not gotten back a solution that's guaranteed to be optimal. You have to potentially take multiple runs at the quantum computer, you might have to ask it to solve that problem multiple times. But this can also be a huge advantage because if you're interested in say, finding all of the solutions to a particular problem, you know, each of those things There's a certain probability associated with it. And by running the quantum computer multiple times, you can hopefully sample from all of those different solutions.
Tobias Macey
And that also sounds a lot like some of the approach that you would take in a machine learning or a deep learning approach. And so I'm curious what your experience has been in terms of trying to apply some of those approaches to the quantum processor for being able to get the probabilistic outcome for some measure of data inputs.
Alexander Condello
Yeah, I mean, so d wave has a pretty extensive machine learning research group. And we have a number of papers, which I can sort of provide for that sort of thing. But
Tobias Macey
so because of the fact that this is inherently a probabilistic output, I'm wondering if you have found that it's useful to have any particular specialized background in terms of statistical inference or anything along those lines for being able to effectively use the quantum processor. And I'm also wondering how much the ocean software stack helps in terms of the system. People and formulating the problem in a way that they're able to understand given their particular background. Sure.
Alexander Condello
So one of the main ideas with the ocean SDK is that it's kind of pick your own level of abstraction. So, you know, the way that you ultimately end up interacting with the quantum computer is through a REST API. And the the job that you submit to that REST API is about as close to a quantum machine instruction as we can reasonably put up, we really do try to make sure that all of the knobs that we have available on the quantum computer are available to the user. And when we you know, invent a new, a new knob that can you can turn on the system, we work very hard to get that available to the user as quickly as possible. So if you're a physicist and you have a physics background, you know, you're more than welcome to interact with it at that level. And, and, you know, in that case, you might need a degree in physics that said, we d Wade is trying to, you know, is the practical quantum computing company, and we really want to make sure that it's available to all of us are so tell us the ocean SDK, really the only background you need is a little bit of a Python background. The problem that we're submitting this energy equation I described earlier is pretty straightforward. And honestly, you don't need a, you don't need a math degree, you don't need a physics degree to understand it. On the other hand, if you have a computer science background, or you know, you simply are a Python enthusiast, the D wave ocean SDK provides abstraction layers that will let you access that. So at the very, very top, we have a couple packages, so d wave network x, which which extends the very popular network x package, which is used for solving graph theory problems. So if you have like a maximum cut problem, or a map coloring problem, or that sort of thing, you can simply use the network x interface and access the quantum computer through that. On the other hand, there's sort of an intermediate level where if you feel comfortable generating these energy equations, which I think anybody With a Python background, would be able to do without any particular trouble, you can hit those directly. And so the ocean SDK is built around the idea that we can handle different users with different backgrounds.
Tobias Macey
And I'm wondering what the selection process looked like when initially developing the ocean software stack and targeting Python. And if there were any particular requirements that Python met particularly well, and maybe what some of the other considerations happened to be at the time or any other existing implementations for the SDK?
Alexander Condello
Sure. Yeah. I mean, when we were first starting to build the SDK, there was a question that came up, you know, what are the different languages that we could hit? And you know, we considered a couple. Python is absolutely the obvious choice. So you know, right now, especially with machine learning, and TensorFlow and all of that in Python, Python really is where a lot of the scientific community computing community lives. It's easy to understand it's easy to use, you can install things that runs across multiple operating systems. Were able to leverage the PIP installer, which lets people get the ocean SDK very easily. It's really just, it's a no brainer to use Python because we can hit the most users. And we can hit the user community that we want to hit the most, which are, you know, curious people with, who are interested in trying new and exciting things and interested without having to write, you know, huge amounts of boilerplate in order to get there, they can get started right away.
Tobias Macey
So digging deeper into that, can you talk through a bit about how the ocean software stack is implemented? And just some of the overall integration process for making sure that it works effectively with the GPU that it's targeting?
Alexander Condello
Yeah, I mean, so most of ocean actually is written as a pure Python stack. I mean, we simply at the bottom, we have a relatively simple client that puts together a REST API call doesn't use anything fancy to do that. moat, you know, there's a couple places where we have some hard computational tasks. And in that case, we're leveraging sort of the Python library to To write some code in C, and then you know, buying that into Python, but But really, the vast majority of it, especially at the higher levels of abstraction is written in Python, because we want it to be understandable. We want the user to be able to say, you know, what, I think the way that you're solving this particular problem isn't as efficient as it could be. And if they can go, you know, open up the the Python file and explore exactly how we're solving it, and then tell us how to do it better. That's, that's great. And that's one of the main reasons we picked Python is to, to let people you know, make it readable and make it self documenting and allow people to try to understand it, and to tell us how to do it better.
Tobias Macey
And I'm wondering what you found to be some of the most interesting or challenging or unexpected aspects of your work on the ocean software stack as well as your experience of working with these quantum algorithms.
Alexander Condello
Yeah, I mean, I think the the most interesting thing has been what users want to try I mean, when you when you come at the quantum can With with no background in quantum computing, you know, most people want to throw whatever whatever hard problem they have in front of them onto the quantum computer. And, you know, quantum computing is still relatively young. And it's it's not that every problem that you can solve goes sort of naturally onto the quantum computer. So I think the surprising thing has been how much success people have had solving their problem when I would have been like, no way, there's no way that'll work on the quantum computer. And then, you know, they they come up with some clever trick. And and they use some clever encoding and are able to get it on the system using our software. And it's really gratifying to see people doing these off the wall things and sometimes, you know, it works. And that's, that's really an amazing thing. And in fact, a vindication of why we went to open sourcing this software and why we went to Python is to let people do that.
Tobias Macey
And I'm also intrigued by the fact that you're able to target these problems to run on classical CPUs and GPUs, as a validation step before submitting to the QPU. And I'm wondering what the overall challenges were in terms of being able to provide that extra abstraction and particularly as you introduce newer generations of your actual underlying compute infrastructure.
Alexander Condello
Yeah, actually, I mean, so. So one thing I think that's worth highlighting is that for the problem the quantum computer solves, which is for the record called a binary quadratic model. And you can check out all of our documentation about that. The quantum computer, even within that particular problem class, the quantum computer is never going to be the best solver for all possible binary quadratic models. I mean, it's possible to construct one that will always be better to solve classically. And part of the reason that we put up these other solvers in ocean is to allow users to do that comparison and to make use of classical resources where it makes sense. And so I think one of the biggest challenges for us has been, you know, What is the most useful set of these classical solvers to put out there, because we want to make sure that they are complimentary to the quantum computer so that, you know if if this problem if we have a particular problem class that we know not to be a great fit for the quantum computer, then we want to put something out, we don't want to block people from solving that problem. And so we want to put something up that will will help, you know, fill that gap. And so sort of understanding how these different algorithms complement each other. And what they're strong and weak at is, is by far, I mean, it's a huge research effort. It's something we spent significant time on here at D wave. And then making those available to the user is you know, there's there's simply an implementation effort that comes with that. But yeah, I think it's picking what to do is by far the biggest challenge, because there's so much low hanging fruit in this area, which makes it really exciting because, you know, I'm never short on new ideas to implement or things that I would like to do. And I think people who, who contribute to the software in the same position where, you know, there's almost any idea is going to be the first time someone's done that in the first opportunity to do it. And Probably, you know, it's a good idea and it should be included.
Tobias Macey
And I know that there are also other services that allow for interacting with their own quantum computers. And I know that you mentioned that there are a few different approaches that are taken in terms of the actual physical implementation where you use quantum annealing, somebody else might use a different strategy. So I'm wondering how much of the work that somebody does for programming something using ocean for a D wave computer, they would be able to abstract out to be able to submit to other quantum computation platforms and any trends that you might see in terms of standardizing along a common API to make these workloads more portable.
Alexander Condello
Yeah, so that's a great question. So one of the most common open source projects and sort of hackathon projects I see are various cross compilers between the different quantum computing architectures and I think that's really, really cool. Like, I think, you know, at D wave, we're really excited to have people try to integrate multiple this And, and I think that in the long run, anything that helps the quantum computing community as a whole is good for all of us because it builds excitement. And then specifically, you know, for, for working with the different processors and trying to solve your problem on different processors, especially at the sort of higher levels of abstraction, when you're solving these sort of graph theory problems like maximum cut, or something called the icing problem. these are these are sort of broadly applicable. And I think a lot of the different software architecture solve that kind of problem. And so you know, if you're, if you're working at that high level abstraction, it can be as simple as just switching out a function call. But obviously, then the deeper you get into the stack, the more specific to the particular hardware it becomes. And so, you know, that's true for our software stack as well for some of the other vendors.
Tobias Macey
One of the other things that I'm curious about is if there are any differences between the different hardware generations as far as how they are constructed for being able to solve different problems and any condition drains that are enforced in terms of trying to maintain the same interface for backwards compatibility with the software stack that you're building?
Alexander Condello
Yeah, that's a great question. So the fundamental problem that we solve has not changed over all the generations of the D wave system. So, you know, we have we've been fundamentally solving this binary quadratic model problem from the beginning. So in one sense, nothing's changed in the other sense. We've increased our qubit count enormously and our connectivity. So over time, we have been increasing the number of cubits available to the system. So you know, one of our first systems that we made available available to customers had 500 cubits our new advantage system has 5000 cubits. The other thing is that the amount of connectivity so in our first system, each qubit was connected to six other cubits and now each qubit is connected to 15 other cubits so the size of problem that you can solve on the system has has increased enormously and the complexity of the problem that you can solve on the system has increased enormously over the different generations. The other thing that I'll mention is that over time, we've increased more and more sort of control knobs and finer tuning systems that that let you finely tuned the way the processor is working on your problem. And along with that, in the ocean SDK, we've released a lot of sort of auto tuning functions that help you help you use those parameters. And so if you had a problem that ran on that original system, using the ocean SDK, you can continue to run it on the newer newer systems. And the main thing that you'll see is that you can solve larger and larger problems. On the other hand, you can still make use of all these new and exciting features. And then in terms of scale, I'm curious how you approach that as far as ensuring that anybody who submits a problem to the GPU doesn't get put into a long backlog waiting for the results given that there is inherently a limited number of these units available and My understanding of the service model is that it's time sharing approach similar to what we used to have in mainframes in the early days of computation. Yeah, sure. So D wave is a real time computing platform. So you know, when we have a couple of GPUs that are online and publicly available in leap right now, and when you submit a problem, it simply goes into a queue. And you know, we we have the capability of scaling the number of GPUs that are available, so that we can make sure that we're meeting demand.
Tobias Macey
And then I'm also curious about some of the most interesting or innovative or unexpected ways that you've seen developers use the ocean SDK and the quantum processes that you're exposing. And also, if you can talk a bit about the leap platform that you've mentioned a couple of times and how that fits in with your overall product offerings.
Alexander Condello
Sure. So maybe working backwards through that the leap platform is our online platform for training and accessing the quantum computer. So when you log into leap, you will immediately get one minute of free time on the quantum computer, you'll be able to you know, see how much time You'll be able to access demos and different documentation resources. It's the one stop shop for accessing the quantum computer. In terms of exciting applications that people have put on the system. I think one of the coolest ones is out of the Los Alamos National Labs. So before I mentioned this idea of, you know, when you're submitting a problem to the quantum computer, you are submitting a problem and it's simply giving you back an answer, you're not submitting a full program. I think one of the most unique ways that I've seen people to use the quantum computer is out of Los Alamos National Labs, there is a compiler that takes a restricted set of C code, and will compile it into that problem that I described that you can use running on the quantum computer. Now this is done very inefficiently be the number of cubits you would need to encode. Even a relatively small C program is enormous. But nonetheless, I think this is a very, very cool and exciting and unique direction to take. Take quantum computing.
Tobias Macey
And so you mentioned that when you sign up for leap, you get a free minute of computation. QPU. So I'm wondering if you can just give a bit of an idea as to how much real world usage that equates to because from, you know, from the outside perspective, one minute doesn't seem like a lot. But if the GPU is able to solve your problem and you know, some thousandth of a second, then it does end up being a substantial amount of compute some curious if you can just give a bit of a real world example of a problem that somebody might submit and then how much of their free allocation that would end up using and how many times they'd be able to take advantage of that before they ran out.
Alexander Condello
A really classic problem that someone might want to submit to the system is imagine I have a set of pipes. And these pipes intersected a bunch of different junctions, and I want to pick the smallest set of junctions such that I can monitor all the pipes. Now this is a really classic vertex cover problem. And that's about as native a quantum computing problem as could possibly be solved. That's really, really close to what our system actually solves. And in terms of, you know, the amount of computation that you can get with a minute Each run of the system typically takes about 15 milliseconds per per run. So that's a, you can actually do an enormous number of runs on the quantum computer in that minute.
Tobias Macey
And I'm wondering how you approach metering of the usage for people who are submitting their problems to be able to count up those 15 millisecond intervals up to whatever they're either free or purchased. allocation happens to be
Alexander Condello
sure, actually, that one for us is really easy, because each Neil of the quantum computer takes that fixed amount of time. So you know, when we actually run the problem on the system, it's being run for a certain duration. And so really, it's just accounting problem. So when you submit a problem to the system, as I said, you're putting together this sort of energy equation, and then you're simply saying, I would like to run the quantum computer on this equation and time, so that can be five times 10 times 100 times 1000 times and we can just do the multiplication to do that, when when you have that sort of free minute. We're not counting sort of the pre processing time and the post processing time that it takes Robin system
Tobias Macey
because that I'm sure it's just running on classical computers that you're able to scale out as needed using either on premises resources or cloud capacity. That's right. And as you look to the future of quantum computing and the capabilities that they provide and wondering what you personally, I'm most excited about,
Alexander Condello
I think I'm most excited about hybrid applications. So you know, D wave, we recently put out added a new package to our SDK called D wave hybrid. This is the idea of combining classical and quantum resources together in order to solve your problems. So you know, before I described this idea of different problems fit better on different types of resources. So you might want to use classical resources for this problem and quantum resources for this other problem. But there's this whole area that you know, we're really just scratched the surface of which is using both. So this is things like pre processing with classical post processing with classical or with quantum. This is running something simultaneously on classical and quantum. This is using quantum to guide a classical copy. There's just a huge number of combinations and a vast area that hasn't been fully explored.
Tobias Macey
And also looking forward, I'm curious if there are any particular challenges that you anticipate the overall industry having to deal with, and just any concerns that you might have, as far as user uptake, or, you know, just overall challenges that exist in the space?
Alexander Condello
I think the the main challenge that the industry as a whole is facing is that, you know, these these machines are still new. And and there's still a, there's not a lot of best practices for using them. And so everyone, you know, like, like when we write our SDK and when the other vendors, right, there's we are, we're trying to encode best practices into these abstraction layers. But this is still a big open area that that hasn't been fully explored. You know, there isn't years and years of experience, deciding how to best optimize the solutions. And so this is both simultaneously the most exciting part and the biggest challenge for the industry as a whole. is how do we encode these best practices in a way that people can make use of them without having. And
Tobias Macey
I'm also wondering, as far as your own experience of building the ocean SDK for trying to encapsulate some of those best practices, just some of the overall challenges that you faced in the process, and any particularly interesting or unexpected lessons that you've learned. I think the the most common lesson that we've learned is that people will do crazy things if you give them an interface. And and I think the biggest challenge has been enabling people to you know, guiding people down the right best practices and but not preventing them from going off the wall because those off the wall ideas are the ones that that get the most traction or, or potentially have the best upside, because you know, it's the thinking out of the box that will give the best solution. Well, for anybody who wants to follow along with the work that you're doing and get in touch, I'll have you add your preferred contact information to the show notes. And so with that, I'll move us into the pics and this week to keep it topical I'm going to pick an interview that I did a while back about the Q tip package, which is for being able to do simulations of quantum optical circuits, which is one of the foundational layers for quantum processors. So it's another way to dig a bit into this overall problem space. And so with that, I'll pass it to you. Alex, do you have any pics this week?
Alexander Condello
Yeah, I think the the project that I or the package that I've been working with a lot recently, which has just really been amazing as Stefan, you know, we've been recently you can check out some of the open pull requests in ocean where we've been converting some of the underlying data structures and to see and, and I've been really digging into Python and understanding how that works. And it's just been amazing. It's a really cool library that does it solves a really important problem. And I think in the long run, as scientific computing is using Python more and more, it's going to be really important to be able to find the performance of see with the usability of
Tobias Macey
it. Yeah, it's definitely an interesting package and another one that I've had on the show in the past, so I'll add a link to that as well but definitely heard of people doing some Amazing things with Python to be able to get some pretty incredible speed ups. Well, thank you very much for taking the time today to join me and discuss your work on the ocean SDK and the overall space of quantum computation. It's definitely an interesting area and one that I've been keeping an eye on. And I'm pretty excited to see some of the types of applications that it unlocks as we continue to progress down this road. So thank you for all of your time and effort on that and I hope you enjoy the rest of your day.
Alexander Condello
It's been a pleasure. Thanks so much.
Tobias Macey
Thank you for listening. Don't forget to check out our other show the data engineering podcast at data engineering podcast com for the latest on modern data management. And visit the site at Python podcasts. com to subscribe to the show, sign up for the mailing list and read the show notes. And if you've learned something or tried out a project from the show, then tell us about it. Email hosts at podcast and with your story. To help other people find the show. Please leave a review on iTunes and tell your friends and coworkers
Liked it? Take a second to support Podcast.__init__ on Patreon!