Embedded - 483: An Ion of the Highest Fidelity

Episode Date: August 23, 2024

Rick Altherr spoke with us about high-speed control, complicated systems, and making quantum computers. If you want to know more about building quantum computers, take a listen to Rick’s MacroFab ep...isode: The Nuts and Bolts of Quantum Computing. If you want to make your own quantum circuit simulator, it only takes 27 lines of Python: A Quantum Circuit Simulator in 27 Lines of Python. What about if you actually want to know about quantum computing? Rick suggests Quantum computing for the very curious while we look back at Embedded.fm 344: Superposition, Entanglement, and Interference with Kitty Yeung, talking about her Quantum Computing Comic book and Hackaday lecture series.  Rick works for IonQ where they do trapped-ion quantum computing (there are different physics methods for making ions dance to the tune of quantum computing). If you want to talk to Rick, maybe to get his advice about your resume or career prospects, he sets aside a few hours each week to share his wisdom: https://calendly.com/mxshift You can also find Rick on Mastodon and LinkedIn. He was also the guest on 311: Attack Other People's Refrigerators about security hacking and mentoring. Transcript

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded. I am Elysia White, alongside Christopher White. Our guest this week is Rick Alther, and we're going to talk about transporters, spooky action at a distance, no-cost mentoring, and other requirements of the infinite improbability drive. Really? Hi, Rick. Welcome back. Hey, thanks for having me. Could you tell us about yourself as if we saw you walking around DEF CON carrying some really strange gold bling? Hi, my name is Rick. I am a full stack engineer. I've done everything from ASIC design to user experience on everything from embedded systems to hyperscale.
Starting point is 00:00:52 I have done a lot in information security work in x86 servers and firmware. And now I design real-time control systems for quantum computers. Real-time control systems for quantum computers. Real-time control systems for quantum computers. Not quantum control systems for real-time computers. No, that would be a very different thing. That there probably is, I mean, that would be like Miro's company. Yeah, okay. Are you ready for lightning round?
Starting point is 00:01:22 Is anyone ever ready for lightning round? We are. We've done it 500 times. Yeah. It's kind of easy from this side. How is the cat in Schrodinger's box feeling? Depends on when you measure it. How many standard computing processors does it take to run one qubit worth of circuitry? About 36.
Starting point is 00:01:53 That tripped her up because the next question is how many standard computing processors does it take to run one qubit? I think that arcade cabinet took like three. What is your favorite type of physics? Oh, I don't know that I have a favorite type. I did really poorly in physics. That's why I'm a software engineer. But we're going to talk about quantum computing. There's going to be lasers in here.
Starting point is 00:02:20 There's going to be weird tunneling things. There's probably going to be relativity nonsense. That's engineering. be weird tunneling things. There's probably going to be relativity nonsense. That's engineering. That's downstream of physics. I've had to learn a lot of physics to make to do my job, but physics is not why I'm here. And E&M,
Starting point is 00:02:37 I mean, that was probably, you know, core. Yeah, but if you're doing physics, quantum physics instead of quantum computing computing you're learning about how the universe isn't real and nothing matters versus trying to solve problems let me write that down the universe isn't real and nothing matters anyway uh well there's a show title getting to the old standards complete one project or start a dozen uh i would love to complete one project, but I always start a dozen.
Starting point is 00:03:07 What's your favorite fictional robot? I really like Marvin. Do you have a tip everyone should know? I know I thought about this ahead of time and now I completely forgot. Was it a computing tip? I don't remember. Does it take notes? Sorry.
Starting point is 00:03:30 I mean, that's perennially a tip for me. So you were on the MacroFab podcast with Parker and Steven in July. Yeah. Could you summarize that hour or hour and a half long podcast in like 20 solid seconds? There's a lot of classical computing that happens to make quantum computing happen. And ultimately, quantum computers are not quite ready
Starting point is 00:04:02 to do useful things today. But in the next five years years that will probably change. And so there's this idea, when we talked to Kitty Young, art by physicist Kitty, we talked about how to program for quantum computers, how to work within the simulator to make algorithms. But that's not what you work on. Correct. So my employer, IonQ, makes actual quantum computers based on trapped ion technology. So one of the common things that comes up early in discussions about quantum computers is that when you move into the world of physical quantum computer implementations, it's kind of like the 1940s for digital computing.
Starting point is 00:04:55 There's a wide array of possible technologies for implementing quantum computing, and we don't really know what the tradeoffs are between all of them. We know some of them. So there's a whole bunch of different companies that are all pursuing wildly different directions. They're all quantum computing. They're all able to run those same quantum algorithms. But the physics and the actual machine design and the capabilities of what type of algorithms or what size of algorithms can be run on these machines is wildly different. So trapped ion happens to be one approach. The ones that you often see in magazines and news articles where it looks like a chandelier, those are superconducting. And there's like five or six other kinds that are also being pursued
Starting point is 00:05:41 right now. And there's at least one kind of high-profile company, if I remember correctly, and the name is escaping me. Is it IBM? No. Quantum-ish Computing? They, like, they... Yeah. Well, I mean, there's a bunch of companies that are reasonably well-known.
Starting point is 00:05:57 So IBM is definitely there. They do superconducting and are quite prevalent. D-Wave is what I was thinking of. Right. D-Wave also does superconducting. A lot of what folks talk about there is they build a machine that specifically is geared towards running simulated annealing problems. They're using superconducting qubits, but the design of the system is geared towards that one particular problem. Okay, so they're not as general purpose as what other companies are trying to do. Correct.
Starting point is 00:06:33 So from what I understood from the Macrofab podcast, which Christopher hasn't heard, so he'll keep us honest, but for the rest of you, I'm just going to assume you've heard at least part of it because it was really interesting and it talked about how you actually start to build these things. But I didn't really understand how you do controls. And on that show, you talked about seeing fluorescing ions and capturing ions and all the things you can do to make them spin or not spin or cool them down or heat them up or make them do little jazz lines. But one of the things that struck me most was at some point you said five picoseconds. Uh-huh. And I remember from a Grace Hopper conference talking about a nanosecond wire and how long that was. And it's like, I'm going to go with 10 inches, but something around there.
Starting point is 00:07:48 And that's the distance light travels in one nanosecond. And the important part of that is that when you're designing circuitry that needs to handle that sort of thing, you really have to start thinking about distances. Do you have to worry about that? Or is five picoseconds, you know, a couple, well, 5,000 10-inch wires? It's, um... Is pico smaller than nano?
Starting point is 00:08:19 Yeah. Yeah. Oh, okay. So now, you know, my question is even more valid. Sorry. It's like an inch and suddenly you're... It's like a millimeter. All right. I don't care. It's small.
Starting point is 00:08:33 So there's two different timescales at play. And that's part of where things get a little confusing. So what we are controlling is laser pulses primarily. And we do need to control precisely when a laser pulse begins. Essentially, the ion that is captured in the ion trap has a phase precession, a rate of rotation that's already happening just naturally. And we need to time our laser pulses to interact with that ion associated with that phase precession. So we have to line up our laser pulses to be in phase or out of phase to cause certain effects to happen. So one of the challenges is getting that time alignment on a single channel. And in our case, we only run at 250 megahertz, which is four nanoseconds, which is still fast, but it's not nearly as fast as picoseconds. And so for that, there's a clock distribution system and
Starting point is 00:09:40 everything, and it's a very tightly controlled 250 megahertz. And one of the key pieces with the quantum computing is that you don't actually have to be aligned with the qubit at the start of the computation. The very first thing you do is an initialization process where you use a laser pulse to actually set the quantum state to a particular value and when you do that you're also initializing a phase alignment between the laser pulse and the qubit so you essentially establish an absolute reference point by that first laser pulse so the four nanosecond the accuracy of that four nanoseconds has to do with every clock tick afterward. And we know that we can accurately model at four nanoseconds and we can actually figure out how much phase adjustment we need to do
Starting point is 00:10:31 in our arbitrary waveform generator to match the phase precession of the qubit. Where we get into the picosecond range is that in cases where you're doing entanglement, where you have two qubits that you're actually interacting with simultaneously, the simultaneously is the important part. We need it to not only be on that four nanosecond tick, but we also need those two pulses to happen simultaneously, as close as possible. Otherwise, you incur an additional error of just the time difference between the two channels. And that's where we actually maintain that.
Starting point is 00:11:08 We use a clock distribution system that has PLOs and phase alignment. And so that's where we ensure that the clock, when it is reaching RFPGAs that implement these arbitrary waveform generators, they have delayed the clock such that they all are coincident. They all experience the clock edge within a few picoseconds of each other. And what length are the pulses of the lasers on the order of? Time-wise or wavelength? Time-wise. Oh, time-wise. I would have to go look.
Starting point is 00:11:47 They vary. They're fairly short, although a single gate operation, which is actually a couple of different pulses, can take up to 100 microseconds. Okay. I'm assuming these are like diode or diode-pumped lasers. No, actually. So we typically have the laser as a constantly-on laser source. Oh, okay.
Starting point is 00:12:12 And then the arbitrary waveform generators are actually driving a variety of devices. One is an electro-optical modulator. Another is an acousto-optic deflector. And another one is an acousto-optical modulator, another is an acousto-optic deflector, and another one's an acousto-optic modulator. And so the idea is that we can use GPIOs to basically turn on or off the laser with a shutter.
Starting point is 00:12:37 And we can also use the AOMs to the RF comes in as a modulated waveform and that causes a physical material to distort that when you shine the laser through it the modulation from the RF modulates the laser pulse itself.
Starting point is 00:12:55 Okay. That's much easier to understand. Those of us who didn't take optics or really any of this what I got from that was you have some different modulators, acoustic optical modulators, which makes it sound like you're changing frequency ranges.
Starting point is 00:13:16 And you're looking for... No, that's all I got. So he's got a laser that's always on, and they want to either deflect it or make it so it's not going through anything, or add a modulation on top of it. And so they've got materials that they can either pass an electric current through, which will change the property of the material so that the laser is stopped or allowed through, or another material that they can apply RF to,
Starting point is 00:13:46 and that causes physical changes in the crystal or whatever that alters the wave shape of the laser. The wave shape or the amplitude? The amplitude, yeah. Or possibly changes the wavelength. That's also possible, but I don't know what they're doing. But they could also change the polarity? Well, the polarization, certainly.
Starting point is 00:14:10 Polarization. Yes. Yes. Those are all things that can be controlled. In our case, it tends to be that we have an IQ waveform that we've generated with the arbitrary waveform generator. And we modulate that into a constant tone for the RF itself. And then when the AOM sees that, it mostly ends up being a modulation on amplitude. Cool.
Starting point is 00:14:38 It starts to look like a radio circuit. It is. An AOM can be thought of as an upconverter. Okay. Okay, so you have like 14 of these that you all have to keep synchronized? So on current systems, we have 32 channels of arbitrary waveform generator, and they are all synchronized and execute on these four nanosecond clock ticks, 250 megahertz,
Starting point is 00:15:08 and they're all synchronized on that clock tick being observed within a few picoseconds across the system. So this goes back to my initial flailing question, which was that means that you have to know how long your traces are. You have to know how long your traces are. You have to know how far everything is from one another in order to do this synchronization because an extra couple inches adds error.
Starting point is 00:15:36 Is that right? Okay. Yes. And in fact, for the clock distribution, there are thankfully off-the-shelf chips that implement that for you. So you can take two of these clock chips and put them at opposite ends of a cable, and they basically measure and communicate back and forth what the phase difference is. And so they will automatically delay one end so that the phase alignment at those chips is the same.
Starting point is 00:16:04 Wait, you bought an off-the-shelf solution? For that timing part, yes. Can I come work for your startup? Sorry. Be careful. There's lots of bad off-the-shelf solutions out there, too. I know. I just, I'm tired of seeing people trying to invent the same things over and over again.
Starting point is 00:16:24 It seems expensive, but your time is so expensive. Okay, sorry. But you talked about other control systems. So you must be feeding back what you get from your system so that you can create these waveforms. Well, there's a variety of control systems at play. There are various kinds of servos that are looking at different waveforms, mostly in the optical space,
Starting point is 00:16:58 where you're actually looking at the output from one of the lasers, either before or after modulation, to account for physical effects in the optical path that you can't control for otherwise. Then at the higher level, the control system around a quantum computer is you run a sequence of gates,
Starting point is 00:17:21 and by virtue of quantum computing, like quantum effects, you can't observe what's happening as the intermediate states. So you're essentially doing these laser pulses to change the physical structure inside of the ion. And at the end, when you go to measure it, you need to actually, that's the only time you actually see the result, but you only see a one or a zero at the end. And so the higher level control system is things like, I need to run this sequence of gates. I need to then perform this measurement process of causing the ions to fluoresce and counting their ions or counting the photons emitted by each ion. And I have to run calibration procedures that determine where the threshold is between what we call a bright or a dark ion.
Starting point is 00:18:09 Because the number of photons emitted is not a physical constraint that stays constant. It's got a lot of variables with temperature, with pressure, with all sorts of different attributes of what's going on in the system. And so we have to run those calibration procedures. And so there's higher level control loops that are taking that information and applying corrections to feed into, to make the determinations about was that a bright or a dark, as well as, you know, minor adjustments for where we aim the laser pulse to actually hit the ion correctly. So a lot of these are control loops that run very slowly, but they have real-time effects
Starting point is 00:18:51 in terms of being able to apply the corrections as we perform the instructions that are actually running. But a lot of the control system aspect that I talk about is actually just implementing a classical processor that allows you to perform these sequences. It's not necessarily a feedback system, but it's
Starting point is 00:19:15 still a control system. And you say classical computer to differentiate it from a quantum computer. That tends to be the terminology in the field. I don't particularly like it. I mean, they're digital computers. That's what they are. Yeah, they stole it from regular physics. Everything in physics that's not quantum is classical physics.
Starting point is 00:19:34 Right. Yep. Inherited. So, okay, so you've said there's a lot of FPGA that's doing the tight timing control stuff. And so what surrounds that? So there's just a standard
Starting point is 00:19:51 microcontroller or embedded Linux? There would be some Raspberry Pis involved. So it's actually multiple FPGAs. So each eight arbitrary waveform generators is one FPGA. Okay.
Starting point is 00:20:11 And so we have to have multiple FPGAs to hit all the arbitrary waveform channels. Then we have another FPGA that deals with generating GPIOs because we also need those to be time correlated. And so a lot of the challenge is actually building another FPGA that is just coordinating all the other FPGAs and designing all the instruction sets. These are essentially each arbitrary waveform generator channel and the GPIO dispatcher. They are all their own independent digital computers
Starting point is 00:20:44 that are running their own independent digital computers that are running their own independent programs where the instruction includes a timestamp of when to execute the instruction. And so then there's a top-level FPGA that deals with taking a program in and actually staging into all the different processors the different instructions for each channel, and coordinating the start of the overall program.
Starting point is 00:21:09 This is like a microcosm of a whole network, right? You need to have NTP, and you need to have the corrections. Have that, have 1588, have reference inputs. Putting timestamps on the instructions is a leap that I wouldn't have thought of. That's cool. Yeah. I was imagining something much more fixed function, like, okay, we have these arbitrary
Starting point is 00:21:33 waveform generators, and we tell them which waveform and we tell them when to start and stop, but this sounds like it's much more general purpose. Well, it is kind of that. These are specialized digital computers and that the instruction for an arbitrary waveform generator is, at this particular time, start playing the samples at this memory location, with this amplitude, mixed to this carrier frequency, with this phase adjustment, and play it for this long. That's still a lot. That's all one instruction.
Starting point is 00:22:03 Yeah. I mean, that seems so simple. You just, you know, it's like you're a violinist's still a lot. That's all one instruction. I mean, that seems so simple. It's like you're a violinist. Play a tone. How hard could it possibly be? And then you also have the conductor who's telling the entire orchestra to do that simultaneously. You're pretty new to quantum computing. Yes. I mean, you've done, I think we talked with you when you were working more on security and hyperscaling, making computers that are better able to take care of themselves. That's how I think of it.
Starting point is 00:22:41 How did you, I mean, did you just wake up one morning and say, I don't know what I want to do today. I think the only solution is quantum. There's so many hear not hear jokes. Nobody ever does that except in 1915. I was looking around at some options and I was still working heavily in the security area. And I applied actually for a in the security area and I applied actually for a director of security position with this company. And the response I got was, we've actually decided we're not going to be hiring for that role this year.
Starting point is 00:23:17 But your background includes a bunch of control systems and embedded systems work and we would like to talk to you about that. So I was very clear up front that I knew absolutely nothing about quantum computing. And they assured me that that was not a problem. And it turns out that that's very true. Just like in a lot of other domains, when you, you may come out of a university with, you know, I know how to write software, and then you realize that it's very specialized when you're talking about building stuff in the automotive world, or when you're building stuff in medical, or when you're writing programs for a Mac versus writing it for Windows. It's the same thing. Like, I need to learn about all of the special aspects of quantum computing. But ultimately, I'm running Yocto on a bunch of systems.
Starting point is 00:24:06 I've got FPGAs that I'm interacting with. I'm writing device drivers. We're writing most of our software in Rust. It's a pretty standard software setup for an embedded system. But you're not shipping thousands of units yet. No, in fact, we have shipped, what, one. The way this has worked to date is we build the machines for our own use within the company. We offer that
Starting point is 00:24:35 as a cloud service for being able to run quantum circuits. So we actually do own and operate four quantum computers that we've built, but as far as produced for other companies or other organizations, it's a very limited number. It's an area that the company is working into. of classical computers where the IBMs of the world were more about handling your data and your algorithm needs,
Starting point is 00:25:11 not necessarily in producing computers right away. Right. And largely it's because they're expensive, they're hard to build, and you need the specialist to be able to help you operate the machine and probably help you adapt to whatever algorithm you're trying to do to actually run on the machine.
Starting point is 00:25:33 And that's two specialists. One is the algorithms person, and one is the engineering caretaker of the device. Mm-hmm. Listening to the Macrofab podcast, yours doesn't have to be super cold. It just has to be in vacuum. Is that right? So trapped ion, in theory, can operate at room temperature at standard atmosphere pressure. The challenge is the reason that it is under cryo and under vacuum
Starting point is 00:26:06 are purely about reducing noise and air resources. So if you imagine that you have a line of ions being held, where each ion is held in an electromagnetic field, if an oxygen molecule happens to just whiz past and hit it, it's going to knock your ion right out of that field. The energy from that oxygen molecule is going to be so much stronger. So putting it in vacuum reduces the chances of that. Cooling it down reduces the chances of that. But it also means that we don't have to be under as deep of cryogenic temperatures as some of the other technologies. So like superconducting, they have to get down to actually being a superconductor,
Starting point is 00:26:53 and then they have to go colder to actually reduce their noise. So those systems often have to reach millikelvins, where our system can operate in the 3 to 5 Kelvin range. I don't even have a concept. It's very cold. Yeah. Yeah, and when we come back to control systems, the very slow control systems are things like
Starting point is 00:27:14 the system that actually runs the cryostat and is regulating the liquid helium cooling system. And is that just going to be a standard control system, like a PID loop that's running fast enough that it can react well? Okay. Yep.
Starting point is 00:27:32 And then you also need to have some form of trapping the electrons, keeping them in their little row for their can-can dance. Yeah. So that is a separate piece of equipment. But yes, largely the trap itself
Starting point is 00:27:52 is, think of it as a channel down the length of the trap device. And you're causing these ions to come into that trap one at a time. And we could talk about how if you're causing these ions to come into that trap one at a time. And we could talk about how if you're interested. And along the length of this channel are little electrodes. And so those electrodes get hooked up to another chassis that has a bunch of DACs and RF generators.
Starting point is 00:28:20 And we use static voltages as well as, or I guess not static, but DC voltages as well as RF to generate an always changing RF field, or electromagnetic field, that actually creates a little pocket that the ion
Starting point is 00:28:40 is trapped in. This is one of the things where you can't actually get an ion to be perfectly held in position, but you can build a rotating electromagnetic field that creates a little section where it's basically always
Starting point is 00:28:56 falling back towards the center. Screaming in its little cage. What are these ions of? So usually in our systems, it's either ytterbium or barium. Those are heavy. They are very heavy. There's a lot of different ions that can be used for these types of operations.
Starting point is 00:29:19 And part of what you're looking for is how stable is the ion over time, but also how wide the energy band gap is between two energy states. Because ultimately, in our trapped ion systems, we're actually using the energy level of the ion to encode the quantum information or one dimension of the quantum information. So that's the whole thing with the lasers and everything is actually doing Raman transitions to go between these two energy states. And so you want them to be very, very rigid energy states, but you also want them to have a wide enough gap that you can do the transitions between them relatively straightforward. Presumably wide enough that they emit a photon that is easily detectable? Correct. Okay.
Starting point is 00:30:04 Yes. In origami, we would call it bistable. Yeah. Yeah, it's very similar. Yep. Okay. So, are you sure that... You can't see the ions.
Starting point is 00:30:21 Even with, like, a microscope, you can't. Well, you can. So this is one of the cool things with trapped ion is that because we use the fluorescence to actually measure them, that fluorescence can be in the visible spectrum or it can be in an infrared spectrum. So you can basically choosing whichever ion species you want changes which wavelength that it fluoresces at. But you can actually just put a camera that is sensitive to that range
Starting point is 00:30:52 through an optics path, and you can actually look at individual ions on the screen. You can't do it while it's computing, but you can do it in steady state when it's just ion. You can look at the photons that they emit. Right, you can't look at the ions themselves. Yeah, they don't like to be seen.
Starting point is 00:31:09 Well, it's a pretty close approach. Yeah, what's the difference? They're very shy. What's the difference? I mean, that's all we're seeing is photons bouncing off of something and re-emitting things. I'm just not sure any of this is real. It's real. I mean, we're talking about...
Starting point is 00:31:24 Things that are very small. Smaller than a golf ball, certainly. Exactly. Yeah, yeah. Maybe marble-sized. It's very hard to manage them. So, you have all these systems, and it's a very... They're kind of a diverse set of systems, right?
Starting point is 00:31:43 You've got a cryogenic system. You've got something that's dealing with the ions, and none of this has to do with quantum computing except to set up the computer. That's right. So what does it look like to actually talk to this computer? What is the user interface of this computer? I know this one. It's Python. Okay. So I just import PyQuantum and I'm done?
Starting point is 00:32:03 Pretty much. Yeah, I mean, if you're trying to run programs, there are a couple of different frameworks that are, Qiskit is one of them. Another one is Pennylane. And yeah, they're largely written in Python. And you describe what your quantum circuit is using whatever gate set is interesting to you. And that sort of is a reference back to the, we don't quite know what the best way to build these machines are.
Starting point is 00:32:28 Just like in Boolean logic, you can build anything out of and and not. In quantum, there's a variety of different gates that you can use as a primitive gate set to build any other gates, but there's different sets. And we don't actually know which one is ideal. And the native gate set of a machine is different for these different technologies.
Starting point is 00:32:50 Before you go on, is that like there used to be computers that were trinary and there used to be computers that were based on, I mean, there's NAND and NOR as two separate ways of implementing Flash. Is that what you mean when you say there's different gate sets? They're based on different gates? Yeah. I mean, they talk about it as quantum gates. And you can think of it similar to an AND or a NOT or an AND or a NOR.
Starting point is 00:33:23 And there are similar gates. There is a c-not gate, which is kind of like an XOR with some special properties. But these gates, if you were to draw it as schematic, it's much the same way. That's why we talk about quantum circuits, is you actually do draw it out kind of like a schematic with boxes for the different gates. But there are different universal gate sets. And so each machine has a different set of is an abstract universal set that is mostly used when actually creating quantum circuits. And part of the challenge in some of the high-level software is actually doing that translation, which is very similar to converting from C to your assembler for your individual machine.
Starting point is 00:34:26 It's a very similar process. You have to look at the gates that you have, and you have to translate them to the gates that the machine actually implements. Okay, but presumably between this Python script, whatever, yeah, script that describes the quantum circuit, presumably that gets boiled down to a lot of control system stuff that does, or is the setup separate?
Starting point is 00:34:50 Like maybe in a 1916s computer, somebody would come in and flip a bunch of switches in the morning and then somebody would come in and put the punch cards in. Is the Python the punch cards and has nothing to do with how the computer is set up? Or does it actually, or is there a translation layer that says,
Starting point is 00:35:03 okay, they want to do this circuit and now I need to do this with the cryo, and I need to trap these ions? Well, I mean, there's going to be a step in between there. The sort of LLVM step. Well, but does it at all? It's a little bit of A and a little bit of B. So there are a bunch of systems that are just there to keep the machine operating,
Starting point is 00:35:21 just like you have the fan control circuit in a classical computer. That's akin to the cryo system. And there's a bunch of those systems that are just running constantly to keep the system in its operating environment. And those are typically implemented on software processes on an x86 machine running Linux. They're fairly slow, and they mostly talk to specialized hardware to do those operations.
Starting point is 00:35:51 The programs themselves, you start from this Python framework, and you write your circuit in that framework. And yeah, there is a translation step. So each provider that makes quantum computers offers a plugin to these frameworks that converts it to the native gate set of their systems. That's step one. Then step two is submitting it to their cloud service, because these are all cloud services so far. And inside the cloud service, typically it goes through an optimizing compiler, which does a bunch of things like removing redundant gates, finding alternate circuit implementations that are equivalent but use fewer gates or fewer qubits. The optimizer.
Starting point is 00:36:38 Right. So you run an optimizing phase. And then it comes down to actually converting this optimized circuit for a specific machine. So coming back to the discussion about calibrations, each machine, we're operating with individual ions that are a naturally occurring thing, right? They're an elemental source. And they don't have perfect behavior. They're all slightly different. And in fact, the machine itself will change as temperature, pressure, all sorts of things, right? There's all sorts of different components in the system where mechanical alignments will shift, components wear out, etc. So in between running actual circuits, we will run other programs that
Starting point is 00:37:26 basically perform calibration measurements of the system. And we'll do that multiple times a day. That information gets fed back into this control. You can think of it as a compiler. It's not quite a compiler. It's kind of more like an assembler, but it's also not really an assembler. But we're taking that optimized quantum circuit and you're applying all this knowledge about the physical state of the machine. So you know, for example, the fidelity of each individual ion, how likely it is to actually produce the correct output at the end of a circuit. And so you can choose that an ion that is going or a qubit that is going to have a lot of gates on it, or the most gates on it in a circuit, you might allocate that to an ion that has the highest fidelity. You might also rearrange the qubits to allow for some faster execution depending upon what's happening.
Starting point is 00:38:21 And all that happens, and then you convert it into the raw instruction stream that actually gets fed down to the control systems. So we need to basically write a program per arbitrary waveform generator, a program for each IO output. And all those programs, you know, we're translating from that circuit into the individual laser pulses on specific ions at specific times. And then how those laser pulses get enacted because it's usually multiple things. You have to open the shutter and turn on the modulation for the laser
Starting point is 00:38:54 at exactly the right time kind of thing. The flow chart for this must be enormous. So, okay. So I have kind of a high level dumb person question um so there's all this setup time to set up the problem and then presumably the problem is whatever thing you're solving happens effectively instantaneously. But is it like a fusion situation where, yes, we can run fusion, we got a watt out,
Starting point is 00:39:29 and that's very exciting, but we can't really do anything? Or is it, or is the time, see what I'm asking is kind of, is the time constant of setup so overwhelming the benefit of running the problem on a quantum computer that it washes it out?
Starting point is 00:39:44 Yes, Rick, are quantum computers useful? No, that's not what I'm asking. I'm asking, no, because they're definitely useful for solving a set of problems that we're working on. But is the trade-off there that the computers we have do it fast enough that there's a benefit? Does that make sense? It does make sense. And that's actually what a lot of active discussion in the industry is.
Starting point is 00:40:14 So often you've probably heard people talking about quantum supremacy, which I hate that term. But it's the idea that at some point, running quantum algorithms is so much faster than anything classical computation can do. But in the nearer term, that type of benchmark is so far in the future. In the nearer term, we have these quantum computers that are able to run programs. I guess there's a little bit there of the setup time is measurable. It is a significant portion of the execution time. But the actual execution time itself is also important. Because quantum circuits don't execute instantaneously.
Starting point is 00:40:56 Right, okay. Each gate that you have in the circuit is a step that has to be executed. And so it takes a certain amount of time to actually cause that effect to happen. So the laser pulse for a single cubic gate might take 100 microseconds, but for a two-cubic gate, it can take 500 microseconds. And you might have a thousand gates of different mixes. And so just like you have instruction execution times, you have gate execution times. But as far as
Starting point is 00:41:29 the size of the computers that we have and the types of problems that we can run on them, there is this give and take with, can you simulate a quantum computer on a digital computer faster than you can actually run it on a quantum computer?
Starting point is 00:41:47 And so far, the answer has generally been yes. You can run simulations faster and more efficiently than actually running the quantum computer. Now, the quantum algorithms themselves tend to have a linear relationship. To make the problem larger, the actual scaling up of the quantum problem is you need a linear number of qubits or you need a linear number of gates. It's not actually linear, but it's closer to linear.
Starting point is 00:42:13 Where when you look at the quantum simulation problem, it requires exponentially more classical computation hardware to actually perform a larger quantum computation. When you increase by one qubit, it requires an exponential increase in the calculation power. So there's going to be this crossover probably in the next five years where for some types of problems that fit into the number of qubits
Starting point is 00:42:42 and the number of gates that you can run on quantum computers will be more cost effective than building out a quantum or a classical system to run a simulation of the same size so where where is the focus on optimization of these computers then? Is it more on the surrounding infrastructure to have the setup happen faster, or is it more on the actual qubit management, getting the gates faster, that kind of thing? It's both, because they're related, unfortunately.
Starting point is 00:43:22 At least in a trapped ion system, the number of ions that you can put in the trap is actually quite large. You can make a trap hold a lot of ions. The challenging part is that the way entanglement is done through an ion chain is through the axial motion. I'm going to take a little detour here to answer your question.
Starting point is 00:43:45 So when you run a 1Q gate, you're actually doing a laser pulse on one particular ion. And you're either inserting or removing energy from that ion to adjust its energy level. But when you do 2Q gates, what you actually want to do is cause an entanglement between the two gates. And if you're inserting or removing energy from a laser pulse, that's one aspect of it. But you also need to capture an information transfer from one ion to the other.
Starting point is 00:44:17 Well, if you have this chain of ions, ions naturally repel each other. So when you have a chain of them, they're all lined up with space between them, kind of like a Newton's cradle. And they also have a relationship where if you cause, well, they all tend to vibrate a little bit in that space. They're all kind of pushing on each other and moving around. But they're constrained in two axes and only allowed to move in one.
Starting point is 00:44:41 So they kind of move along the length of the chain. They're wobbling back and forth just a little bit, pushing on each other. So the way you get that information transfer from one ion to the other is you actually hit one ion with a laser to do the
Starting point is 00:44:58 laser pulse to insert or remove energy. But that actually causes, if you time it just right, you actually get the ion to push one direction or the other along the axis and basically cause that motion, just like when you strike the first ball in a Newton's cradle. And because of the repelling force between the individual ions, they all move with that. It ricochets, or not ricochets, but it ripples down the length of the ion chain. So if you time your second pulse at another ion further down the chain just right, you insert energy at the same time that that axial motion passes through that second ion. So the reason that this is all important is that as you make your chain longer and longer and longer, you incur more error as you try to figure out that timing relationship of actually doing 2Q gates. So your 2Q gates get
Starting point is 00:45:52 less fidelity as your chains get longer. So in terms of scaling it up, there's questions of, well, how long can you make the chain before your fidelity falls off? We don't know. That's active research. And then there becomes a question of how do you knowing that that is a limitation how do you scale up to having multiple zones that you can be working is that you know having two different sections of the same trap where you are doing quantum operations that don't have that coupling of um you can't do two Q gates between them because they don't have a relationship. They don't have that axial motion capability. Another area of research is having two traps where you actually use fiber optic cable to couple the photons between and use that as the
Starting point is 00:46:38 information transfer. So there are a lot of things in the, how do you make the physics work? But they couple back into, there's a whole bunch of setup questions that come into play when you get into that. If you're trying to do the photonic interconnect, how you prepare the qubits becomes very different. My eyes are wide and my brain is zipping around like its own little ion trapped in my head. Okay, I'm going to ask questions I have written because I need time to process. This one's actually from Owen. How did the DEF CON audience react to the way the demo model of the real quantum computer in real 24 karat gold was presented? This is the callback to the bling.
Starting point is 00:47:33 Yeah, so we brought an ion trap, which I would love to show the picture, but this is a podcast. It is a fairly small device. It's a microfabricated piece of metal made out of pretty exotic materials. And part of that does actually have a gold plating on it. And that's in a display case. Because gold here is the cheap part? I wouldn't say it's the cheap part, but I wouldn't say it's the expensive part either. But you have problems with oxidization.
Starting point is 00:48:09 You have problems with just like all sorts of things. You need materials that hold up under vacuum, and you also need them to maintain pristine through all the different environmental changes you're going through. So that's where the folks that designed the traps, it often involves a lot of exotic materials and processes. But we brought that in this display case, and it's just sort of a nondescript little display case. And if you don't know what it is, it just kind of looks like a funky-looking object. It doesn't look like a computer part. So we had a whiteboard that just said, you know, real quantum processor in 24 karat gold and an Admiral Ackbar drawing that said, it's a trap. So actually, that was very well received by the DEF CON crowd. They, you know, it's kind of playing at the, look, it's a
Starting point is 00:49:01 quantum computer. It's like the bleeding edge of technology, bleeding edge of science, and yet we can talk about it and have fun with it. We don't have to be too serious about it. And it drew in a lot of people. They would see this whiteboard, and they're like, well, what does it say? And then they're like, real quantum processor. Oh, wow, that's really cool. And then we'd, you know,
Starting point is 00:49:19 they would want to get a really close look of it and everything else. And they also brought an entire chassis of the control electronics that we took apart and let people poke at and ask questions about too back to how you got into this um you were working in security and one of the things that quantum computers are known for is their ability to crack keys, passwords. Is that still something you work on? Or have you kind of shifted over to, wow, there's a whole bunch of new delicious information in the physics here? So Shor's algorithm is a well-known algorithm for factoring numbers. And it's considered to be considerably faster than the equivalent for
Starting point is 00:50:12 classical machines. The problem is that nobody can run it. There aren't any classical machines that can simulate a quantum computer big enough for it to run it quickly for the size of numbers used in things like RSA. And certainly quantum computers are not that big. So one of the messages at DEF CON was every time somebody came up and then they saw quantum computer, they're like, so can this break RSA keys? And the answer was always no.
Starting point is 00:50:40 Like that's 20 plus years away. But there's a lot of other more interesting things that can happen in the near term. But then with my background on the security side and coming especially from firmware security, it's a lot of steering the conversation back to a quantum computer is one small piece of quantum computation technology. You know, like everything happens inside of this trap at a scale that you can't see. And everything around it is classical computers. You still have all of the same IT challenges, all the same firmware security challenges, all the same software security challenges throughout this entire system that makes the quantum computer. So even though I'm spending all of my time primarily focused on instruction set design
Starting point is 00:51:27 and how you run programs on this I do get involved with the discussions around and how do we actually secure these machines how do we design them to be enterprise ready put this in somebody else's data center and they can have confidence that it's running the correct software that it hasn't been tampered with, etc. And then we also had a panel discussion talking about, well, what are the
Starting point is 00:51:50 new and interesting parts about quantum computing as far as security goes? And really, we came back with, nobody really even knows what to ask. It seems like there's probably side channels that we're not aware of that come from how the machines work. In pure quantum theory, when you measure a qubit, the quantum information has been destroyed. But there can be remnants in the control system of what sequence of operations were run. We won't know the exact quantum information, but we can tell you about what algorithm was run. So there's things like that that are slowly being figured out, and this is a very new area. Even though quantum computing
Starting point is 00:52:31 itself is decades old, it's still in that very early age of understanding the capabilities and also the practical realities of the machines that implement it. It's cool that people are thinking about that level of security implications, though, at this stage, because people weren't thinking about side-channel attacks in 1965 or whatever,
Starting point is 00:52:54 right? So with standard microprocessors. So I think that's pretty interesting that effort is being made to at least consider, okay, what's new about this and what could be done? What sort of attacks are there? Moving into this job and being able to talk about the latencies and the delay channels, Ewan had another good question. Was there much cross-disciplinary terminology that overlapped causing confusion? I'd say there's more terminology differences where the same concept has different names.
Starting point is 00:53:36 Yeah. And figuring out where those are has been a problem. There's also been a lot of difficulty bridging the gap in knowledge that is only germane cross-disciplinary when you actually get to the point of building quantum computers like this. So I had a thing post recently on my Mastodon talking about teaching physicists about branch delay slots. And this is a real thing, and it comes in because we're talking about how do you do conditional execution in a quantum circuit. So there is a way where I can measure only a subset of the qubits, and then I want to be able to change the behavior of the rest of the circuit. But I have to do this in a real-time system. And the idea that in a large complex system with all these processors running in parallel, that I observe the result at one physical place in the system,
Starting point is 00:54:38 and that the time it takes to actually communicate the branch direction that I want to all of the processors, all of the components in the system, takes a significant amount of time, is just something that the physicists have never even had to think about. Yet this is also something that we as software folks, even embedded software folks, don't usually think about it because it's something that happened so long ago. I mean, it's still an issue in processor design today, but it's become a very niche part of processor design to think about how long your branch information takes to propagate. And we have known solutions for it. This is where speculation comes in. The whole reason,
Starting point is 00:55:18 one of the big reasons for speculation is to fill that time with useful work. But in a quantum system, I can't speculatively do laser pulses. I can't undo them. So we're having to go back and revisit some of these things that are well-known in classical computing and completely unknown from the physics side and bring it together and say,
Starting point is 00:55:39 there's well-known patterns here, but we can also point to why they don't work now. I have so many, again, in my brain. It's like that time that I worked with the biochemist about hydrophobicity of chemicals and their uptake in the human body. And I was optimizing the code. And I said, well, why don't we do this? And he said, wow, that's a really interesting chemical insight.
Starting point is 00:56:00 And I'm like, no, it's just that the code would be more efficient if we did that, because they're effectively the same path. Yep. And we have those exact kind of conversations all the time. Switching topics entirely, you do some mentoring. And if I were to sign up on your calendar for a time slot for mentoring, what would happen? You'd be asked what you want to chat about as part of the sign-up, and I would get that. And really, I would just be there at that time. We get a 30-minute time slot on my calendar. I carve out a couple hours every week.
Starting point is 00:56:40 And usually I just ask, like, what do you have questions about? And offer my insights and guidance from my years of experience in the industry. I came into computing and into the companies I worked at through what I guess would be a reasonably straightforward process, but also I come from a very humble background, so my experience of it, I didn't have a lot of mentors along the way. I had to figure a lot of things out, and I ended up working at some very big companies, working on very frontline technology. So just offering a lot of insight on how to work with different managers, how to figure out where to go next in your career, you know, whatever happens to come up. So I've been consulting for a very, very long time. And I used to love consulting. This is the mentoring call now, by the way. It starts now. Yeah, yeah. I mean, we've already done the hour podcast. Now it's just the mentoring call. Wait, but I didn't get a calendar link sorry
Starting point is 00:57:46 uh and so i'm i know a person who's willing to offer me a full-time job and it sounds kind of interesting but i'm not sure i can go back to doing full-time i'm not even sure what would be expected of me anymore wait did you tell me about this no i didn't this is a shock to christopher why do you keep doing this to me? Because I was thinking about it, and now that we have Rick here, I figured now would be a good time to
Starting point is 00:58:14 do the mentoring. I'm your actual business partner who you'd be quitting the business to go work somewhere else. But okay. I feel like I'm being pulled into something. You don't have to answer. Sorry, we are over time. No, it's an interesting question.
Starting point is 00:58:34 Go ahead. I have had this very conversation with a variety of folks that have moved into consulting and then had offers to come back. And it often does come down to a question of what are they offering and kind of where are you at and what you want to come back. And it often does come down to a question of, what are they offering? And kind of where are you at and what you want to look for? Part of consulting is really the freedom to choose the types of problems you want to work on and also who you want to work with. And you give up some of that
Starting point is 00:58:59 when you go back to working full-time. You're usually lined up with a specific project that you're going to be on even well past when it's shipped. And you may not agree with what the next direction is or the next project that you want to work on and you don't get much choice. On the other hand, you get security and stability in your pay and your benefits and all those things. You know, I've personally found for myself that I can't do consulting because I can't do the interfacing with customers. See, that's why I can't do full time either because I can't interface with,
Starting point is 00:59:35 you know, people who tell me what to do. So it's a lose, lose for me. This is my mentoring session. Oh, sorry. Okay, one more question back to what the show is supposed to be about. Do you think the singularity will happen before or after the quantum supremacy event?
Starting point is 01:00:03 Oh, I'll just say they're both more than 20 years away. Oh, good. That's fine. Do you have any thoughts you'd like to leave us with, Rick? Quantum computers are very impressive, but also really just a bunch of classical computers put together. Three classical computers in a trench coat.
Starting point is 01:00:20 With a tiny bit of physics. Our guest has been Rick Alther, also known as MXShift, which is like mischief, which is like M-X-S-H-I-F-T. Rick is also a senior staff software engineer at IonQ. Thanks, Rick. You're quite welcome. Thank you for having me. Thank you to Christopher for producing and co-hosting. Thank you to our Patreon listener Slack group for their questions.
Starting point is 01:00:50 And thank you for listening. You can always contact us at show at embedded.fm or at the contact link on the Embedded FM website, where there will be show notes that include a picture of Rick's golden circuit. And now a quote to leave you with. It's just been a Douglas Adam Hitchhiker's Guide to the Galaxy sort of day for me, so let's go with him describing what he's seen. The ships hung in the sky in much the same way that bricks don't.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.