Big Compute - Quantum Computing
Episode Date: April 25, 2019Gabriel Broner hosts Steve Reinhardt to discuss Quantum Computing. Listen to the conversation covering what are quantum computers, what problems can be solved orders of magnitude ...faster than with traditional computers, where are we today, and what the future holds.
Transcript
Discussion (0)
Hello, I am Gabriel Bronner, and this is the Big Compute Podcast.
Today's topic is quantum computing.
Over the last several years, there have been new developments in quantum computing.
These computers are a departure from traditional architectures. The promise is that quantum computers
may solve particular problems
thousands of times faster than traditional computers.
So we wonder, what are the problems
that truly benefit from quantum computers?
When do we see these great benefits coming true?
What are we today?
And what are the challenges that
need to be overcome? To discuss quantum computing, our guest today is Steve
Reinhart. Steve has a long history in high-performance computing, including
being a director at Cray. For the last four years, he has worked as director of
software tools at D-Wave, a quantum computing company.
Welcome, Steve, to the Big Compute Podcast.
Hi, Gabriel. Thanks for having me.
It's a pleasure to have you here, and I look forward to our conversation.
It's a topic we're trying to figure out how we learn about it.
So, Steve, can we start from the beginning?
Can you tell us what is a quantum computer? Sure. So kind of simply, or simplistically, a quantum computer is a computer that exploits
quantum effects. And so one of these is superposition. And so let me digress a moment so you know classical computers are built out of bits
bits standing for binary digit meaning it's a zero or a one
quantum computers are built out of quantum bits or qubits and they can also be zero or one
but they can also be zero and one at the same time, which is a little weird to wrap your head around.
That is a quantum effect known as superposition, meaning it can be in more than one state at the same time.
And so quantum computers are ones that consciously exploit quantum effects.
So superposition is one, entanglement is another,
quantum tunneling is a third.
They consciously exploit these quantum effects
to give faster computing.
Since I was with D-Wave for the last four years or so,
I had never really realized, and my background is not hardware,
so I wasn't an electrical engineer.
I hadn't realized that classical computers actually spend a lot of time
and energy avoiding quantum effects.
And so classical computer or quantum computers have the possibility
of being able to be much more efficient, much faster by not having to avoid those quantum
effects, but rather exploit those quantum effects. So interesting. What are you saying to us is in
the traditional computers, what we have is machines that we have to represent the
bit as a strict one or a zero and to do that because the underlying world isn't like that
we put a lot of effort to make a traditional computing and spend a lot of energy on it
quantum computers take advantage of this molecular dynamics where bits aren't really zero or one that
could be zero or one at the same time.
Would they take advantage of those to build a different kind of computer? Is that fair?
Yes. I might give a couple more sentences of background here. There are two main architectures that quantum computers are being built in. The one that has the most academic or theoretical basis
is what's sometimes known as the gate model
or circuit model computers.
And those are one approach and they are in many ways
similar to the classical computers
in that you can think about having a set of bits or qubits
as kind of a very small memory and applying operations,
those kind of a sequence of operations to those. The difference is that the qubits, since they can
be in superposition, you know, if you have five qubits, then you can have 32 different possible positions all in
in various probabilities. And those can persist throughout a calculation. And you're
manipulating those states with quantum gates instead of classical gates.
So that's one major architecture. The other major architecture is known as quantum annealing.
And for those of you who are familiar with simulated annealing, it's almost exactly the
same. You specify an energy landscape, and then the annealer probabilistically finds low energy states
in that landscape. So they're very, very different architectures. Each has strengths and weaknesses.
The gate model requires much higher fidelity qubits, but has a degree of universality about it that the current quantum annealing processors do
not. The quantum annealing processors don't require the super high fidelity. And so their
qubits, their number of qubits has scaled much higher. So they're at the D wave is at the 2000 qubit range where the classical or the gate model are at the you know 50 to 70 qubit range so
just very different architectures but you'll hear about you'll hear about both
of those so let me let me recap a bit. So your point is there's basically
two styles of architectures.
One is gate style, more like the traditional computers,
and the other one is the quantum annealing one.
In both cases, we're gonna have a series of bits,
or qubits, like five as you mentioned,
that could be each bit in one or two states,
or two at the same time.
So you're going to have
all possibilities all combinations of this beats being in zero and one and
that's how you gonna parallelize and you be able to solve the problems in a
different way that you solve in the traditional computer in the case of a
kneeling you have a particular way of getting to a minimum or low energy state
is that a fair understanding
of what you just said?
Yes.
Okay, good. So I think we get the basics of what a quantum computer is and what it can
do and how it can potentially parallelize things by having these qubits, multiple states
and doing things in parallel. So one of the interesting things for us to be to understand is what are the types of problems
that we can tackle with a quantum computer based on these unique capabilities?
Right.
And this is a place where, you know, almost immediately the fact that the quantum computers
are very different just jumps out and kind of smacks us in the forehead.
So in classical high-performance computing, many, many uses, applications of those systems are focused on solving partial differential equations. And so floating point operations,
whether those are 32-bit or 64-bit,
are just what happens all day, every day.
And quantum computers are not going to address those problems,
at least in a straightforward way.
Those are just not a good match.
Floating point is not a good match with
quantum computers. The types of problems where quantum computers will be useful
are in combinatorial problems, and that could be combinatorial optimization. And examples of that are, you know, the classical computer science one is the
traveling salesperson. So that means that you have a salesperson, they need to visit all of N
cities. The cost to go from city to city is, you that there's there's a table of what those
costs are and you want to visit all the cities often exactly once and you want
to do that with the minimum cost so that that is a classic problem that classic
combinatorial problem and that is a type of problem that quantum computers will tend to be
good at. A similar one to that that I mention often is team picking. And you know, it's the
NBA playoffs started here just what Saturday. And if you think about the challenge that if you're
the general manager of a team, and you want to, so imagine it general manager of a team and you want to, so imagine
it's the off season and you want to pick the best players for your team, there's really
an astonishing number of constraints that you want to satisfy. So if you think about a team,
so right now the Golden State Warriors are widely viewed as the best team in the NBA.
So if you think you're a good team and you want to beat the Warriors, well, you know you have to have at least one, probably two, preferably three players who can guard Steph Curry, which is obviously you're not going to shut him down, but you'd like to be able to guard him.
You need two or three players who can guard Klay Thompson. You need two or three players who can guard Klay Thompson.
You need two or three players who can guard Kevin Durant.
And that's to beat the Warriors.
But then you think, oh, well, we might have to beat, if we're in the Western Conference,
we might have to beat Houston as well.
And you think, well, they have Chris Paul.
And Chris Paul is a very
different kind of player than either Kevin Durant or Klay Thompson or Steph Curry. So if you want to
win, you have to think, I have to have a player or a few players who match up well against that
particular player on a team I might encounter in the playoffs. And so once you do that, and obviously at the beginning of the
season, you don't know exactly which teams you might meet in the playoffs. So there's just a
huge number of combinations there and picking your team the best. And obviously there are, you know, players that play well together and you have a salary cap and a million other things.
Doing that effectively is a very hard problem.
So putting aside the fact that here in California, we don't believe the Warriors are going to beat with your solution.
I'm going to move on but the point you're making is they the couple problems you
mention are problems of optimization so in a traditional computer solving this
type of problems ends up being a exponential nature in you would need
enormous compute power to solve it so you end up taking some heuristic approaches to do optimizations.
The point you're making is this type of optimization problems in a quantum computer,
they're almost designed to solve this type of problems,
find the minimum, find the maximum, et cetera.
Is that what we're trying to say?
Exactly.
Yeah.
No, this is good.
And, and, and there's another type, uh, which is, is similar to that,
which is called often called constraint satisfaction and the,
and, and that is kind of an end, end of a continuum. So at one end you have optimization at the other end,
you have a constraint satisfaction and then there are points in the middle
that are, um are constrained optimization where you need
to do both but the at the at the one extreme the constraint satisfaction is a
problem just says find me an answer that that works and and the And the classic problem there is integer factorization, which is what is used for decryption.
This is Peter Shore came up with the algorithm that runs on a gate model quantum computer, that when we have a quantum computer
that has enough qubits and works effectively,
it will be able to break RSA encryption
and that'll be a huge issue because that's how we all,
when we say HTTPS and we encrypt our stuff,
we do it with RSA usually.
So that is another type of
problem in that particular case you know in integer factorization that there is
only a single answer a single unique answer so you're not saying find me the
best answer that does this you're saying find me an answer or in this case the
answer that that satisfies all these constraints.
So there are a number of those problems as well.
Okay.
So today, public key encryption is basically based on the fact that you multiply two large numbers,
you generate the keys, but by throwing away the original numbers,
it's almost impossible to go back to these two numbers.
What you're telling us is with quantum computing, in principle,
you'd be able to get the two factors that got to the number,
which makes the whole premise of public key encryption crumble today,
which is how everything is built today.
Is that correct?
Correct.
Yeah.
So I think you're painting a future where, you know, today which is how everything is built today is that correct correct yeah so I
think you paint in the future were you know at some point we might be able to
solve all these very complex optimization problems and break codes is
that the is that the future I mean when the when the vision of quantum
computing is realized and we have quantum computers like people imagine them, will we be able to solve these kind of problems?
I believe so.
I mean, obviously, we're in the very early days, so there are a lot of things that could go wrong or that could delay this, you know, by large times, but
it certainly appears completely plausible and feasible. I guess I would mention a couple things.
Number one is that I believe, and I hear this, it's not just me, lots of other people in quantum computing believe that for quite some time, decades at least, quantum computers will be used in a hybrid mode with classical computers are extremely general purpose. And we use them for many, many, many,
many things. And they're cheap. We have them in our watches and our phones and our automobiles.
They're very robust. They can be in a variety of situations. And so they're ridiculously general purpose. And a reality that quantum computers will exploit in the near term is the fact that they don't have to do very many things well, that if there are important modules that they can accelerate,
that a quantum computer can accelerate, they can focus just on that module and make it
much, much, much faster.
And that will be a valuable thing and it will be used in conjunction with a classical computer.
So obviously there's a coordination need there.
But everyone I talk to in quantum computing expects this to be the case for quite some time, okay, when might I use a quantum computer in the real world?
You don't have to think about solving your entire problem on a quantum computer.
You just need to think about, well, where am I really spending my time? And maybe also, if I wanted my problem or my application to be a thousand times more effective or a million times more effective, where would I spend more compute time? where that time goes and find modules that are well-suited to quantum computers.
And those particular modules, I would say, when the vision of quantum computing is fully realized,
those modules will be just unimaginably faster, billions or trillions of times faster.
That's not happening this week or this
month or even this decade. But when the quantum computing vision is fully realized, that will be
the case. Yeah. So you're saying that we still have normal CPU architectures to do many of the tasks. That may be the case that we face today, right?
We have CPUs to run many things, but we may run some applications or codes on GPUs or
FPGAs.
Should we view quantum computing as one more alternate? Yes. I think that is, in many ways, a powerful mental model for how to adopt quantum computers into a real-world workflow.
Very good. Steve, can you tell us, you know, we talked about the vision of quantum computing and what will be possible.
I wonder if you can share with us where are we today and what kind of results are we seeing today?
Yeah.
So, I mean, it's kind of ridiculously early.
I mean, so we often kind of compare it to, okay, think about classical computers.
You know, the first systems came into use in maybe the 40s, and then into the 50s there were, you know, a lot of very early work.
And it seems like we're somewhere in the 50s, the 1950s to be precise.
You know, so we don't really have a Fortran yet you know
if we if we look at our history books you know the size of a bite was not
really standardized until what maybe the middle of the 60s or something like that
so there are there's lots of lots of similarities to that stage.
There's a lot of possibility.
There's a lot of experimentation.
And obviously the fact that our classical computers are so powerful
and we have learned so much about how to develop effective interfaces
and computer-human interactions and things like that.
You know, we expect that this development will happen much faster.
But we are really way back there in the very early days.
Are there any promising results that we've seen with the computers that are available
today, with the quantum computers that are available? Yes. So I was recently at D-Wave,
and what we saw there was for problems that were structured in a friendly way, friendly to the
topology of the D-Wave processor, you know, we were able to show results that were
sometimes as much as a thousand times better than the best classical alternative.
That was for friendly structured problems. For real world problems, you know, we were at rough and the improvement we got from each generation of quantum computer was drastic.
So there were a lot of very promising results.
There are also some recent results in quantum simulation
that were able to replicate some of the predictions of Kostelitz-Thouless' work of a couple decades
ago that won the Nobel Prize for Physics in 2016.
So there's some very promising results there.
There have also been a lot of experiments with the gate model systems.
They are smaller and not as far along in terms of solving real-world problems,
but people are addressing the kernels of real-world problems today.
Okay. So what do you think are the challenges we face today to advance towards the full vision
of quantum computing? So the thing I'll mention first is not a technical problem, but a kind of an experimentation
problem.
So I spent up until four years ago in the classical HPC world. And when we made innovations in that world, they were, you know, they felt like big
innovations at the time, but we were almost always able to use major pieces of prior technology
and change, you know, if there are 10, you know, major subsystems that go into a supercomputer,
we would change two or three of those maybe in a generation. And so there was a smaller degree
of change and you could hold a bunch of things constant. And we had a lot of experience about
how changing different parts of the system played out.
What things need to be in balance, et cetera.
You think about, oh, well, the computation rate and the memory bandwidth, they're often closely linked for many HPC calculations.
So you want to be aware of the proportion between those
two things. And with quantum computers, the fact that we don't have the first problems
delivering differentiated performance means, and there are many, many, many plausible dimensions to improve,
means it is really hard to know which of those dimensions should we improve next
and which of those will get us to differentiated performance for the quantum computer.
What this means is, to my way of thinking, is that we have
to work very effectively as quantum computing system developers. We have to work very effectively
with our early users and customers because we want to evolve our systems very quickly because
there are so many dimensions that we could decide to change. But we need to do that very quickly and we need to make good choices.
And that's not easy to do. So that's a challenge in kind of a high-level project direction,
you know, technology development dimension. Coming to the systems themselves, for gate model systems, error correction is a major challenge.
So one of the things that is a reality for the gate model system is that it's a digital
system.
It depends on digital correctness.
But qubits have a degree of errors in them.
So how do you cope with that?
Well, the best thinking on that is there would be error correcting codes, error correcting schemes,
that would use a collection of physical qubits to represent an error corrected, call it a logical or virtual
qubit.
And the best thinking is that it takes on the order of 100 to 1,000 physical qubits
to create a single error corrected qubit.
Those error correction schemes are, there's been a
lot of theoretical work and some work in practice, but the gate model
systems have on the order of 50 qubits, physical qubits today, so if you say, oh
well you need you need a hundred to make a single error-corrected qubit, well,
that means you used all of your physical qubits to create a single error-corrected qubit, and
you don't really have the capability to do multi-qubit interactions with error-corrected
qubits. So this is a major issue. How do we deal with error correction? How do we make that work
effectively in practice? I should mention that the Microsoft approach is based on Majorana
anions, and it avoids this issue. It's topological is the buzzword underneath that.
But those particles are less well understood,
and so there are other issues with bringing a system based on that approach to market as well.
Another challenge that I think both GateModel and quantum annealing systems will face is
I think for the foreseeable future, real-world problems will be bigger than the chips that
we have. So how do you take a real world problem and
shrink it or decompose it or somehow transform it so that you can make progress using the chip
that you have today? And in the quantum annealing world with D-Wave, we made some progress in that dimension. We the chemist or the person who needs to schedule at a logistics company, they have problems that they want to solve, and they are not quantum
computing experts. And so how do they take a problem that a real world problem that they
care about, they're willing to pay money to solve effectively, how do they take that problem and map it onto a particular
quantum computer, whether that's today or two years from now or six years from now?
I think there's a lot of software that's going to happen that needs to be in place to do
that mapping efficiently and make quantum computers available to people who are not quantum physicists or
really deeply marinated in quantum computing. That sounds good. By the way, I was preparing
for this. I was listening to one of your presentations where you said you like to
work with wacky hardware and make it usable for people.
And maybe this is the fourth point you mentioned,
and that's where you have an opportunity to enable this to happen.
So that'd be very good.
Yeah, exactly.
So I was going to ask you one more thing.
As these systems are so unique, so expensive, so hard to find,
I wonder what are your thoughts on cloud technology to enable multiple people to access. I'm thinking let's say I'm running in my normal
computer but here I have a particular problem that I could run on a quantum
computer it's gonna be an expensive thing for me to buy. What are your
thoughts on on cloud technology to enable access? Yeah, so I think it is, I guess I would use the word mandatory
for to get broad access and to let people do,
as many people as possible do development.
One of my D-Wave colleagues always used the term,
we need more smart people using these systems.
And I think that's exactly right.
So the way to get the most smart people is to have cloud access.
So, but there's a but, or maybe I should say an and with that.
Um, remember that I mentioned that we expect quantum computers to be used in a hybrid mode
with classical computers for the foreseeable future.
And what that I, in my experience, what that has meant is that the classical processor finds a sub-problem that it asks the quantum computer to solve, or maybe come back it calculates the next things that the on
the classical side it calculates the next things for the for the quantum computer to do so there's
a a back and forth and you don't have to think about that very long before you realize that
the latency of that connection is um is a first order issue and, you know, as with GPUs, we found that, well, those
GPUs need to be very close, very low latency access to the CPUs that they are accelerating.
I believe we're going to see the same thing happen with quantum computers used to solve real-world problems.
And so what I see is it's likely we're going to need the ability to co-locate.
So when I say I have a problem to solve and I have a classical portion and a quantum portion,
well, one way to solve that is to say I'm going to send the classical portions,
you know, like in a container, and I'm going to send it over so that it executes physically very close to the quantum processor.
I think that's going to be a common thing. And scheduling is going to be an issue too,
because, you know, when we think about scheduling a web server, well, we have a million of those and we just, you know, you don't even
think about it really. But if you have this tight interaction between the classical and the
quantum, then you really want to know that when the classical sends its function off to the quantum,
that the quantum is going to do something with it now and not wait for the next time slice that's
three seconds later.
So I think there are a number of kind of co-location scheduling issues that will need to be effectively
solved to make the cloud model usable in a way that delivers differentiated performance.
So cloud will enable access to many people.
Your view is it's going to be a hybrid world.
So cloud will have to provide access to both a classical computer very close
to the quantum computer to be able to do this.
Let's call it hybrid processing.
Is that fair?
Yeah.
That's very good.
Steve, you've been good at explaining to all of us what is a quantum computer, what are things today, what do we expect to see in the future. For the rest of us who are not working regularly with quantum computers, anything you want to share, anything we should go learn about it to start preparing for this change? So, I mean, if you're curious,
then absolutely, there are cool things to learn.
So I would absolutely encourage that.
If you feel like you don't have time or inclination,
to my way of thinking, that's completely reasonable.
And what I would say is you know it when you're
when your quantum computing vendor comes and tries to sell you a quantum computer
so if you're a subject matter expert you know an engineer a biologist a chemist
statistician whatever a machine learning person I think you should be asking, well,
what subject matter interfaces are available that take advantage of the
quantum computer?
And one of my D-Wave colleagues built an interface that is exactly this.
So many of you will have heard of NetworkX,
which is a graph analysis package from Los Alamos, graph in the sense of a set of vertices and edges, not in the sense of a plot. you can say here, define a graph and then go calculate the maximum independent set or the
shortest path or a variety of other graph analysis functions. And what my D-Wave colleague did was
take some of the very compute intense graph analytic kernels from NetworkX and re-implement them so that they execute taking advantage of the quantum processor.
So I, as a subject matter expert who knows about graphs, I can, and I have a NetworkX program,
I can import a different module, D-Wave Network X.
And other than that,
and there are a few minor differences in the API,
but they're minor.
And I can solve the same functions. So maximum independent set, as an example,
and it uses the D-Wave processor
instead of a classical processor.
Well, to me, this is a great thing.
We've enabled people to use a quantum processor
from interfaces that they already know,
they're already comfortable with, already familiar with.
We see another possibility for,
there are algebraic modeling languages
like Ample or PyMO or MiniZinc.
And for them and for their very general purpose,
and not all of their problems map well to a quantum computer,
but for the problem types that do map well to a quantum computer,
it should be possible to pose the
problems in those languages and have them converted to run on a quantum computer. And to me, that's,
quantum computer is a great thing. I'm delighted. I've been working in it for four plus years.
But to say that everybody who's going to use one has to learn all about quantum computing
is, to me, a silly idea.
And we should say, we're going to meet users where they are, and we're going to deliver
them differentiated performance where they are.
And so that means we have to look at the interfaces they're using and figure out how we're going
to deliver performance via those interfaces. So to me, that is a good question to ask your erstwhile quantum computing vendor.
That sounds very good.
Steve, this has been very interesting for us, understanding quantum computers,
understanding the future, the problems, the realities.
I think there's been a lot of hype about quantum computer like it's replacing everything
Understanding what it is today what we expect to see in the next few years. I think it's helpful for all of us
Before we close anything you'd like to add
No, well, maybe I just mentioned that you know know, if we look at when do the first real world uses of these come into reality?
I mean, when will it be the case that there will be large organizations that use a quantum computer all day, every day, because it's the best way to get their jobs done?
I think probably at a minimum, we're three to five years away from that.
And I'd say the quantum annealing systems probably have a little bit of an advantage there.
The gate model systems could conceivably get into that range if we're able to figure out how to use
them without error correction. But it's probably more likely that we'll need error correction for
the gate model systems, which puts it out to, I'd say, probably more than 10 years. So this is not a
technology that is going to be for the masses anytime soon, but I think it will be before long and I think the the benefits for the first groups the
first application types that can exploit them will be really large so I think
there will be once once they're proven for an application type of I think
you'll see people migrate very quickly you know others who use that type of application will migrate very quickly.
Very good, Steve. Well, to close, I would like to thank our guest, Steve Reinhart,
for sharing his experience in both HPC and in quantum computing to help us separate reality
from hype and to help us understand how to navigate the future of this new technology.
Till next time, I am Gabriel Bronner, and this was the Big Compute Podcast. Thank you.