Meet the meQuanics — Simon Devitt in Conversation with Rigetti’s Will Zeng
24 April 2018
Simon Devitt of Turing Inc. recently interviewed Will Zeng, Rigetti’s head of quantum cloud services, for a “Meet the meQuanics” podcast. We’ve excerpted a few parts of the wide-ranging conversation below, or you can listen to the full podcast. Responses are lightly edited for clarity.
Motivation for studying quantum computing:
Will: I think the first time I heard about quantum computing was the Scientific American article that Scott Aaronson wrote about the limits of computers. The initial thing that got me interested in quantum was that it has two characteristics that are very rare in combination. The first is that you can work on something that’s very foundational. The foundational aspect of quantum information is that we’re realigning the relationship between physics and information theory, really. That was very, very fascinating. On the other side, while working on that deep foundational problem, you’re also trying to build technology to help people. You have the potential that those are actually the same kind of work. There’s really not a lot of fields like this.
Rigetti’s hybrid approach:
Will: For us, quantum computers are about the whole system, not only the chip. The whole quantum computer system is classical compute plus quantum compute. When you look at it in the lab, you’ve got a dilution refrigerator with a quantum chip at the bottom, but you’ve also got a control rack with the FPGAs and CPUs, and you can hook it up to other things.
From the ground up, we’ve built our systems to target a hybrid quantum/classical setup which includes not just the chip, but also the racks. That led to one of the things that I’ve had the most fun helping putting together while here, which is the Quil instruction set architecture.
A few words about Quil:
Will: It’s called Quil for “quantum instruction language.” And it’s worth talking about, because Quil is not just another QASM (quantum assembly language). It’s not just another quantum circuit description language.
It’s actually a very opinionated model about quantum computing, which means that it’s not just about the quantum memory. It has a piece of quantum memory and a piece of classical memory. The instructions address both and how they interact with each other.
There are things that you can do in Quil that you can’t represent in quantum circuits. For example, you can parameterize the rotation angle of an RX gate by giving some set of classical bits in the shared classical memory.
Why would you want to do that? Well, what if those bits are themselves set by some measurement that I took somewhere else in the circuit, and I fed forward — I did some classical computation on that, and then I fed forward an answer, and then I determined the angle of a rotation gate that happens later?
That’s the kind of thing that people talk about as classical control. People have talked about classical control with quantum computing for a long time, but we tended not to formalize that as well as we would formalize the quantum circuits.
The Forest development environment:
Will: We hook our hardware up to the cloud where we have a quantum programming development environment called Forest. Forest is the whole development environment, which includes Quil, the input to the hardware.
Forest includes a simulator, a classical simulation of a quantum computer. That’s called the Quantum Virtual Machine. It also takes Quil. It lets you define noise models. It’s very powerful.
And then there’s an API, so you interact with Forest over a cloud API you can authenticate through. There are some client side libraries in different languages. The core one is a Python library called pyQuil, which is Apache v2: it’s on GitHub, open source. It is basically Python code that lets you write Quil programs and send them through the API to run either on the simulator or on our QPUs.
This past December, we launched access to Forest with our 19-qubit processor called Acorn. People have been using the Forest development environment to run programs and execute on the simulator and QPU.
On the client side, we have not only the pyQuil library for development, but also other libraries that have example algorithms. And, we hook up to OpenFermion, which is a very cool open source package that several academic groups, as well as Rigetti and Google, have contributed to, which is doing electronic structure for quantum chemistry. There’s a Forest backend to that, so you can hook up OpenFermion to Forest.
To summarize, Forest is the whole ecosystem of software that lets you develop quantum programs and test them, and then execute them on hardware. There are two overarching principles to Forest. The first is that it’s easy. That’s why it’s in Python, and you can pip install it. The second is that it’s hybrid, where there’s classical compute and quantum compute, and you target both of them.
Originally published at rigetticomputing.github.io on April 24, 2018.