The three keys to realizing the full potential of quantum computing
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.
Hardware: 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 have to be tuned to each particular model to take advantage of what it offers and overcome its limitations.
Software: 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.
People: 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 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.
What might be the solution to these problems? They won’t be solved just by better hardware. In fact, better hardware might accelerate and highlight the issues. We already see that the pace of hardware progress is impressive: IBM, for instance, offers a high-end quantum machine with 65 qubits but expects a 433-qubit version next year and over 1000 qubits in 2023.
Given the progress in hardware, the critical chokepoint is software. Today’s gate-level software development methods might be acceptable when there are no more than a few dozens of qubits but are practically impossible to scale to thousands of qubits or beyond.
What are the key requirements from next-generation quantum software platforms?
A high-level description language. Just like VHDL allows electronic circuit designers to express the desired behavior of a circuit, quantum engineers want to provide a high-level description of what they want to achieve, and then have this description automatically synthesized into a quantum circuit.
A definition of the constraints. Sometimes, a quantum engineer wishes to create a circuit with the least amount of qubits, or at least put a ceiling on the number of qubits that can be used. In other cases, the depth of the circuit — the number of steps in the algorithm — is important. In others, a certain accuracy is desired and in others lower accuracy is acceptable. Quantum software engineers need to be able to specify these constraints and meet them.
Resource estimation. Before embarking on an extensive quantum project, teams want an estimate of what kind of quantum computers will be required to run them. How many qubits are required to run a particular option pricing algorithm? Is our quantum computer powerful enough to simulate a complex molecule? Estimation of quantum computing resources can be a great way to identify dead-end projects before embarking on them.
Debugging and analysis. Quantum circuits are complex and are going to become even more so. Even the most powerful classical supercomputer today is limited to simulating no more than about 40 qubits. Software platforms need to help designers debug, analyze and modify existing circuits.
Promote code reuse. Complex software projects are built like tall buildings: each floor rests on the one below it. By creating an environment where quantum programmers can reuse existing code instead of starting from ground level every time, more sophisticated efforts can be completed in less time.
Support hybrid classic/quantum code. Quantum computing is great, but there are many things that classical computers do better. The ideal approach is to allow classical and quantum processors to work in tandem, and thus a development environment that can create these hybrid algorithms is desired.
Fortunately, software platforms that fulfill these requirements are coming to market. For instance, the new platform from Classiq Technologies provides a high-level language that allows engineers to define the desired behavior as well as the required constraints and then synthesizes a circuit that meets both requirements and constraints. Customers are reporting that with the Classiq platform, they are able to solve real-life problems with circuits that were previously impossible — or at least highly impractical — to design
A key benefit of this approach is that it also helps the people problem — the need to integrate domain-specific experts into quantum teams. By providing high-level modeling language, experts can focus on the problem at hand instead of getting bogged down with gate-level coding.
The quantum future is very bright, and recent advancements in hardware and software are making it closer and closer to delivering significant value in solving real-world problems.
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.
Hardware: 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 have to be tuned to each particular model to take advantage of what it offers and overcome its limitations.
Software: 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.
People: 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 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.
What might be the solution to these problems? They won’t be solved just by better hardware. In fact, better hardware might accelerate and highlight the issues. We already see that the pace of hardware progress is impressive: IBM, for instance, offers a high-end quantum machine with 65 qubits but expects a 433-qubit version next year and over 1000 qubits in 2023.
Given the progress in hardware, the critical chokepoint is software. Today’s gate-level software development methods might be acceptable when there are no more than a few dozens of qubits but are practically impossible to scale to thousands of qubits or beyond.
What are the key requirements from next-generation quantum software platforms?
A high-level description language. Just like VHDL allows electronic circuit designers to express the desired behavior of a circuit, quantum engineers want to provide a high-level description of what they want to achieve, and then have this description automatically synthesized into a quantum circuit.
A definition of the constraints. Sometimes, a quantum engineer wishes to create a circuit with the least amount of qubits, or at least put a ceiling on the number of qubits that can be used. In other cases, the depth of the circuit — the number of steps in the algorithm — is important. In others, a certain accuracy is desired and in others lower accuracy is acceptable. Quantum software engineers need to be able to specify these constraints and meet them.
Resource estimation. Before embarking on an extensive quantum project, teams want an estimate of what kind of quantum computers will be required to run them. How many qubits are required to run a particular option pricing algorithm? Is our quantum computer powerful enough to simulate a complex molecule? Estimation of quantum computing resources can be a great way to identify dead-end projects before embarking on them.
Debugging and analysis. Quantum circuits are complex and are going to become even more so. Even the most powerful classical supercomputer today is limited to simulating no more than about 40 qubits. Software platforms need to help designers debug, analyze and modify existing circuits.
Promote code reuse. Complex software projects are built like tall buildings: each floor rests on the one below it. By creating an environment where quantum programmers can reuse existing code instead of starting from ground level every time, more sophisticated efforts can be completed in less time.
Support hybrid classic/quantum code. Quantum computing is great, but there are many things that classical computers do better. The ideal approach is to allow classical and quantum processors to work in tandem, and thus a development environment that can create these hybrid algorithms is desired.
Fortunately, software platforms that fulfill these requirements are coming to market. For instance, the new platform from Classiq Technologies provides a high-level language that allows engineers to define the desired behavior as well as the required constraints and then synthesizes a circuit that meets both requirements and constraints. Customers are reporting that with the Classiq platform, they are able to solve real-life problems with circuits that were previously impossible — or at least highly impractical — to design
A key benefit of this approach is that it also helps the people problem — the need to integrate domain-specific experts into quantum teams. By providing high-level modeling language, experts can focus on the problem at hand instead of getting bogged down with gate-level coding.
The quantum future is very bright, and recent advancements in hardware and software are making it closer and closer to delivering significant value in solving real-world problems.
About "The Qubit Guy's Podcast"
Hosted by The Qubit Guy (Yuval Boger, our Chief Marketing Officer), the podcast hosts thought leaders in quantum computing to discuss business and technical questions that impact the quantum computing ecosystem. Our guests provide interesting insights about quantum computer software and algorithm, quantum computer hardware, key applications for quantum computing, market studies of the quantum industry and more.
If you would like to suggest a guest for the podcast, please contact us.