A Toolchain From Classical to Quantum Computation
We are developing a complete system for classical to quantum computation, with quantum algorithm synthesis from classical programs to compilation, and deployment on quantum processors.
The Journey from Classical
to Quantum
We are developing a toolchain for taking a program written in a conventional language such as C or Python and transforming it into an accelerated quantum application. This requires automated algorithm synthesis to produce a high-level description of a quantum program for the task, paired with an optimising compiler to turn this into a processor-specific executable representation. Developers can already experience some of these tools within Triple Alpha.
Algorithm Synthesis
Bridging the gap between classical code and a quantum-accelerated application necessitates addressing the problem of quantum algorithm construction. To accomplish this, Horizon Quantum has been pioneering a method to automatically construct quantum algorithms from source code written in conventional languages in a way that preserves the exact functioning of the original program. We call this process algorithm synthesis.
Classical Program
The starting point for algorithm synthesis is a program expressed in a conventional language programming language. This can be legacy code written in a language like C, C++ or Matlab, and no references to quantum specific functionality or libraries are needed.
Refactoring, Simplification & Classification
This code is then refactored. Loops and recursive function calls are broken apart into simpler and simpler elements. Once broken down to their most basic form, there is only a finite number of distinct patterns that can appear. These patterns are recognised as distinct primitives that combine to form the complete program.
Quantum Algorithm Construction
Each primitive can then be replaced by specifically-designed quantum algorithms that accomplish the same task as the original primitive but with better performance. This allows for algorithm synthesis to be applied broadly, to any program, though the level of acceleration achieved will depend on the structure of the original program.
Quantum Compilation
A major challenge in harnessing quantum computers for practical applications is the translation of high-level quantum program specifications into concrete, hardware-native instructions. Our Helium language simplifies this by supporting concurrent classical and quantum processing and offering advanced features such as quantum subroutine generation from classical code, adaptive flow control, and dynamic memory management.
High-Level Quantum Program
The starting point for our compilation tool chain is a program specified in our Helium language. Helium code targets an idealised quantum computer that allows for concurrent classical and quantum processing where feedback from mid-execution measurements or I/O can influence control flow to allow for dynamic, non-circuit programs.
Compilation to IR with Control Flow
The high-level quantum program is compiled to a lower-level representation, that is exposed through our Hydrogen language. The Helium compiler handles the construction of quantum subroutines from C and C++, the automatic inversion of subroutines, the construction of controlled quantum operations, and other high-level functionality.
Program Optimisation
Once the program is represented in a low-level form, the next step involves producing an optimised implementation by simplifying the program logic and removing redundant operations. Since there is no single best implementation for a quantum program, optimising performance entails navigating a series of trade-offs, which can be handled automatically.
Hardware Mapping
Before a program can be run on a real quantum computer, it is necessary to adapt the program for the architecture of the target system. This process is handled automatically by the compiler, which converts the code to the instruction set of the target processor in a noise-aware manner that respects the processor's coupling constraints.
Packaging for Execution on Target Processors
Given that many of today's quantum computers lack support for complex control flows, programs targeting such systems are executed as hybrid computations, with a classical program dynamically generating circuits to execute and stitching the results together to emulate general control flow.
Deployment as an API
The final step of the Triple Alpha software development process is deploying of the package program as an API. This allows developers to easily integrate quantum backends developed in Triple Alpha with a wide variety of technologies, from Python scripts and web pages to Excel macros.
Unique Capabilities in Quantum Computing and Communications
Achieving quantum advantage demands tight integration between software and hardware. To enable this, we have established a hardware testbed that directly integrates quantum computers with our advanced software stack. This makes us the first software company in the space to operate our own quantum computers.
Our inaugural quantum computer is set to become operational in early 2025. It will be seamlessly integrated with state-of-the-art conventional HPC infrastructure. Our testbed also includes quantum communications capabilities, hosting a node on Singapore's Quantum-Safe Network.
These capabilities set Horizon apart, demonstrating our unique approach to advancing quantum technology.
Discover the Core Capabilities of Triple Alpha
Find out more about how our technology is used in Triple Alpha, our web-based integrated development environment (IDE) that allows you to code, quantify, compile and deploy applications on quantum computers.
Turing-complete Languages
Leverage flow control to overcome the limitations of circuit-based quantum computation.
Subroutines From C/C++
Automatically construct reusable quantum circuits directly from functions written in C and C++.
Code Portability
Compile and optimise quantum programs and map them to the native operations of any target hardware.
Triple Alpha in Early Access
If you are interested in early access to our technology, please register below. We will be inviting selected users to early access based on use cases as we progressively release our tools.