You’ve probably heard about the rapidly evolving field of quantum computing. These systems operate completely differently than classical computers, e.g. by crunching qubits (quantum bits versus binary bits). QPUs (which refer to quantum computers) process multiple states simultaneously using qubits, and vendors are working hard on their QPUs to bring faster machines to market.
But innovation in the space is not solely driven by hardware. Software is starting to take center stage as a driving force for bringing quantum into the mainstream. It’s a subtle difference in wording, but we can think of this as a shift from quantum ‘computers’ to quantum ‘computing.’
One reason that software is now becoming so prominent relates to the fact that quantum computing is beginning to jump from the lab into business environments. It’s early for sure, but the trend is real. For non-quantum experts in business, the difference between classical computing’s serial data analysis versus quantum’s multi-dimensional computation is nothing short of night and day. Software has become a linchpin for quantum adoption.
- IBM sets out plans to scale quantum computing (opens in new tab)
Classical vs. quantum software
Before delving into business applications, it will help to shed light on the basic constructs of this new field – and how they vary from traditional computing.
Classical and quantum software environments are fundamentally different. With classical computing, a programmer writes software using binary elements of ones and zeros (abstracted by app development software), which converts them into instructions that are processed sequentially. They solve optimization problems using binary search techniques and only return a single result. In contrast, quantum programming approaches accelerate complex analysis by delivering a matrix of multiple elements presented in a format that is already pre-optimized for a qubit to resolve. This process better mirrors the natural multi-dimensional state of most problems.
Quantum computers aren’t designed to produce singular results. Quantum computers solve optimization problems in a multi-dimensional space, processing multiple states, or potential situations, simultaneously. They identify all possible options that meet the criteria of constrained optimization, giving users a diversity of results to explore for their solution. The diversity of results offers more and better opportunities to find the best possible solution in different business situations.
Quantum software draws from mathematical pattern matching and optimization techniques adapted from areas like machine learning. For example, Quadratic Unconstrained Binary Operation (QUBO) is used to create the quantum lattice for annealing machines, like D-Wave, while that QUBO is converted to a quantum circuit using the Quadratic Approximation Optimization Algorithm (QAOA) for more common gate model machines (like IBM, Rigetti, Honeywell, IonQ and others). Math, physics and quantum experts need to program complex circuits, algorithms and more to create the problem submission for the quantum computer. They also have to program low level hardware configurations for each QPU, and again for all upgrades or expansions.
In essence, quantum computing is a completely new paradigm. Not only does it require new types of hardware, it also demands new and highly technical quantum programming skill sets to create the software. Multi-dimensional presentation and optimization means that quantum requires highly trained experts to define the problem and convert it to code for these systems. Even with the specialized knowledge and experience of quantum experts, the quantum SDKs (software development kits) can still be extremely complex. One quantum programmer recently noted that it took over eight months to begin to program a very simple problem using a popular quantum software development toolkit. Moreover, quantum software requires that each processing flow includes low-level coding that is proprietary to each vendor’s QPU requirements, not to mention unique to the specific quantity of QPUs in the system. Once a user has spent dramatic time and money getting to a point where they can actually run applications, they’re effectively locked into that specific hardware and vendor. When the system is upgraded or changed in any way, all that code has to be rewritten.
As you would expect, given the dramatic differences in hardware architectures, quantum software requires a significant shift. Every circuit, gate, algorithm, action and process must be created using new quantum programming approaches.
The evolution of classical and quantum as the data grows
The role of technology in business can be better understood through a look at a class of problems related to constrained optimization; which is about optimizing a function based on a set of constraints.
E.g., when an airline creates a global flight plan, it tries to optimize capacity for the number of fliers, land the planes in ideal destinations to pick up new passengers and complete the route with the least distance and fuel. The airline needs to consider a myriad of variables related to weather patterns, airport traffic, maintenance downtime, crew airtime, where crews are located at any given moment, coordinate food service to match the flight schedules, and many other factors.
Classical computers are solving these types of problems today. But they’re doing so by using approximations and cutting corners to get solutions that aren’t as exacting as they were when the data sets were smaller and constraints were less demanding. They’re not the best solutions, rather, they’re the best solutions for what we can deliver today.
Today’s data volumes are threatening to limit the performance and results that a classical application can achieve. As data grows, the volumes will potentially completely overload classical resources. Serial processing in a binary space can handle large data volumes, but the growth of data is stretching these systems, forcing users to limit the size of the analytics they process. This means Subject Matter Experts (SMEs) and programmers must compress, reduce and limit the data that is processed, resulting in potentially lower quality solutions. Additionally, classical computers generally return one result, limiting the range of decision insights.
The types of problems quantum can tackle range from route optimization for the proverbial traveling salesperson (long considered an intractable challenge) to supply chain management, logistics and even drug discovery.
- Majority of decision makers plan to harness quantum computing in near future (opens in new tab)
Quantum software will drive adoption
The reality is that, in the future, both quantum and classical systems will coexist. That’s because each is designed to solve a different type of problem.
For now, classical computers are chipping away at tough problems, like the traveling salesman, with estimations and approximations. Emerging software solutions aim to bridge these two worlds by using quantum-ready techniques that produce better results for constrained optimization on classical computers and eventually for quantum systems.
What will it take to bring the technology to wider adoption and ultimately a mass market?
Perhaps its evolution will follow the path of other technologies that emerged from research labs, like high-performance computing and artificial intelligence. Open source and cloud software, combined with commodity hardware, made it easier to access the power of these technologies and drive commercialization.
Similarly, giving those who aren’t experts the ability to tap the power of quantum will drive adoption, fund further development, and bring down costs.
Major companies are combining software and services for easier access to quantum computers. Amazon is a pioneer; it's Braket is a managed service that helps researchers and developers get started with the technology. Braket provides a development environment to explore and build quantum algorithms and simulate and run them on different quantum hardware technologies.
Innovations are also flourishing in areas like quantum SDKs and quantum operating systems intended to support quantum-experts in accessing and running quantum applications. Another area that has emerged is the quantum application accelerators. The goal is to remove the highly technical, quantum-expertise dependency from the use cases of quantum. Many of us still don’t know how our cars work but we drive them every day. Subject matter experts don’t need to understand all the inner workings. What they do need is an advanced computer that can help them solve real business problems.
As different as it is from classical, certain quantum software techniques are already improving the diversity of results and performance for classical computers. Thus, an ideal solution would be the ability for an SME to have the power of both classical and quantum without the scientific rigor needed for quantum and without the need to reprogram from classical to quantum or from one quantum machine to another.
Quantum computing has vast potential. It’s also a new, complex paradigm that organizations need to thoughtfully and thoroughly plan for as part of their near-term computational infrastructure...and software is a key to this transformation.
- Solving problems by working together: Could quantum computing hold the key to Covid-19? (opens in new tab)