Optimising the quantum/classical interface for efficiency and portability with a multi-level hardware abstraction layer for quantum computers
Kenton M. Barnes, Anton S. Buyskikh, Nicholas Y. Chen, Gabriel Gallardo, Marco Ghibaudi, Matthew J. A. Ruszala, Daniel S. Underwood, Abhishek Agarwal, Deep Lall, Ivan Rungger, Nikolaos Schoinas
Abstract Steady progress is being made in the development of quantum computing platforms based on different types of qubit technologies. Each platform requires bespoke strategies to maximise the efficiency of the quantum/classical interface when operating close to the qubits. At a higher level, however, a shared interface allowing portability of quantum algorithms across all the available quantum platforms is preferred. Striking the right balance between portability and performance of the algorithm as implemented on quantum hardware remains a major challenge for this field. Here, we propose a quantum hardware abstraction layer (QHAL) providing a multi-level intermediate representation of the quantum stack. A collaborative effort between software specialists and quantum hardware developers operating on four major qubit technologies (photonics, silicon, superconducting and trapped ions) led to the identification of a minimum common set of instructions and metadata allowing the QHAL to interact efficiently with multiple platforms. Access to the stack from the higher levels increases latency yet minimises the amount of hardware architecture parameters to be handled by the algorithm developer, thus simplifying code development and reducing security threats from misuse or malicious access for hardware developers. Access to the stack from the lowest—closest to the qubits—level provides the highest hardware responsiveness, suitable for algorithms requiring minimum latency for data and instruction transfer. With respect to existing quantum assembly languages, the QHAL extends further down in the stack by defining an application-binary interface to interact with the quantum hardware. By defining a standard representation of the quantum stack, a common reference framework is provided to both software and hardware developers which would ensure future integration of their R&D efforts.
Abstract Steady progress is being made in the development of quantum computing platforms based on different types of qubit technologies. Each platform requires bespoke strategies to maximise the efficiency of the quantum/classical interface when operating close to the qubits. At a higher level, however, a shared interface allowing portability of quantum algorithms across all the available quantum platforms is preferred. Striking the right balance between portability and performance of the algorithm as implemented on quantum hardware remains a major challenge for this field. Here, we propose a quantum hardware abstraction layer (QHAL) providing a multi-level intermediate representation of the quantum stack. A collaborative effort between software specialists and quantum hardware developers operating on four major qubit technologies (photonics, silicon, superconducting and trapped ions) led to the identification of a minimum common set of instructions and metadata allowing the QHAL to interact efficiently with multiple platforms. Access to the stack from the higher levels increases latency yet minimises the amount of hardware architecture parameters to be handled by the algorithm developer, thus simplifying code development and reducing security threats from misuse or malicious access for hardware developers. Access to the stack from the lowest—closest to the qubits—level provides the highest hardware responsiveness, suitable for algorithms requiring minimum latency for data and instruction transfer. With respect to existing quantum assembly languages, the QHAL extends further down in the stack by defining an application-binary interface to interact with the quantum hardware. By defining a standard representation of the quantum stack, a common reference framework is provided to both software and hardware developers which would ensure future integration of their R&D efforts.
This paper presents a layered architecture QC-Stack for the quantum computing domain. It is a comprehensive framework explaining quantum computing systems by identifying three fundamental layers: the physical, system, and application layers. Each plays a crucial role in implementing quantum computing systems in practice. The physical layer evaluates quantum hardware technologies based on crucial performance parameters such as qubit quality, connectivity, and scalability. The system layer, which includes quantum firmware, compilers, operating systems, and software development tools, bridges the gap between the physical and application layers. The application layer incorporates Quantum Programming Languages and algorithms, emphasizing their significance in leveraging quantum computing potential across various domains. The paper provides a comparative analysis at a higher level of existing quantum algorithms, protocols, and hardware and software technologies within each sub-layer. It also highlights the strengths and weaknesses of different technologies at each layer. This holistic model can guide researchers and practitioners, offering insights into the ever-evolving landscape of quantum technology.
This paper presents the definition and implementation of a quantum computer architecture to enable creating a new computational device - a quantum computer as an accelerator In this paper, we present explicitly the idea of a quantum accelerator which contains the full stack of the layers of an accelerator. Such a stack starts at the highest level describing the target application of the accelerator. Important to realise is that qubits are defined as perfect qubits, implying they do not decohere and perform good quantum gate operations. The next layer abstracts the quantum logic outlining the algorithm that is to be executed on the quantum accelerator. In our case, the logic is expressed in the universal quantum-classical hybrid computation language developed in the group, called OpenQL. We also have to start thinking about how to verify, validate and test the quantum software such that the compiler generates a correct version of the quantum circuit. The OpenQL compiler translates the program to a common assembly language, called cQASM. We need to develop a quantum operating system that manages all the hardware of the micro-architecture. The layer below the micro-architecture is responsible of the mapping and routing of the qubits on the topology such that the nearest-neighbour-constraint can be be respected. At any moment in the future when we are capable of generating multiple good qubits, the compiler can convert the cQASM to generate the eQASM, which is executable on a particular experimental device incorporating the platform-specific parameters. This way, we are able to distinguish clearly the experimental research towards better qubits, and the industrial and societal applications that need to be developed and executed on a quantum device.
This paper discusses the various technologies used for quantum computing and highlights the need for compiler and software stack solutions that are portable across different technologies (beyond superconducting qubit quantum computers) while providing a higher-level interface that allows scientists to run their programs in a technology-agnostic manner. To achieve this, quantum compilers and architecture designs must not be bound by classical-style standards and specifications. As a first step toward tackling this challenge, this paper then focuses on developing a compiler solution for neutral atom quantum computing technology, which has several potential benefits over superconducting qubit quantum computing technology.These benefits include a greater connectivity of qubits within the Rydberg interaction radius, which allows for fewer SWAP operations, and the ability to execute multi-qubit gates directly. However, neutral atom quantum computers have a different set of constraints and requirements, including interaction blockades, which can result in potential serialization of operations, reducing some of the gains due to the better connectivity of neutral atom quantum computers. The paper then concludes by stating that addressing these challenges requires further research and development in the field.
In recent years, various vendors have made quantum software frameworks available. Yet with vendor-specific frameworks, code portability seems at risk, especially in a field where hardware and software libraries have not yet reached a consolidated state, and even foundational aspects of the technologies are still in flux. Accordingly, the development of vendor-independent quantum programming languages and frameworks is often suggested. This follows the established architectural pattern of introducing additional levels of abstraction into software stacks, thereby piling on layers of abstraction. Yet software architecture also provides seemingly less abstract alternatives, namely to focus on hardware-specific formulations of problems that peel off unnecessary layers. In this article, we quantitatively and experimentally explore these strategic alternatives, and compare popular quantum frameworks from the software implementation perspective. We find that for several specific, yet generalisable problems, the mathematical formulation of the problem to be solved is not just sufficiently abstract and serves as precise description, but is likewise concrete enough to allow for deriving framework-specific implementations with little effort. Additionally, we argue, based on analysing dozens of existing quantum codes, that porting between frameworks is actually low-effort, since the quantum- and framework-specific portions are very manageable in terms of size, commonly in the order of mere hundreds of lines of code. Given the current state-of-the-art in quantum programming practice, this leads us to argue in favour of peeling off unnecessary abstraction levels.
In recent years, various vendors have made quantum software frameworks available. Yet with vendor-specific frameworks, code portability seems at risk, especially in a field where hardware and software libraries have not yet reached a consolidated state, and even foundational aspects of the technologies are still in flux. Accordingly, the development of vendor-independent quantum programming languages and frameworks is often suggested. This follows the established architectural pattern of introducing additional levels of abstraction into software stacks, thereby piling on layers of abstraction. Yet software architecture also provides seemingly less abstract alternatives, namely to focus on hardware-specific formulations of problems that peel off unnecessary layers. In this article, we quantitatively and experimentally explore these strategic alternatives, and compare popular quantum frameworks from the software implementation perspective. We find that for several specific, yet generalisable problems, the mathematical formulation of the problem to be solved is not just sufficiently abstract and serves as precise description, but is likewise concrete enough to allow for deriving framework-specific implementations with little effort. Additionally, we argue, based on analysing dozens of existing quantum codes, that porting between frameworks is actually low-effort, since the quantum- and framework-specific portions are very manageable in terms of size, commonly in the order of mere hundreds of lines of code. Given the current state-of-the-art in quantum programming practice, this leads us to argue in favour of peeling off unnecessary abstraction levels.
By exploiting quantum mechanical behavior, quantum computers have the potential to carry out classically hard computations, such as the prime factorization of integers, with disruptive, exponentially better efficiency, yet they struggle with classically simple task like integer addition. Hybrid applications, combining both quantum and classical computations, attempt to take advantage of the strength of both approaches while avoiding their weaknesses. In such applications, the design of the interface between quantum and classical computers deserves attention as a potential performance bottleneck. In this thesis, the design of a modular software stack for hybrid quantum/classical applications that is agnostic to the used quantum technology platform is developed both for high-level application-oriented as well as high-performance low-level use-cases. A hardware description language for quantum circuits derived from the industry standard VHDL language is proposed, and its usage in tightly-coupled hybrid applications, where quantum and classical computations overlap in time, is discussed. To enable low-latency coupling, the proposed hybrid architecture connects quantum computations to hardware implementations of timing critical classical computations and utilizes established hardware/software co-design patterns to interface higher-level classical computations. Experimental evidence of noise effects on state-of-the-art quantum hardware is presented for the case of solving partial differential equations. This supports the conclusion that frequent interaction between short and shallow quantum and classical computations is necessary even for loosely-coupled hybrid applications under these circumstances, strengthening the case for a low-latency, high-bandwidth quantum-classical interface as proposed in this thesis.