I'm Miko Pawlikowski, and this is HockeyStick.
Quantum computing.
Is it science fiction, hype, or reality?
Does it work today?
Will it break all your passwords tomorrow?
How can you future proof your career to not get left behind?
What does it look like?
To answer all these questions, I'm joined by Johan Voss, the author
of Quantum Computing in Action, a new book published by Manning.
and co founder of Gluon.
Welcome to this episode, and thank you for flying HockeyStick.
Johan, how are you today?
I'm fine, thanks for having me.
the pleasure.
I assure you, as you're going to see, it's all mine because I've been waiting for
someone to explain this entire quantum computing thing to me for a long time.
let's get right into it.
Quantum computing.
What is so special about it and why is it a big deal?
there are a number of things on why I think quantum computing
is, special and, interesting.
I think the most intriguing thing is that a quantum computer is actually more
a computer like how nature is working.
So when we think about computers, we think about, classical computers
that works with zeros and ones, but nature doesn't really work like that.
the fundamental subatomic particles in nature, they do not
work like the transistors that we use in classical computing.
So a quantum computer, while it is often seen as more advanced
or so, it's actually more basic.
And that does not mean that it is easier to create or easier
to program, but it totally makes sense from a physics point of view.
there are quite a number of similarities and a number of
differences with classical computers.
And the main difference, and one of the reasons why quantum computers are,
interesting and are getting attention, is that they might provide huge, unseen
computing power in a different way than classical computers would do, but
there's a possibility to do things on a quantum computer that are, technically
impossible on a classical computer.
And the most, common example is the Shor's algorithm.
that algorithm allows a quantum computer, to factor integers into,
prime numbers, pretty fast, much faster than a classical computer can do.
And as a consequence, that might break, Most of the
encryption that's in use today.
Now, this is just an example that is often used to catch people's attention.
And it is very true.
And it may happen one day.
But there's much more to quantum computing than this.
If you ask about the hype, I think this explains part of the
hype about quantum computing.
Okay.
So we've got a little bit of hype for sure.
If you put this query in Google, there's a lot of scary sounding
things, like what you just mentioned, the security going out of the window.
But what are some of the examples that might not be covered by
the hype that are actually more representative of quantum computing?
What do they excel at?
in general, a quantum computer, can help you with problems that,
require lots of parallel computations that are somehow related.
problems that in classical computers would require exponential more time
if you make the problem a bit harder, might be, solvable in polynomial time.
for example, on a quantum computer, I'm trying not to use too much,
mathematical, concepts here, but, that is in general, the core advantage
of a quantum computer and, to Java developers, I often explain this as, the,
parallel streams that we have in Java.
that allow you to do many computations at once.
In a classical computer, we're using different native threads.
But in a quantum computer, you can compare it with doing all the
calculations at once on the same thread.
So the different, inputs are processed, all together.
And that is the core difference between the quantum computer,
and the classical computer.
And then when is this relevant?
first of all, in everything that is, related to the low level, parts
of nature itself and, chemistry.
And, healthcare, where we need to do lots of computations and especially those
that are, related to the fundamental laws of physics, those can benefit from
quantum computing so we can use a quantum computer to understand nature better.
And, there are algorithms being developed to, help with, some chemical analysis.
because, chemistry is a bit of a weird field, it's pretty hard to, simulate
even simple molecules and finding out, what's happening if you combine, even two
atoms, it's very hard to do because it requires a huge amount of calculations.
So that's something that a quantum computer, might be able to do more easily
because of their nature with, doing many parallel computations as once.
They're also good in optimization problems, traveling salesman, for
example, where, you have to examine different paths and find the best one.
And, one example that I think, Might be available in the more short term is,
quantum key distribution and, people often talk about, quantum computing is
going to break encryption, but on the other hand, quantum computing is also
allowing for much stronger encryption, and, that is something that you don't
need lots of, expensive hardware for it.
it's still not easy to do at home, but that is something that, I see
as a positive evolution that might happen thanks to quantum computing
the encryption that we have today can be enforced, by a few orders of
magnitude using quantum computers.
So imagine you're talking to a five year old software engineer.
they probably have heard of a Schroedinger's cat.
They probably have heard of a double slit experiment.
And that's about the extent of what they know about quantum physics,
other than it's weird and strange.
Could you try to explain in simple terms, things like qubits
and what superposition is?
just enough to explain how a quantum computer works at a high level.
that question can, be answered by comparing with how classical computers
work and then seeing where it is different with a quantum computer.
So a five year old software engineer knows that a classic computer works
with bits that can be zero and one.
And in a computer there are many bits.
All are at a given moment, either zero or one, and the combination of these zeros
and ones allows you to do many things.
but the thing is, a bit is always either zero or one.
And the equivalent of a bit in quantum computing, is what we call the qubit.
So that is the ultimate building block in in quantum computers.
Now a qubit can have the value zero, It can have the value 1, like a
regular bit, but it also can hold a combination of the values 0 and 1.
that is the first and very weird thing about a quantum computer,
because what does it mean?
it does not mean that it can hold the value 0.35 or so, because when
you would measure a qubit, You will either get 0 or you will get 1.
Very similar to what you will measure on a bit.
But during operations, the value can be a combination of 0 and 1.
And the main difference is then that where a classical computer works
with the value of a bit, a quantum computer is more about probabilities.
How likely is it that if I measure this qubit now, that I will measure 0, and how
likely is it that I will measure a one.
while ultimately you will measure a zero or a one, you can still do
all the computation simultaneously, pretending that the qubit is
zero and that the qubit is a one.
And that is a major difference.
And that explains the, exponential, behavior of quantum computers
because with one qubit, we can have two values, zero and one.
With two qubits, we can have four values, zero, zero, zero,
one, one, zero, one, one.
And so that's why it scales exponentially.
And that is the concept of superposition, which is not something that we invented
to make quantum computers work.
It's actually the opposite.
It is a phenomenon that we see in nature.
Some elementary particles, for example, the spin of an electron, have
a property that can hold two values simultaneously, spin up or spin down.
But the moment that you measure it, and that brings us to Schrodinger's cat, the
moment that you look, the moment that you open the box, it's in one state only.
It will be zero or one.
So then the fun, the magic is gone.
But as long as you keep it in the box, as long as your application
is running, your qubit can, have two values, to compute with.
Okay, so I think what we need to explain is basically how do you
get from one Schrodinger's cat that is in a box to two Schrodinger's
cats that are entangled, right?
Because with one qubit, you can't do an awful lot of good.
The whole thing is to get a lot of them, right?
And they all need to be somewhat, connected.
Is that right?
so apart from superposition, which means that one qubit can be both zero
and one, with some probabilities, that if you measure it, it's going
to be zero and other probability that it will be one, that's one of the,
strong powers of quantum computing.
The other is indeed the concept of quantum entanglement.
It's, quite different, but the combination is, huge.
I have, for example, two qubits that are, entangled.
And there are physical operations to entangle qubits.
it means that if I sent one of the entangled qubits to you or to, somewhere
on earth or even to the moon, that is not physically connected to my qubit anymore.
And we don't know the value of the qubit, but the moment that, I measure
the qubit, the value of the qubit in the other place is known as well.
You don't know it upfront.
You don't know it until, I measure mine, but then I also
know the value of your qubit.
And that is not because they had that value initially.
No, they had no value initially.
So it's not that the value was already there, but we just didn't know it.
that's unrelated.
And this is, of course, something that, one of the most obvious examples is
this allows you to create shared keys, for example, because it is, the same
value that's being sent via a qubit and you don't know, until you, you open the
box, but if I open the box, In my place, the box in your place is open as well.
And we have the same values.
So that is, entanglement.
so security is one of the, things that benefit from this.
But just the fact that, there are, by nature, correlations between
different qubits allows for a different, way of programming.
this is a, a hot topic in quantum physics in general, it's really tempting to
say that information travels faster than light, but it is not, because if
I tell you what my qubit looked like.
And if I would tell that to you and you would then compare it, yes,
that's indeed the thing, then I would use a classical channel and
that cannot go faster than light.
So the information itself is not traveling faster than light.
and it's something that I, to be honest, avoid, Talking about when I
talk about quantum computing, because different quantum physicists will
chime in and, start, correcting, me and each other to be honest, to
me it does not make lots of sense.
it's just something weird.
And I think the key thing to be able to deal with quantum computing
is to not try to understand it, I think it was Richard Fineman.
If you think you understand quantum, physics, then you don't understand it.
and it is so weird that, it helps giving up trying to understand it.
the good thing is that if you just look at the mathematics, then it all makes sense.
And if you don't want to do the mathematics, that's totally fine.
Then you should just.
acccept that those who did the mathematics did their homework, correctly.
So superposition and entanglement are real things.
but it's extremely hard to, intuitively understand what it actually means.
And the math behind it is also not simple.
So that makes, I think, quantum computing, something exotic,
especially to developers.
yeah, I think for me, it was the double slit experiment when you
go and do it and, you can see the results that makes no sense.
You're starting to think that, okay, Something's not quite as logical and
intuitive as we all thought, but that's, an experience for a lot of people, right?
True.
Yes.
And you clearly see what is happening.
that there are, interference patterns.
there's no doubt that they are there, but you don't understand it because
how, our day-to-day observations of how things work, do not easily explain this.
How can a particle be a wave and a particle at the same time?
What kind of hardware, if you were going to talk a little bit more about,
application side of all of this, but I'm just curious in terms of actual quantum
hardware that you can lay your hands on.
Let's say that you're lucky at your, at one of these companies
working on it or some university.
How many qubits does it have at the moment and how expensive is it to run?
so it's definitely very expensive.
the number of qubits, that used to be the, the discriminator to say,
how good a quantum computer is.
And then, for example, IBM had, for a long time, this, limited number
of quantum computers that they make available, via their cloud infrastructure.
those are the five qubits.
and gradually, the quantum computers are getting more qubits.
we're talking now, between 100 and 1000, qubits, but that number itself
is not entirely irrelevant because, there's an important concept in quantum
computing, which is error correction.
it's so fragile to operate a quantum computer that they,
the error rate is pretty high.
So instead of just talking about how many qubits, it's better to get some
noise and produce wrong results.
So the quality of the quantum computer is more than just the number of, qubits.
And that is a discipline in, quantum computing hardware
that's, under heavy research, and they're, on a very frequent basis.
there are new papers about, a breakthrough in the, new algorithms or
new hardware, especially for, creating qubits with more error correction.
I wish it was simple that we could just plot like, the clock speed of a CPU.
but there is no consistent definition yet.
IBM had this quantum volume defined, but not everyone is using it.
but it is, the indication of how powerful quantum computers are It's not,
something trivial, but it's clear that, they are getting better and better.
That's for sure.
The question is, how fast are they getting better?
Okay, so for someone who maybe picks up your book, they're gonna spend most of
their time in a simulator at the moment.
is that right?
so one of the good things about quantum computing is that, it is easy to
separate the software and the hardware.
We do understand how the hardware works because that's just the, the fundamental
laws of nature and quantum physics.
And, we do know, especially from experiments with small quantum computers,
that it is indeed working, like this.
And now that we know that, we can, create software on top of classical
computers that simulate a quantum computer, because we know the rules.
Of course, this is going to be much, much slower, and especially requiring much
more memory than a real quantum computer.
But the basic rules are known, and we can program them in a
quantum computer simulator.
And, typically today, if you write software, you do that in a
higher level programming language.
where you then leverage the lower level concepts.
And that is what you do in a quantum, simulator as well.
you write, code in most of the cases, almost all cases during
development, that code is being executed on a, quantum simulator.
But the same code, can theoretically also work on a real quantum computer.
So the moment that, quantum computers are much more, available, the code
that you write today and that you run on a quantum simulator will
also run on a quantum computer.
if that was not the case, then I would not recommend software developers to
start with quantum computing today.
But because we can already do it today, we can create quantum applications.
it gives a huge advantage to those developers who are already dealing with
it, because the moment that quantum computers are, more powerful, more
available, those developers can run their applications almost immediately on the
quantum computers, whereas others still have to start learning and writing, code.
So before we jump into how different it actually is to write that kind
of code to, classical, we should call it, programming language style,
tell us a bit about your book.
As I started reading this, it came across to me as a very applied kind of book.
You talk about how there's a lot of resources that have to do with the very
complicated, strange physics of that.
And there's also a lot of hype and your book is trying to be an applied
guide that's neither of these things.
Gives you enough background, but also doesn't buy into the hype.
Is that the right impression of the book?
that was exactly the goal.
So I'm glad that, you, have that observation because that
was the goal of the book.
I think it's, practical as it can be, because, I don't think most of
the people who read the book have a quantum computer on their desk.
So it's not that it's as practical as, more Python for dummies, for example,
where you can, use it in practice, but it's mainly targeting existing developers
who want to, know how day and day job will be impacted by quantum computing.
How can they leverage it?
How can they benefit from it?
What's, are the expectations?
What's, it's clear that quantum computers are not a solution for everything.
And, I think by explaining how the quantum computers are
working, which is non trivial.
the reader gets a better idea.
And, I try to minimize the maths in the book because it doesn't matter.
it might help in understanding.
And therefore, I wrote this, quantum, simulator, and the code is, open source.
if you really want to know how it works, you can look at that code and
then you understand the underlying things, but it is not needed.
And that is something that in the software world that we, often see that, people
are using libraries for example, in the Java world, there's a huge ecosystem with
lots of libraries, and people can use those libraries and I think it's then
important that they know what are these libraries doing, what problems are they
solving, how can I benefit from it, and what do I need to do to, to use them.
But you don't need to know how exactly they are solving the problem,
because, then you could well, quite everything yourself, indeed.
So I think in that sense, it's targeting the pragmatic developer.
I want to know when I can use this, how I can use this.
and it's good to understand that a bit of the background on why this is
working, but, you don't need the, PhD in, physics or mathematics or so that
was the main target of that book.
And, I think It's actually funny why I did this.
I did my PhD in physics, but then I, moved over to the iT, industry, because for
my PhD, I needed to write software and then there was a new software, language,
which was Java, but it didn't work on Linux and I had a Linux workstation.
So I, together with a bunch of people we ported Java to Linux
and then I rolled into the IT world and, yeah, I'm still there.
But when, Jim Weaver, who is now developer advocate, quantum computing at IBM and
a fellow Java champion, a good friend of mine, asked me to do some joint
presentations about quantum computing.
Then I said, Oh yeah, that's fine.
I didn't know much about quantum computing, and I think the best way to
really learn, or get a deep understanding of quantum computers is to write one.
In software, I do not recommend that to everyone, but writing a quantum,
simulator is really helpful if you want to understand, how it's actually working.
it gives a better understanding and I think it also helps
in explaining it, to people,
That makes perfect sense.
Would this be an accurate representation then that this is for a pragmatic
developer, who also wants to future proof.
there's skills by learning this so that, like you mentioned, when
they become ubiquitous at some point, and hopefully they still
alive by then, they can use that.
Are there any applications that, quantum computing programming can give
you today in terms of, production use?
Is there anything that you can actually apply it to in your
real programmer life day to day?
the real practical, examples, require more qubits.
so in the scientific industry.
You can already do some work to get a better understanding about
for example, how nature works.
And that is possible.
But the, applications that, are envisioned, typically require
much more, powerful, quantum computers that we have today.
There is an exception though, and that's what I mentioned early
the quantum networking, that does not require many qubits.
As long as you can send one qubit, from one place to another place,
you can communicate in a secure way.
that is something that's already being used today in commercial applications,
and there are specialized companies that are, create devices that, generate,
entangled, qubits, for example.
sent each one of them to a party so they can generate a shared key.
And as a consequence, they can communicate in a secure way.
So that is something that's, used in a number of places,
mainly for demonstrations.
there's a great team at the University of Deloitte, where they
are doing a proof of concepts with the port of Rotterdam, I believe.
And, with telco operators as well, because, ultimately the qubits need to be
sent over the telecommunication network.
So that is something that's, at a small scale, but it can be used, today.
can you tell me a bit more about how that actually works?
Because what I'm picturing is someone With a fridge having two untangled qubits
packing one up using FedEx to ship it to somewhere and then you have this change
of that you can detect on either end.
How does it actually work in practice?
You mentioned about sending the qubits.
How do you send qubits?
the good thing is that, the qubit itself is not a physical concept.
It's just a logical concept that has a physical representation and everything
in nature that can have two states.
simultaneously.
as I said in the beginning, if you measure it, you will always measure
one state, but, it carries two, states with each, having its own probability.
that is a good candidate for being a physical qubit.
So different quantum computers use different kinds of
qubits for their hardware.
It's often superconducting qubits are used, but trapped ions are also used
because they have this physical property of allowing a superposition state.
And for communicating qubits, you can use photons.
which, can be transmitted, to, fiber.
And that is a great advantage because, that means that we can use, a large part
of the existing telco infrastructure.
So if you put a photon, On your part of the fiber, you can send it to, your,
friend at the other side, of the fiber.
it can't travel long distances, yet.
but you can have, repeaters in between, them.
it's an interesting technical, challenge, but it's something that's at least.
In labo experiments and on smaller scales, number of kilometers
is proven to be working.
Okay, that makes a lot more sense than my picture of a freezer with untangled
atoms sitting in there and probably better than signing them by pidgeon.
okay, so let's jump into what it actually looks like in practice.
The, part one of your book was the intro to the quantum computing.
Then you introduce in part two quantum computing concepts, a
lot of what we talked about.
And then part three is the getting your hands dirty, code examples,
algorithms, and all of that.
So let's start where we always start.
What does a hello world look like in, the quantum computing world?
again, there are some similarities and some differences
with, classical computers.
especially in my book, I try to focus on the similarities because that makes
it, easier to understand and to use by, existing, developers and, I think
at the low level, the similarity is that a classical computer, if you write
a hello world, the code, whether you write it in, Java or, Python or Rust or
whatever, that, code is being translated into machine code and is ultimately,
a number of zeros and ones that are converted because some gates are applied.
So a typical gate in a classical computer is the NOT gate or the AND gate.
And so every hello world application is translated into binary operations
on bits and the binary operations, are executed by gates, by logical gates.
And the concept in a quantum computer is the same.
the difference is that, whereas in a classical computer, the input of the gate,
for example, we have a, a NOT gate and if you have, input zero, the output of the
NOT gate will be that the bit is now one.
And if the input was one and you apply the NOT gate, the input is zero.
And with this limited number of gates, it's proven many times that with
a limited number of gates, you can create, a whole logical, computer.
same applies to the quantum computers, with a limited number of gates, we
can create quantum applications.
But here, if we compare the, the NOT gate and we move that to.
the quantum world.
If our qubit, holds, the value zero and we apply the NOT gate, then
the qubit will hold the value one.
Now, when I say hold the value, that actually is short for when the qubit has
a state that if we would be measuring it, in all cases, it would guarantee
a result in a 1 being measured.
That is what I mean with the qubit holds 1.
So when the qubit holds 1, and we apply the quantum NOT gate, if we would then
measure the qubit, we would measure 0.
And vice versa, if it's 0 initially, and then we apply the gate, it will become 1.
Here's the difference with classical computers, because a qubit may
hold a combination of 0 and 1.
If we apply the NOT gate, we will again have a combination of 0 and 1, but with
different probabilities than before.
the, approach is the same.
We apply gates to a number of qubits, and that is at a very low level.
And at a higher level, we instruct which gates do we want to use
on what bits at what moment.
Similar to how a classical hello world is, going to tell the CPU, load
this value in register one, load that value in register two, do an end,
and the result is in register three.
And, everything on top of that is high level programming, and that's the same
for a quantum computers, everything on top of the, cubit, arithmetic is, higher
level, programming, which you can do in your, language of choice, actually.
So just a thing that I don't think I understand is that classical
computer, you've got the gates and you go one cycle, you store something
in a register in a quantum computer.
Does it work the same way you do one cycle, it goes through all the
gates and you have some kind of equivalent of a register that does
the observation at the end of it?
Or is it different?
the registers are qubits as well.
so you do operations just on the memory, like you do in the classical computing.
in a classical computer, whether it's in main memory or register,
it is a bit, the thing with the measurement is that you only do
this at the end of your application.
and you do that only, once, you can't peek inside the quantum computer.
we have a classical computer and that's a big difference.
you can inspect the values at every moment.
And, we have great debuggers.
I'm a big fan of, GDB.
to check on every step,
what are my registers and so on.
You cannot do that on a quantum computer.
The moment that you look, it's gone.
At least all the superpositions are gone.
You will only see zeros and ones.
And that's, again, the analogy with, Schrodinger's cat.
The moment that you open the box, the cat is either dead or, alive, The
observation, the measurement is something that you can only do at the very end
and at that moment, all the qubits will be measured as either zero or one.
And the key thing in creating quantum algorithms is to manipulate those
algorithms that, the end result will give you information about
what you were actually looking for.
And that is done by, applying, mathematical, algorithms that
will amplify, or cancel, things.
you want to understand something if the outcome that you measure is one,
it means that what you, were examining has this characteristic, and if the
outcome will be measured as zero, you want it to be, matching with, the other
characteristic, and initially there might be, for example, 50 percent chance that
you would measure zero and 50 percent chance that you would measure one.
If you don't measure it, you don't know anything because it looks just random.
But by applying the correct, gates, the result, makes sense.
And I do understand that this is, quite different from classical computers,
the zero and the one that you measure in a classical computer corresponds
to what you really want to measure.
Whereas in quantum computers, it often gives, meta information and, that
is why, apart from the hello world, this is the first thing that I, often
describe and it's in the book, no real practical, benefit, but which explains
why it is, sometimes, useful to, manipulate the input and the output.
And then you measure something and then you know something about the problem
that you were trying to investigate.
for anybody, for whom, words Deutsch and Jota don't necessarily mean anything,
could you give us a little bit more of what the algo actually is like?
Yes, absolutely.
I try to simplify the parts that are not relevant to developers.
but I try to avoid making fundamental, quantum physics mistakes, so
I'm simplifying things here.
So that was just my disclaimer in case so the Deutsch, algorithm is,
or the problem that's trying to solve there is, effective problems.
We know that, we are given a function.
We don't know if it's a constant or a balanced function, there are two constant
functions and two balanced functions.
and we can only make one measurement.
So suppose that we, measure, the result of applying the function to the value zero.
If we then get as a result.
zero, then we still do not know is this a constant function or a balanced
function, because if we would apply, but we're not allowed because we had only
one chance, but if we would apply the function to the value one, and if we would
measure zero again, then we know, yes, the function is always returning zero.
It's a constant function.
But if we would apply it to one and the result would be one.
then we know that it's a balanced function because apply to 0 it gives
0, apply to 1 it gives 1, so that's a silly, problem, but it shows that if we
want to know this in a classical way, we need to do two function evaluations.
And on a quantum computer, if we can use qubits where those qubits
can have a separate position, we can, prove and also show.
So that's where, we show the code how it is shown that only one function
evaluation determine if it's a constant function or a balanced function.
And that is because we apply it to, a superposition of zero and
one, and then do some operations so that we are guaranteed that after
the operations, the value is zero.
Then we know, for example, that it's a constant function or a balanced function.
So we actually need pen and paper to follow this or, I think it's explained
well in the book and you can run the code, but the key point here is that,
we've proven that there is a kind of a problem, a completely useless problem,
but there is at least one problem where, we need, two function evaluations on a
classical computer to solve it, and we can solve it with only one evaluation
on a quantum computer to solve it.
Now we can extend this to the Deutsch Jozsa, and then you can easily prove
that, you will exponentially need to do more, function evaluations on the,
classical computer and only linearly.
More evaluations on the quantum computer.
So that is a simple example that shows that there are problems that
require less, steps on a quantum computer than on a classic, computer.
And that is I think, one of the, root advantages of, quantum computers.
And it also immediately shows that this is not applicable to everything.
It's not, applicable to, to user interfaces or so.
It's to a special kind of problems that, Yeah, scale exponentially on a
classical computer and you can prove that they, scale, sub exponentially
or, linearly, on quantum computers.
Yeah, I think this is becoming very clear from what you're saying that
quantum computers are not just, as some people like to paint them, a
replacement or an exponential improvement on classic computers, they're going
to work on very specialized problems where they make sense, and they're
going to be narrowed to that corner, probably for a very long time.
I think you mentioned also shores and I think I remember Grover's search.
This sounds a little bit more applicable, don't they?
yeah, real applications with real benefits.
But then the drawback is they are much harder to explain adding to what
you said, and that's indeed right.
So quantum computer is not, something that's going to replace your desktop
computer or laptop, or mobile phone or so.
But I actually compare it more with, in today's computers, and
for a long time already, you have a CPU that's doing lots of work.
and, it's getting more attention recently.
I've been using this example for a long time.
there's also, one or more cheap use in most, computers and, for some
tasks, CPUs are extremely well suited.
And for other tasks, GPUs are, much better.
and I think the same applies to, quantum computers, and I envision that in the,
potential, applications, or computers of the future, we have a combination of
CPUs, GPUs, and then QPUs, so the quantum processing unit where The different
processing units are executing tasks that they are, very well suited, for.
So for the vector operations, you would go to the GPU for the, typical, operations.
You would use the CPU.
And then for operations that require lots of, explain scale up, you go
to the QPU and then the, the cool thing is that as a developer, you
can leverage the benefits from the CPU, the GPU and a quantum computer
without, knowing all details about them.
I think most people who, write, for example, AI, applications,
they don't know the individual instructions that the GPUs, have.
same with quantum, software, you do not need to know all the low level, gates
and details about quantum computers, but, applications, should know that they can
benefit from different, processing, types.
So that is where I think that, there's a place for, quantum computers,
for classical computers for GPUs.
And so in typical applications,
I think we're going to have potentially also like the TPUs, I think they call
them, like the ones that are like GPUs, but work on lower resolution,
so that they're better suited for like LLMs and the QPUs as well.
so back to my question about Grover's search, for example, let's maybe just see.
What's the potential of, an algo like this and how does it
work like high, very high level?
Yeah.
it is more tangible.
It's more, down to earth, than, the, Deutsch Josse algorithm.
but it's also, I have to be honest that the name itself is a bit misleading.
and especially if a marketing department was to sell Grover Search, then it would
probably say that, This is going to speed up all your searches, by a, a multitude.
But the search itself is, as I said, a bit misleading.
The algorithm allows you to find an element in an unstructured
list a base to a specific rule.
So if you have, a list of, 1000, elements, entities, whatever, and you apply a
function, to those, elements, and if there's exactly one element of the whole
list where that function would say: true.
And in all other cases, it would say false.
so doing that is, faster with Grover search than any
classical algorithm can realize.
For example, if we have, let's say a very stupid example, would be, we have a
list of 100, athletes, and one of them is the, world champion in the, 5000 meter.
So the function that we apply is, is this person the world
champion in the 5000 meters.
So for all of them, except for one, that value will return zero.
And for one, the value will return, one.
If we would do this on a classical computer, There are extremely
optimized search algorithms, but still it would be in best case linear.
So the moment that we get more, if the list becomes bigger, then on
average, we will have to do more searches linear with the input.
And on a quantum computer with Shor's algorithm, we can prove that,
We need to do more evaluations.
But instead of linear, it goes with the square root off the
number off evaluations that we do.
So it's definitely showing a speed up compared to classic search algorithm.
and I think, going with the square root instead of the whole
number is a major improvement.
But as I said, It does not replace your SQL search query.
It's really for simple searches where you know that there's only
one element in the list that will result in, that you're looking for.
So it's not that give me a list of all people older than 40 years
old who live in this city or so.
It's really more the example of give me the one element in this list that
is, the world, champion in the 5,000 meter or so, that is a grover's,
search, which, is definitely, useful.
so it's more down to earth and it's proven to give, an advantage, over
the best known, classical algorithms.
So let's jump back to the QPUs.
I was going to ask you for predictions for the future, where you see all
of this going in terms of hardware and applications, and maybe in, one
and five and 10 years, you hinted already at that, seeing the QPUs
integrated in everybody's desktop.
What else do you predict is likely to happen?
What's your best guess?
What do you expect to happen?
Let's say in five to 10 years from now.
I think the quick win and then we're not talking five years, it's, sooner
because it is actually already there.
But on a limited scale is the, quantum networking, with, possibility
to do quantum key distribution and to do secure, communication.
creating a shared key between two parties.
That is something that I think, will become, more widespread in the next,
few years because the limitation there is, the hardware is available.
you only need one qubit, to make this happen.
The limitation is more the network.
and the quantum repeaters and so that is, that is less of a technical problem
than creating general quantum computers.
So that's where what I think is going to work in the short term.
The, bit longer term is I think, more, specialized algorithms that,
are targeting a specific task and that can be, for example, optimization
algorithm, traveling salesman, which is, extremely interesting for some
companies, or specialized financial algorithms, for stock market, things.
Or, specialized, physics or chemistry algorithms that are then
applied on a dedicated quantum computer that's really optimized
to solve this particular algorithm.
is then more or less a combination of hardware and software.
So the hardware is more or less pre programmed to run
that specific, application.
I think that is what we will see in the medium term and, yeah, let's say
five years or so, and then the more general quantum computers, which,
are completely, independent from what software is going to run on top of it.
not that I have a personal, opinion about it.
It's just what I read from, the, people who are dealing with the hardware, that
they find realistic, and then depending on what your source is, you will see
some hardware engineers will say that, it's going to be available in two years.
Others are saying that it's never going to be available.
So my.
rough guess is 5 to 10 years, then there's a fair chance that Shor's
algorithm can be, applied at a large, scale, which is, of course, very
worrying if by then you're still using, algorithms that are vulnerable by
source algorithm, or actually worse, if the data that you're using now
for, communication, is stored somehow, That data can be decrypted by quantum
computers when they are powerful enough.
So the time frame about when Shor's algorithm, for example, is going to be
available, it's maybe a bit misleading, because even if it's only in 10 years
from now, that does not mean that your data today is safe, because it's not
that hard to snoop data from a network and store it locally, and then once one
of the quantum computers are powerful enough, they can decrypt that data.
and, and that can give quite some interesting information, about secret
conversations, in the past when I say that it's gonna take at least five years
before Shor's algorithm is applicable.
Do not want to say that people can use classical, encryption like AS and so forth
the next five years without being worried.
I think, We should be worried today already.
You should be worried.
And also with all the leaks where companies lose their entire databases
and they say, Oh, don't worry.
It was all encrypted.
That's the same problem, right?
Yes, absolutely.
that is very dangerous.
more companies, and organizations are realizing, this, for example, signal
the, messaging application, is already using, post quantum cryptography algorithm
next to the existing, algorithm to encrypt, the data because, If data,
going from and to a signal users is put somewhere on the hard disk, that's safe.
That cannot be decrypted with a quantum computer anymore.
you never know if there's going to be new algorithms being found out.
But a number of companies are now following that example.
already enhancing their encryption algorithms, which I think
is a very smart thing to do.
I still think that in the end, it will still be better if they would use
quantum key distribution and quantum encryption, because then a quantum
computer can not break quantum encryption.
So then they are still safer.
That's, can only be, really rolled out practically when, quantum networking
is rolled out across the globe.
that's an optimistic note to wrap up the episode on.
Hopefully you're not too scared.
for anybody who wants to go and check out the book, once again, it's called.
"Quantum computing in action".
It's published by Manning so we can get it from manning.
com or you can go to your usual, book provider and it's absolutely worth a read.
my guest was Johan Voss.
It's been an absolute pleasure and I hope to see you again.
Thanks.
It was really, fun to talk about this.