Work Packages

HOME / TOP / About / 01.Research and Development of System Software for Quantum-HPC Hybrid Computing

JHPC-quantum

01.

Research and Development of System Software for Quantum-HPC Hybrid Computing

Software and programming environment development for the effective and efficient use of quantum-HPC hybrid computing.

Overview

We are developing system software and programming environments to link quantum computers and supercomputers effectively. We are implementing a remote call system to enable a program running on a supercomputer to offload tasks to a quantum computer at runtime, together with a quantum computing request scheduler for the safe and efficient use of the quantum computer from the supercomputer, and the communication libraries between the quantum computing request scheduler, supercomputer, and quantum computer. We are also researching and developing programming and execution environments for creating quantum-HPC hybrid applications, including workflow engines that make efficient use of quantum computers and supercomputers, and we are porting several quantum software development kits (SDKs) to enable their functions on supercomputers.

Detail

A quantum computer is a computer based on quantum physics. Since the working principle of quantum computers is different from that of conventional computers, it is expected that quantum computers could potentially solve some problems that conventional computers cannot. Nevertheless, conventional computers, especially supercomputers, will remain powerful tools for solving problems even in the future. Therefore, combining supercomputers and quantum computers effectively is expected to increase computational capabilities. In this project, we research and develop the system software and programming and execution environments needed to connect quantum computers and supercomputers.

Both quantum computers and supercomputers are valuable shared computational resources, since many users would like to execute various applications on them. To run a quantum-HPC hybrid application effectively, we have to minimize the idling time on both computers; for example, it is not preferable to make one computer wait for the other. Therefore, we have proposed a two-level programming model:
(1) workflow programming to submit tasks (jobs) to different computers in a certain order by considering the dependency between the jobs, and
(2) task-based programming involving RPC offloading from a supercomputer to a quantum computer.

Some quantum-HPC applications may include quantum jobs and HPC jobs whose dependencies are relatively simple. In such a case, (1) is used. Other applications may involve quantum and HPC tasks that are tightly linked and have complicated dependencies; in such a case, (2) is used to provide an execution environment that keeps both computers effectively in simultaneous use.

(1) Workflow Programming and Development of Workflow Engines

Most supercomputers and quantum computers employ batch job systems to manage jobs from many different users, based on operation policies designed to maximize the throughput of each system. To maximize throughput when the dependencies between quantum jobs and HPC jobs are relatively simple, we will develop workflow engines that submit jobs to supercomputers and quantum computers in an appropriate order based on the dependencies between the jobs, making efficient use of quantum computers and supercomputers across both systems.

One might imagine that it would be enough to make quantum computers and supercomputers available simultaneously in order to execute a quantum-HPC hybrid application. However, as shown in the figure below, if the computational resources of a quantum computer and a supercomputer are used simultaneously in this way, idling time can occur in one computer while it waits for the other to finish its task.

Idling time that occurs when a supercomputer and a quantum computer are secured for simultaneous use

(2) Remote Procedure Call and the Quantum Computing Request Scheduler

We are developing system software to connect quantum computers and supercomputers. We especially focus on a function called remote procedure call (RPC), which allows one computer to offload some tasks to another computer via a communication network. We are developing software that performs RPC using a common API from a supercomputer to quantum computers and quantum computing simulators.

Two-level programming model consisting of workflow programming in the first level and RPC offloading in the second level

We are developing the RPC offloading library for (2), together with a quantum computing request scheduler to control the priority of quantum computing requests coming from a supercomputer and those coming directly from quantum computer users, whether issued by users themselves or through the workflow of (1).

The quantum computing request scheduler works in front of the quantum computing backend server, and all requests to quantum computers on our platform must pass through the quantum computing request scheduler. The scheduler prioritizes requests from supercomputers over those issued by individual quantum computer users, so as to avoid leaving supercomputers idle while a request waits in the queue. This high priority for quantum computing requests from a supercomputer is granted only for quantum-HPC hybrid jobs in which the quantum and HPC tasks are tightly coupled.

Overall configuration in which jobs are dispatched via the workflow engine, HPC job scheduler, and quantum computing request scheduler

The quantum computing request scheduler will also support user authorization, confirming that a request from a supercomputer comes from a legitimate user who holds usage rights for both the supercomputer and the quantum computer.

The communication libraries and interfaces needed for a supercomputer to communicate with the quantum computing request scheduler in order to request work from a quantum computer will also be developed in this project.

Porting Quantum Software Development Kits (SDKs) to Supercomputers

Another important mission of this project is porting quantum software development kits (SDKs) to supercomputers. Quantum SDKs such as Qiskit, Qibo, and cuQuantum provide various functions, including transpilers, circuit optimization, and error correction and mitigation for the results of quantum circuit execution, in addition to supporting the execution of quantum circuits on quantum computers. By porting these functions to supercomputers, we will enable existing quantum computer users to make easy use of the quantum-HPC hybrid platform. To this end, we will extend the RPC offloading software to enable integration with quantum SDKs.

Furthermore, as the number of qubits in quantum computers increases, these SDK functions are expected to require greater computational resources. By making use of supercomputers, we will make large-scale quantum circuit optimization, quantum circuit transpilation, and error correction and mitigation possible for future large-scale quantum computers and quantum circuits.

Project Members

RIKEN Center for Computational Science

Project Leader

Miwako Tsuji
Quantum-HPC Hybrid Platform Division Quantum-HPC Hybrid Software Environment Unit
Yikai Mao
Quantum-HPC Hybrid Platform Division Quantum-HPC Hybrid Software Environment Unit
Maxence Vandromme
Quantum-HPC Hybrid Platform Division Quantum-HPC Hybrid Software Environment Unit
Mitsuhisa Sato
Quantum-HPC Hybrid Platform Division
Soratouch Pornmaneerattanatri
Quantum-HPC Hybrid Platform Division Quantum-HPC Hybrid Software Environment Unit
Hidemoto Nakada
Quantum-HPC Hybrid Platform Division Quantum-HPC Hybrid Software Environment Unit
Tasuku Hiraishi
Quantum-HPC Hybrid Platform Division Quantum-HPC Hybrid Software Environment Unit
Tamiya Onodera
Quantum-HPC Hybrid Platform Division