Quantum Software Development Is Still In Its Infancy
There is a race being run these days, and it features established giants as well as well-funded newcomers. Companies such as IBM, Intel, Google, Honeywell, Xanadu, IonQ, Rigetti and Alibaba are racing to build ever-more-powerful quantum computers. They appear well-justified to do so. Quantum computing promises to dramatically impact numerous fields — from cybersecurity to finance, from supply chain to pharmaceuticals, from defense to weather forecasting.
Quantum computers include qubits (the quantum equivalent of classical "0 or 1" bits) and gates that modify these qubits. Companies are competing on multiple dimensions — the number of qubits, the type of available gates, the connectivity between qubits, error rates, operating temperature and more. The pace of progress is quite dizzying. IBM, for instance, offers a high-end quantum machine with 65 qubits and expects a 433-qubit version next year and over 1,000 qubits in 2023.
Hardware Is Just Part Of The Picture
As important as the hardware is, the software is also critical in powering a quantum revolution.
In the classical computing world, a modern CPU is nearly useless without an operating system and software tools for developing applications, and we can assume that this will also be the case for quantum computers. Without powerful software, quantum computing will fail to deliver on its promise.
Today, however, quantum software development is in its infancy. Quantum programming languages like Q# from Microsoft, Qiskit from IBM or Cirq from Google primarily operate at the gate or building-block level. If a required building block is not yet implemented, the user needs to specify the exact sequence of interconnections between qubits and quantum gates.
This process is similar to creating a digital circuit by laboriously placing AND, OR and NOT logical gates. It works reasonably well when there are dozens of logical gates, but it is practically impossible to scale to thousands or millions of gates.
The Quantum Ph.D. As A Software Engineer
The complexity in writing quantum software has another unfortunate side effect: It is difficult to find quantum software engineers. Because quantum programming is unlike classical programming, quantum software engineers are a rare breed. They need to be experts in quantum information theory and have a working understanding of quantum physics as well as a mastery of linear algebra.
Today, such engineers are typically Ph.D.-level graduates of major universities. People with such qualifications are few, and companies find it difficult to staff their newly-created quantum groups. Furthermore, quantum software engineers lack domain expertise in option pricing, molecular biology, supply-chain optimization or whatever problem the teams set out to solve. The need to define new algorithms at the gate level makes it very difficult to integrate domain-specific experts into quantum teams.
Seeing The Big Picture
If you have snapped a beautiful vacation photo yet want to make the sunset colors more dramatic, you probably don't want to do so pixel by pixel, especially when your photo has millions of pixels. You would prefer using Photoshop or other picture editing software that allows you to specify what you want to be done and then figure out how to implement it pixel by pixel.
Similarly, if your team members developed a new quantum algorithm, they don't want to code it — or debug and maintain it — gate by gate. They want a high-level language to translate the new concepts into a gate-level implementation.
Where Have We Seen This Before?
Earlier, we made the analogy between quantum programming and the design of digital circuits. The evolution of digital circuit design can serve as inspiration to solve the quantum software problem.
As digital circuits became more complex (an Intel 8086 processor has about 20,000 transistors, whereas a modern i7 has over 4 billion transistors), design languages like VHDL came to the rescue. With VHDL, Verilog and similar hardware description languages, designers write human-readable code that describes what they want to achieve and then have computer programs translate this high-level description into detailed gate interconnections.
Such languages have made it possible to design truly complex circuits and to effectively debug and maintain them. High-level languages also promote code reuse so that the figurative wheel does not need to be reinvented every time.
What To Expect
I believe that we will start to see a VHDL-like approach applied to quantum computing. While the language constructs for quantum might be significantly different from those of electronic design, the concept for this "quantum algorithm design" is the same — focus on the intent and let a sophisticated computer program translate it into qubits and gates. Because there is so much good VHDL history from which we can glean insights, I expect the quantum equivalent will develop much faster and with much less uncertainty.
Three Pieces Of Advice
To be prepared for the quantum revolution and these new software platforms, I suggest that companies:
• Introduce their domain-specific experts to the concepts of quantum computing but without necessarily requiring them to learn low-level programming.
• Avoid jumping headlong into qubits and gates. First, create a high-level human-readable description of what your quantum algorithm needs to do.
• Continue to scout the market for platforms that can turn high-level modeling languages into optimized low-level quantum code.
Help Is On The Way
Quantum computing will be stalled without significant progress in software. Quantum algorithm design software will not only make it possible to implement more sophisticated algorithms on more advanced machines, but it will also widen the available labor pool and allow domain-specific experts to work together with Ph.D.-level quantum engineers.
By integrating hardware, software and people, we can deliver on the big promise of quantum computing.
This article originally appeared in Forbes
There is a race being run these days, and it features established giants as well as well-funded newcomers. Companies such as IBM, Intel, Google, Honeywell, Xanadu, IonQ, Rigetti and Alibaba are racing to build ever-more-powerful quantum computers. They appear well-justified to do so. Quantum computing promises to dramatically impact numerous fields — from cybersecurity to finance, from supply chain to pharmaceuticals, from defense to weather forecasting.
Quantum computers include qubits (the quantum equivalent of classical "0 or 1" bits) and gates that modify these qubits. Companies are competing on multiple dimensions — the number of qubits, the type of available gates, the connectivity between qubits, error rates, operating temperature and more. The pace of progress is quite dizzying. IBM, for instance, offers a high-end quantum machine with 65 qubits and expects a 433-qubit version next year and over 1,000 qubits in 2023.
Hardware Is Just Part Of The Picture
As important as the hardware is, the software is also critical in powering a quantum revolution.
In the classical computing world, a modern CPU is nearly useless without an operating system and software tools for developing applications, and we can assume that this will also be the case for quantum computers. Without powerful software, quantum computing will fail to deliver on its promise.
Today, however, quantum software development is in its infancy. Quantum programming languages like Q# from Microsoft, Qiskit from IBM or Cirq from Google primarily operate at the gate or building-block level. If a required building block is not yet implemented, the user needs to specify the exact sequence of interconnections between qubits and quantum gates.
This process is similar to creating a digital circuit by laboriously placing AND, OR and NOT logical gates. It works reasonably well when there are dozens of logical gates, but it is practically impossible to scale to thousands or millions of gates.
The Quantum Ph.D. As A Software Engineer
The complexity in writing quantum software has another unfortunate side effect: It is difficult to find quantum software engineers. Because quantum programming is unlike classical programming, quantum software engineers are a rare breed. They need to be experts in quantum information theory and have a working understanding of quantum physics as well as a mastery of linear algebra.
Today, such engineers are typically Ph.D.-level graduates of major universities. People with such qualifications are few, and companies find it difficult to staff their newly-created quantum groups. Furthermore, quantum software engineers lack domain expertise in option pricing, molecular biology, supply-chain optimization or whatever problem the teams set out to solve. The need to define new algorithms at the gate level makes it very difficult to integrate domain-specific experts into quantum teams.
Seeing The Big Picture
If you have snapped a beautiful vacation photo yet want to make the sunset colors more dramatic, you probably don't want to do so pixel by pixel, especially when your photo has millions of pixels. You would prefer using Photoshop or other picture editing software that allows you to specify what you want to be done and then figure out how to implement it pixel by pixel.
Similarly, if your team members developed a new quantum algorithm, they don't want to code it — or debug and maintain it — gate by gate. They want a high-level language to translate the new concepts into a gate-level implementation.
Where Have We Seen This Before?
Earlier, we made the analogy between quantum programming and the design of digital circuits. The evolution of digital circuit design can serve as inspiration to solve the quantum software problem.
As digital circuits became more complex (an Intel 8086 processor has about 20,000 transistors, whereas a modern i7 has over 4 billion transistors), design languages like VHDL came to the rescue. With VHDL, Verilog and similar hardware description languages, designers write human-readable code that describes what they want to achieve and then have computer programs translate this high-level description into detailed gate interconnections.
Such languages have made it possible to design truly complex circuits and to effectively debug and maintain them. High-level languages also promote code reuse so that the figurative wheel does not need to be reinvented every time.
What To Expect
I believe that we will start to see a VHDL-like approach applied to quantum computing. While the language constructs for quantum might be significantly different from those of electronic design, the concept for this "quantum algorithm design" is the same — focus on the intent and let a sophisticated computer program translate it into qubits and gates. Because there is so much good VHDL history from which we can glean insights, I expect the quantum equivalent will develop much faster and with much less uncertainty.
Three Pieces Of Advice
To be prepared for the quantum revolution and these new software platforms, I suggest that companies:
• Introduce their domain-specific experts to the concepts of quantum computing but without necessarily requiring them to learn low-level programming.
• Avoid jumping headlong into qubits and gates. First, create a high-level human-readable description of what your quantum algorithm needs to do.
• Continue to scout the market for platforms that can turn high-level modeling languages into optimized low-level quantum code.
Help Is On The Way
Quantum computing will be stalled without significant progress in software. Quantum algorithm design software will not only make it possible to implement more sophisticated algorithms on more advanced machines, but it will also widen the available labor pool and allow domain-specific experts to work together with Ph.D.-level quantum engineers.
By integrating hardware, software and people, we can deliver on the big promise of quantum computing.
This article originally appeared in Forbes
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.