At last week’s Inside Quantum Technology conference, I had the privilege to moderate the “Quantum Software” panel and discuss with world-class speakers from the quantum software ecosystem: Christopher Savoie, CEO and founder of Zapata Computing, Damien Nguyen, physicist and software engineer/researcher at Huawei ProjectQ, and Adriaan Rol, director Research & Development at Orange Quantum Systems.

US-based Zapata Computing is offering a platform to run classical and quantum workflows in complex hybrid environments that can be found in large enterprises. “It’s not just the algorithm itself, but it’s the entire environment; we work from the user’s problem all the way down to the hardware layer to be able to offer that advantage as the hardware emerges,” said Savoie.

Huawei Technologies is developing its own software stack for quantum computing. “We provide support to have possibly multiple types of hardware that you can use to solve the problems,” said Nguyen. “My involvement is mainly on the compiler side.”

Orange Quantum Systems is focusing on providing full stack quantum systems. “Our team has helped more than ever to develop Quantum Inspire, Europe’s first quantum computer in the cloud,” said Rol. “The other side is specifically focused on the calibration and characterization product. So, we did a lot of software developments, from the hardware up to expose that to the algorithm developers, and I think one of the key things is really that there’s a lot of software engineering that goes into that, and making sure that we actually execute all these algorithms, and make use of older hardware specific tips and tricks. It can really create this quantum advantage.”

Quantum programming

The advent of quantum computers has created the need for a development environment that is both accessible and easy to use.

Encoding a quantum program is a bit different from what we are used to when creating classical programs; we have to go down into the abstraction levels of computers and use logic gates to manipulate data, basically following the same mindset that Alan Turing had when he created his Turing machine. In this case, we are talking about a Quantum Turing machine that performs calculations on various qubits.

Python was built to be as readable as possible and is an early tool used in the programming of quantum computers. Python is a kind of lingua franca, as Savoie pointed out. In fact, it is a programming language that allows many people to enter many fields and design solutions at the quantum level and in machine learning, thus offering the possibility to interact with many hardware devices by having libraries that are easy to use and implement.

Phython’s experience with widely used FPGAs leads us into an awareness of what is going on in the hardware and it’s time-critical. Roll thinks that the fact that time has a physical meaning is one of the key features that makes quantum programming very different. So if you delay in operation, you’re doing something completely different, teaching the qubits different things.

“Python was chosen because it is the simplest language, easily accessible to everyone,” said Nguyen. “There is no compiler to set up with libraries. It’s a bit like the iPhone, there’s an app for that, but in Python there’s a library that solves almost all the problems.”

Standardization

Standardization in quantum terms is crucial. Roll said that there is an attempt to interface the control software and make use of all the particularities of the hardware so that all experiments of a scientific nature can be done. At the same time, the platform must retain its usefulness for different configurations, thus requiring standardization.

This is a very important process to ensure the widespread use of quantum computers. It is currently in an experimental phase, but we will soon see solutions at a commercial level. The most important thing is not really to have the maximum number of qubits. Even a small number of low-noise qubits can satisfy many applications.

The first quantum advantage in production reality will come with quantum machine learning. “By using related techniques, it is possible to use a relatively small quantum device to produce probability distributions that are very difficult to achieve in a standard way,” said Savoie. “You don’t have to change the infrastructure of what we’re doing with neural networks. I really think it’s very promising in the short term.”

As Rol pointed out, calibration and characterization are two important areas in quantum software. This bottleneck will require a lot of work over the next few years to get a quantum system to finally do its job.

Damien’s idea is to have a flexible open-source community so that everyone can speak a single language to better finalize the activities of a quantum computer.