Quantum Programming, Error Mitigation, and More

Publications Science

It’s been a while since I’ve updated the blog, and hopefully I’ll be a bit more active in 2018, but I wanted to quickly highlight a few cool pieces of work I was fortunate enough to be involved in last year. In particular, I wanted to very briefly talk about our recent open source package that is designed to help people use quantum computers for quantum chemistry (OpenFermion), an experimental demonstration of the quantum error mitigation technique I first wrote about back in 2016, and some recent results on perhaps the simplest and lowest depth simulation of time dynamics I know of on a quantum computer.


To get started I want to give my perspective on the state of affairs in programming quantum computers.  Many people ask how one programs a quantum computer and about the existence of quantum programming languages like a quantum version of C, Python, or Haskell.  While work is being done in this area, the majority of algorithm development is still done in terms of quantum gates, the quantum analog of logical operations like AND, NOT, or XOR.  That is, we program in a language that is often more primitive than assembly language one would use on a classical computer.  In my opinion, this is because we don’t yet have a pool of algorithms large enough from which to draw the abstractions that would form a programming language.  I think a more plausible model for the short term is identifying the key application where quantum computers are expected to have the largest impact, and helping users from that application use a quantum computer to solve their problems.  These will likely take the form of domain specific languages (DSLs), APIs, or even just tools that provide the same interface one is used to, but designed to run calculations with a quantum back end.

We spent a long time thinking about this problem in the specific field of quantum chemistry, which studies how to simulate molecules on a computer before you make them in a lab or at a level of detail/resolution your instruments have difficulty accessing.  This field has been identified as one of the front runners for early, high impact applications on a quantum computer, but it has a few challenges.  For example, the amount of domain knowledge required to run a quantum chemistry calculation can be a bit daunting, requiring one to understand basic molecular structure as well as more esoteric topics like particular Gaussian basis set discretizations.  To add to this difficulty, even though its quantum, the language for similar concepts in quantum computing can be entirely different, meaning a quantum chemist may have a hard time understanding how quantum algorithms operate.

These challenges make some of our goals especially challenging.  Namely, we would like classical users of electronic structure to be able to use quantum computers for their application and developers of classical electronic structure to be able to contribute to new quantum algorithms.  Moreover, we would like experts in quantum algorithms to be able to overcome the substantial domain knowledge barriers to make contributions to algorithms as well.  In an attempt to solve these problems, we developed an open source package designed to ease this transition from all angles.  We call this project OpenFermion, which is maintained on github at http://www.openfermion.org, and we wrote about our development philosophy and design in the release paper.

Since we released the initial versions of the project, we’ve been excited to have contributions, both big and small, from a large number of institutions and collaborators.  I think all of the developers are excited for the ways this can involve more people in the development of algorithms for quantum chemistry on a quantum computer, and help make this dream a reality!  I’m excited by the prospect that similar libraries may be released for other application areas as well!

Error Mitigation

It’s been some time since I last wrote about the quantum error mitigation (QEM) technique we introduced for quantum simulation problems that we termed the quantum subspace expansion (QSE).  At present, quantum computers remain short of the requirements for full fault tolerance, and I believe one of the best hopes for performing useful computations on a quantum device before we reach full fault tolerance is error mitigation techniques, which try to remove the errors using additional measurements or other techniques.  I’m particular excited about the quantum subspace expansion due to its ability to improve results without knowledge of the error model and approximate excited states as well.  When we wrote the initial theory paper introducing the idea, we had some friction with the reviewers over the fact that it hadn’t yet been experimentally demonstrated.  Well, I’m excited to say that it now is!

In a recent collaboration with the Siddiqi group at Berkeley, the initial predictions of error mitigation and excited state determination were experimentally confirmed on a superconducting qubit system in our paper titled Robust determination of molecular spectra on a quantum processor. I’m personally excited for the future of this technique and its potential to boost us into the realm of useful computations for quantum chemistry on a pre-fault-tolerant quantum computer.

Low depth simulation on realistic quantum devices

In the early days of quantum algorithms, the actual way the devices are wired up and connected is likely to matter in determining if we can run our algorithms.  Much of the development that is done in the field of quantum algorithms works with a rather abstract model of a computer, without paying much attention to the overhead that is involved in mapping such a specification to a real quantum device.  An example of this is writing quantum circuits that assume an all-to-all connectivity, when the actual device might only allow nearest neighbor connections.

I’m excited to report that recent algorithmic developments have allowed us to demonstrate how to simulate the dynamics of an electronic system in a depth that is linear in the size of the system, and moreover, this can be achieved on a quantum device that has only linear, nearest neighbor connectivity.  For the quantum chemists out there, that is a real-time step forward in the full CI space, at a cost that is linear in the size of the system.  This complexity is difficult to achieve classically for even a method like DFT (despite asymptotic claims).  It’s developments like these that fill me with hope that quantum computers are going to change the landscape of quantum chemistry forever.