(CLASSIQ#1) Quantum software development - past, present , and future
Updated: May 21, 2021
This is Terabe from the Quantum transformation (QX) Project.
We are pleased to present a series of articles by our partner, CLASSIQ, an Israeli quantum software startup company. The tools being developed by CLASSIQ make it easy to develop software for gated quantum computers. Their tools will open the way to the discovery of new quantum circuits and the automatic generation of more efficient quantum circuits in the future.
Nir Minerbi, CEO in the center, Yehuda Naveh, CTO on the left, and Amir Naveh, Head of Algorithms on the right.
Quantum software development - past, present , and future Part1 / Nir Minerbi, CEO of CLASSIQ
In the 20th century, quantum physics led to the invention of the laser and the transistor, delivering a dramatic impact on our daily lives. In the 21st century, quantum physics is poised to deliver another dramatic revolution: quantum computing. Quantum computers can run algorithms that can never be executed on classical computers in a reasonable time, These algorithms are expected to deliver a dramatic impact on chemistry, finance, transportation, cybersecurity, and more.
The opportunity to achieve such breakthroughs has been seized by major organizations. Indeed, the Gartner research firm estimates that by 2023, 20% of organizations will be budgeting for quantum computing projects.
What is required today to develop quantum algorithms and in what areas do we need to see improvements to realize the tectonic benefits of quantum?
Hardware, software, and people.
Quantum algorithms run on quantum computers and major companies - such as Google, IBM, Honeywell and Intel - are racing to build quantum computers. Today’s largest quantum computers have several dozen qubits (quantum bits) and we expect to see this number increase by orders of magnitude in the years to come. Other dimensions of difference between different implementations are the error rates, the connectivity and crosstalk between individual qubits, as well as the type and number of gates. More powerful and useful algorithms will require a larger number of qubits and lower error rates. Today, algorithms must be tuned to each particular model to take advantage of what it offers and overcome its limitations.
Quantum software defines the interconnection between individual qubits as well as the actions to be taken by quantum gates. This is somewhat analogous to programming an FPGA: the code defines how the logical gates - such as NAND, AND, NOT, and XOR, - are connected to each other.
Today, quantum programming is primarily done at the gate level. This presents a series of major problems. While gate-level programming might be feasible when there are five or ten qubits, creating algorithms with dozens - and in the near future, hundreds and thousands - of qubits is practically impossible.
It is impossible to efficiently design such as circuit, to understand it if a circuit is given to you, or even to maintain it. This issue becomes even more complicated when wishing to port an algorithm from one computer to another. Since different computers have different attributes, revising an algorithm that ran well on one type of machine to work well on another is a major undertaking.
Given these difficulties, quantum software teams often resort to making minor changes to algorithms that have already been written by other teams or come packaged with a particular software environment. This might work for small tweaks to existing algorithms but does not address the need to create new algorithms or make substantial modifications to existing ones.
Quantum programming is unlike classical programming. Given today’s quantum programming methods, quantum software engineers are a rare breed. They need to understand quantum information theory, have a working knowledge of quantum physics and a mastery of linear algebra. As a result, quantum software engineers are typically PhD-level graduates of major universities. This creates two major problems. The first is that the supply of people with such qualifications is limited, and thus organizations have a hard time filling open positions in their newly-created quantum computing groups. The second is that a quantum algorithm does not require just quantum engineers but also domain-specific experts. For instance, a quantum finance algorithm might require experts in option pricing. A pharmaceutical algorithm might require expert molecular chemists. The knowledge requirement for quantum software makes it very difficult to integrate such domain experts with the quantum software teams.
How do we solve these issues and what inspiration can we take from similar problems in the past? What solutions are innovators like Classiq providing to break through these bottlenecks and go beyond what is considered impossible today? That will be the topic of our next blog.