Personal tools

Quantum Computing Software Engineering

Cornell University_090321A
[Cornell University]


- Overview

Quantum programming is the process of creating instructions, or quantum circuits, to manipulate a quantum system. These instructions are made using gates, operators, and switches to achieve a desired outcome. 

Quantum programming is based on the principles of quantum mechanics and is used to develop algorithms and software that harness the power of quantum computers. 

Quantum programming languages are designed to work with the unique properties of qubits, such as superposition and entanglement. 

Some quantum programming languages include: Python, Qiskit, Ocean, Q, Cirq.


 - Classical Computing Vs. Quantum Computing

Traditional software development uses classical computers, translating high-level programming languages such as Java into operations performed on large numbers of (hardware) transistors.

The simplified diagram below shows the flow of this process: Java source code is compiled into platform-independent bytecode, which is then translated into platform-specific machine code. This allows Java code to work on different operating systems and architectures. Machine code makes use of some basic operations (gates) that operate on memory. The main hardware component that makes this possible is the well-known transistor.

Java source code -> Java bytecode -> registers/memory/gates -> transistors 

Performance improvements over the past few decades have been largely driven by hardware technology advantages. The size of individual transistors has shrunk dramatically, and more transistors per square millimeter can provide more memory or more processing power. 

Quantum computing is disruptive because it doesn't use classical transistors as the basic building blocks; it uses qubits, which we'll discuss later.

Not only are the basic building blocks different, but the doors are also different. Therefore, the stack shown above is not suitable for quantum computing.


- Quantum Computing in the NISQ Era and Beyond

Quantum computing is a new paradigm designed to usher in the next era of computing speed and power. It builds on the phenomena of quantum physics to create new elements of computing that will revolutionize the way computers process information. 

Computing on integrated circuits has driven many technological breakthroughs over the past few years. However, we are reaching the limit of how much computing power can be accommodated on existing computer chips - just as the most intractable problems in fields such as software verification and validation (VV), materials science, machine learning and artificial intelligence, which cannot be solved by prior art. 

Quantum technology could represent a leap forward in the computing technology needed to solve such problems. It can also be used to build complex artificial intelligence for advanced autonomous systems. 

Another potential use of quantum computing is to simulate complex chemical and biological systems. Such simulations are key to producing advanced materials such as metals, polymers, and hybrids, supporting advanced aerospace technologies, and advancing biotechnology to develop new vaccines and treat diseases. 

However, quantum computing is still in its infancy. The field finds itself in what researchers call the NISQ era, the era of noisy intermediate-scale quantum processing units. 

The elements of a quantum computer remain unstable, or "noisy," because they flip into different states. At these early stages of quantum computing research, it's still hard to tell when quantum computing might provide capabilities that early research suggests are possible. 


- NISQ Devices

The Noisy Intermediate-Scale Quantum (NISQ) era is a stepping stone towards more powerful quantum technologies. The NISQ era will end when a computer with tens of thousands of qubits and enough error correction is created. This will allow beyond-NISQ devices to break RSA encryption and implement Shor's algorithm for large numbers. 

NISQ devices can be useful for exploring many-body quantum physics. They can also suppress errors, allowing researchers to use strings up to 26 bits long. A classical computer would need around 33 million guesses to correctly identify a 26-bit string. 

In the longer term, quantum computing will likely involve the development of error-corrected quantum computers. These computers will be able to solve larger and more complex problems than current NISQ devices.


- Potential Uses of Quantum Technology

Quantum technology has many potential uses, including: 

  • Data analysis: Quantum computing can improve data analysis and speed up the performance of machine learning algorithms.
  • Financial services: Financial services companies can use quantum computing to make investment decisions and calculate market risk.
  • Chemical engineering: Quantum computers can simulate subatomic particles, molecular interactions, and chemical reactions. This can help with chemical engineering and material science, and may lead to the design of new materials like solid-state batteries. Quantum computing can also help with drug discovery by accelerating the discovery of new materials and drugs.
  • Climate change: Quantum computers can help us understand climate change.
  • Satellite-free navigation systems: Quantum technology could enable satellite-free navigation systems.
  • Carbon-free fuels: Quantum technology could help discover new carbon-free fuels.

Other potential uses for quantum computing include: 

  • AI and machine learning
  • Cybersecurity
  • Route and traffic optimization
  • Manufacturing
  • Batteries


[More to come ...]



Document Actions