Offloading server and offloading control method

The offload server automatically converts and offloads computational parts to quantum computers, addressing skill barriers and enabling general users to utilize quantum computers effectively.

WO2026094233A1PCT designated stage Publication Date: 2026-05-07NT T INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
NT T INC
Filing Date
2024-10-31
Publication Date
2026-05-07

AI Technical Summary

Technical Problem

Existing technologies face challenges in automatically offloading software processing to emerging hardware like quantum computers and DPUs due to high skill barriers and the need for specialized programming, making them inaccessible to general users.

Method used

An offload server and method that automatically identifies computational parts suitable for quantum computers, converts them to quantum-compatible code using frameworks like Qiskit, and offloads them to quantum computers for execution, while measuring performance and cost.

Benefits of technology

Enables general users to utilize quantum computers efficiently by automatically identifying and offloading computation parts, reducing the need for specialized knowledge and optimizing processing time and cost.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024038974_07052026_PF_FP_ABST
    Figure JP2024038974_07052026_PF_FP_ABST
Patent Text Reader

Abstract

An offloading server (100) comprises a code analysis unit (112) that analyzes source code for calculation portions of structures that can be executed by a quantum computer, a substitution function detection unit (113) that compares the calculation portions of the structures and information that is registered at a code pattern DB (131) to detect calculation portions that are suited to the quantum computer, a substitution processing unit (114) that substitutes quantum computer processing portions that have been implemented on an open-source framework, an execution file creation unit (115) that creates a quantum computer processing execution file (132) that is to be executed by quantum computer processing on the basis of the quantum computer processing portions, and a quantum computer processing execution unit (116).
Need to check novelty before this filing date? Find Prior Art

Description

Offload server and offload control method

[0001] This invention relates to an offload server and offload control method for offloading software processing programs, which are normally processed by a CPU (Central Processing Unit), to a quantum computer.

[0002] In recent years, Moore's Law, which was expected to accelerate CPU speeds, is predicted to slow down. In this context, the use of hardware such as GPUs and FPGAs in systems, in addition to CPUs, is increasing. For example, Amazon ("Amazon" is a registered trademark) offers GPU and FPGA servers as cloud instances. Microsoft ("Microsoft" is a registered trademark) is also working to improve the efficiency of Bing search using FPGAs. Furthermore, IoT devices are increasing in number, as are new hardware such as quantum computers and DPUs (Data Processing Units).

[0003] To speed up a system using hardware other than a standard CPU core count, it is essential to create and configure programs that take the characteristics of that hardware into account. This requires programming skills such as C language extensions like OpenMP (OpenMulti-Processing) (registered trademark), CUDA (Compute Unified Device Architecture) (registered trademark), and OpenCL (Open Computing Language) (registered trademark), which is a high hurdle for most programmers whose development is mainly done in scripting languages ​​such as Python (registered trademark) and Javascript (registered trademark).

[0004] Systems that utilize heterogeneous hardware such as GPUs, FPGAs, quantum computers, and DPUs, other than CPUs with a normal number of cores, are expected to reduce power consumption and are predicted to increase in the future. However, there are high skill barriers to their implementation. Therefore, in order to remove the skill barriers and enable the full utilization of hardware other than CPUs with a normal number of cores, a platform that can convert, configure, and adapt software written by a programmer with the same processing logic as a normal program to the target environment (GPU, FPGA, quantum computer, etc.) becomes important.

[0005] Therefore, the inventor has proposed environment-adaptive software that automatically performs conversions, resource settings, etc. for GPUs and FPGAs so that the described existing software code can be utilized on GPUs and FPGAs in the target environment, and enables the application to operate at high speed. At the same time, as elements of the environment-adaptive software, methods have been proposed to automatically offload loop statements and functional blocks of the code of existing software to GPUs and FPGAs, and to reconfigure the offloaded processing according to changes in the operating situation (Non-Patent Documents 1 and 2).

[0006] A quantum computer is a computer that applies the principles of quantum mechanics to computing. D-wave, etc. use the quantum annealing method, but the development of quantum computers using the more general-purpose quantum gate method has become mainstream, and many companies such as Amazon, Microsoft, Google (Google is a registered trademark), and IBM (IBM is a registered trademark) are working on it. Amazon Braket and Azure Quantum (Azure is a registered trademark) are provided as part of Amazon's AWS cloud and Microsoft's Azure cloud, respectively, and are available for time-based use as a cloud. By using these quantum computer clouds, the initial hardware cost of the quantum computer itself is not required (Non-Patent Document 3).

[0007] However, in reality, quantum algorithms for solving NP (Non-deterministic Polynomial) problems such as the Traveling Salesperson Problem and prime factorization using quantum computers are researched and devised one by one by experts, making them difficult for laypeople to use. A DPU is a programmable computer processor that tightly integrates a general-purpose CPU and network interface hardware, such as NVIDIA's BlueField. DPUs are used as a replacement for conventional NICs (Network Interface Cards) and are used to offload complex network processing and other infrastructure processing from the main CPU.

[0008] Y. Yamato, "Study and Evaluation of Improved Automatic GPU Offloading Method," International Journal of Parallel, Emergent and Distributed Systems, Taylor and Francis, DOI: 10.1080 / 17445760.2021.1941010, June 2021.Y. Yamato, "Automatic Offloading Method of Loop Statements of Software to FPGA," International Journal of Parallel, Emergent and Distributed Systems, Taylor and Francis, DOI: 10.1080 / 17445760.2021.1916020, Apr. 2021. M. Mykhailova, "Teaching Quantum Computing using Microsoft Quantum Development Kit and Azure Quantum." 2023 IEEE International Conference on Quantum Computing and Engineering (QCE), Vol. 3. 2023.

[0009] However, verification using the technologies described in Non-Patent Documents 1 and 2 has so far mainly focused on conversion, configuration, and reconstruction using existing accelerators such as GPUs and FPGAs, and automatic offloading to newly emerging hardware such as quantum computers and DPUs has not been considered. For example, quantum computers are currently offered by numerous companies such as D-Wave, Amazon, Microsoft, and IBM, and are being applied to NP (Non-deterministic Polynomial) problems. Some companies, such as Amazon and Microsoft, offer time-based rentals of quantum computers via the cloud, making them accessible without enormous initial costs.

[0010] In view of these points, the present invention has been made, and its objective is to provide an offload server and an offload control method for processing computation parts suitable for quantum computers using a quantum computer.

[0011] To solve the aforementioned problems, the offload server is characterized by comprising: a storage unit that registers the code of the computation part suitable for a quantum computer and stores in a database the processing part for using the quantum computer with the quantum algorithm corresponding to that code; a code analysis unit that performs syntactic analysis of the source code of a software program and analyzes the computation part of a structure that can be executed by the quantum computer from the source code; a replacement function detection unit that compares the computation part of the structure detected by the code analysis unit with the information registered in the storage unit to detect the computation part suitable for a quantum computer; a replacement processing unit that reads the computation processing part suitable for a quantum computer detected by the replacement function detection unit from the storage unit and replaces it with a quantum computer processing part implemented with an open-source framework; an executable file creation unit that creates a quantum computer processing executable file to be executed by quantum computer processing based on the quantum computer processing part replaced by the replacement processing unit; and a quantum computer processing execution unit that offloads the created quantum computer processing executable file to the quantum computer.

[0012] According to the present invention, it is possible to provide an offload server and an offload control method for processing computational parts suitable for quantum computers using a quantum computer.

[0013] This figure shows an example configuration of a network system equipped with an offload server according to an embodiment of the present invention. This is a functional block diagram showing an example configuration of an offload server according to an embodiment of the present invention. This is a hardware configuration diagram showing an example of a computer that realizes the functions of the offload server according to an embodiment of the present invention. This figure illustrates the offloading process to a quantum computer by the offload server according to an embodiment of the present invention. This is a flowchart showing the code pattern DB construction process of the control unit of the offload server according to an embodiment of the present invention. This is a flowchart showing the offloading process to a quantum computer when the control unit of the offload server according to an embodiment of the present invention operates as an environment adaptation function unit. This figure shows a table of the specifications of the verification machine, client PC, and quantum computer in the evaluation environment of Figure 1. This figure shows the quantum computer processing time when the eigenvalue analysis problem of the offload server according to an embodiment of the present invention is offloaded to Azure Quantum.

[0014] The following describes an offload server in an embodiment of the present invention (hereinafter referred to as "this embodiment") with reference to the drawings. This embodiment proposes an automatic offloading method that can be applied to new hardware such as quantum computers and DPUs.

[0015] [Network System] Figure 1 shows an example of the configuration of a network system equipped with an offload server according to an embodiment of the present invention. As shown in Figure 1, the network system 1 includes a client PC 2 (client), a network 3, the Internet 4, a quantum computer 5 located on an external cloud 6 via the Internet 4, an offload server 100, and a verification machine 10. The placement of the offload server 100 or the verification machine 10 is not limited and may be placed anywhere on the network 3. The verification machine 10 may also be located within the offload server 100 (Figure 2), or conversely, the verification machine 10 may have the offload server 100. The client PC 2 executes a user application 2a. The client PC 2 is connected to the network 3 and can communicate with the quantum computer 5 on the external cloud 6 via the Internet 4. The client PC 2 can execute applications such as the traveling salesman problem on the quantum computer 5 on the external cloud 6. The network 3 may be a wired LAN (Local Area Network), wireless LAN, LPWA (Low Power Wide Area), 4G, 5G, etc. Quantum computers 5 are being developed for application to NP problems. External cloud 6 is, for example, Azure Cloud.

[0016] <Quantum Computer 5> Quantum computers 5 are computers that apply the principles of quantum mechanics to computation, and are offered by numerous companies such as D-Wave, Amazon, Microsoft, and IBM. While D-Wave and others use the quantum annealing method, the development of quantum computers using the more versatile quantum gate method is becoming mainstream, and many companies such as Amazon, Microsoft, Google, and IBM are working on this.

[0017] Quantum computers include Amazon Braket and Azure Quantum. Amazon Braket and Azure Quantum are offered as part of Amazon's AWS cloud and Microsoft's Azure cloud, respectively. Quantum computers are available for use as cloud services from companies like Amazon and Microsoft, eliminating the need for initial hardware costs for the quantum computer itself.

[0018] Quantum computer V is well-suited for calculations such as the traveling salesman problem, the knapsack problem, and prime factorization, leveraging the parallelism of quantum mechanics. However, in reality, quantum algorithms for solving NP problems like the traveling salesman problem and prime factorization using quantum computer V are being researched and devised one by one by experts, making them difficult for laypeople to use.

[0019] <DPU> A DPU is a programmable computer processor that tightly integrates a general-purpose CPU and network interface hardware. NVIDIA's BlueField is a well-known example of a DPU. DPUs are used as replacements for traditional NICs and are utilized to offload complex network processing and other infrastructure processing tasks from the main CPU.

[0020] [Offload Server 100] Figure 2 is a functional block diagram showing an example configuration of the offload server 100. Figure 2 shows an example configuration in which the offload server 100 has a verification machine 10. The offload server 100 is an environment-adaptive device that automatically offloads specific processing of an application to accelerators such as quantum computers, GPUs, FPGAs, and multi-core CPUs. As shown in Figure 2, the offload server 100 is composed of a control unit 110 (environment-adaptive function unit), an input / output unit 12, a storage unit 13, and a verification machine 10.

[0021] The input / output unit 12 consists of a communication interface 950 (Figure 3) for sending and receiving information with each device, and an input / output interface 960 (Figure 3) for sending and receiving information with input devices such as touch panels and keyboards, and output devices such as monitors.

[0022] The storage unit 13 is composed of a hard disk, flash memory, RAM (Random Access Memory), etc. The storage unit 13 stores a code pattern database (DB) 131 (the "storage unit" in the claim), as well as programs (offload programs) for executing each function of the control unit 11, and information necessary for processing by the control unit 11, such as a quantum computer processing file 132 (described later), which are temporarily stored in this storage unit 13.

[0023] The verification machine 10 is equipped with accelerators such as a GPU, FPGA, or multi-core CPU to serve as a verification environment for environment-adaptive software.

[0024] <Code Pattern DB131> Code Pattern DB131 registers (stores) codes for computational parts suitable for quantum computers (for example, computational parts that handle the traveling salesman problem, the knapsack problem, prime factorization, etc.), and also stores in a database the processing parts (equivalent to libraries) for using quantum computers with the quantum algorithms corresponding to those codes.

[0025] <Quantum Computer Processing File 132> The quantum computer processing file 132 is an executable file to be executed by quantum computer processing and is implemented as quantum computer processing corresponding to the application code (Qiskit, Cirq, etc.).

[0026] <Control Unit 110> The control unit 110 is an automatic offloading function that controls the entire offload server 100. The control unit 110 is realized, for example, when an application program (offload program) stored in the memory unit 13 is loaded into RAM and executed by a CPU (Central Processing Unit) (not shown).

[0027] The control unit 110 includes a code specification unit 111, a code analysis unit 112, a replacement function detection unit 113, a replacement processing unit 114, an executable file creation unit 115, a quantum computer processing execution unit 116, a performance measurement unit 117, and a user provision unit 118.

[0028] <Code Specification Unit 111> The code specification unit 111 specifies the input source code (for example, source code in C, Java, or Python). Specifically, the code specification unit 111 passes the source code written in the received file to the code analysis unit 112 as a matching application code.

[0029] <Code Analysis Unit 112> Performs syntactic analysis of the source code of a software program and analyzes the computational parts of structures that can be executed by a quantum computer (for example, computational parts of classes, structures, etc.) from the source code ("Discovery of Computational Parts"). Specifically, the Code Analysis Unit 112 uses Clang, Java Parser, Lark, etc. The computational parts of classes, structures, etc. detected by the Code Analysis Unit 112 are executable by quantum computers, etc.

[0030] <Substitution Function Detection Unit 113> The substitution function detection unit 113 compares the computational parts such as classes and structures analyzed by the code analysis unit 112 with the information registered in the code pattern DB 131 to detect computational parts suitable for a quantum computer. Specifically, the substitution function detection unit 113 uses a similarity detection tool to detect whether there are quantum algorithms that can be offloaded to the computational parts such as classes and structures detected by the code analysis unit 112.

[0031] Similarity detection tools, such as Deckarrd and CloneDigger, enable the detection of similar code, such as code that has been copied and modified. Similarity detection uses methods such as abstract syntax trees, vocabulary, lines, program dependency graphs, and fingerprints. For example, Deckarrd uses abstract syntax trees to analyze Java and C language code. In many cases, it is thought that a computational part suitable for quantum computing cannot be found. In such cases, one can proceed to acceleration using evolutionary computation methods on GPUs and other hardware in a verification environment.

[0032] <Substitution Processing Unit 114> The substitution processing unit 114 reads the processing part (equivalent to a library) suitable for quantum computing from the code pattern DB 131 and replaces it with the quantum computing processing part (number and type of arguments and return values ​​expected by the host program) implemented with an open-source framework ("quantum computing processing"). If the substitution processing unit 114 finds a computation part suitable for quantum computing, it replaces the corresponding part of the user program with the processing part registered in the code pattern DB 131 and associated with it, implemented with Qiskit.

[0033] <Executable file creation unit 115> The executable file creation unit 115 creates a quantum computer processing executable file 132 (Figure 2) to be executed by quantum computer processing, based on the quantum computer processing portion replaced by the replacement processing unit 114.

[0034] <Quantum Computer Processing Execution Unit 116> The quantum computer processing execution unit 116 performs a verification test to offload the quantum computer processing execution file 132 created by the execution file creation unit 115 to the quantum computer 5.

[0035] <Performance Measurement Unit 117> The performance measurement unit 117 measures the total processing time and the quantum computer-side processing time when the processing is offloaded to the quantum computer 5.

[0036] <User Provision Unit 118> The user provision unit 118 presents the user with information such as price and performance based on the performance test results ("Provision of Price and Performance Information to the User").

[0037] Figure 3 is a hardware configuration diagram showing an example of a computer that implements the functions of the offload server 100. The computer 900 has a CPU 910, RAM 920, ROM 930, HDD 940, communication interface 950, input / output interface 960, and media interface 970.

[0038] The CPU 910 operates based on programs stored in the ROM 930 or HDD 940, and controls various parts. The ROM 930 stores boot programs executed by the CPU 910 when the computer 900 starts up, as well as programs that depend on the computer 900's hardware.

[0039] The HDD 940 stores programs executed by the CPU 910, as well as data used by such programs. The communication interface 950 receives data from other devices via the communication network 80 and sends it to the CPU 910, and transmits data generated by the CPU 910 to other devices via the communication network 80.

[0040] The CPU 910 controls output devices such as displays and printers, and input devices such as keyboards and mice, via the input / output interface 960. The CPU 910 acquires data from input devices via the input / output interface 960. The CPU 910 also outputs the generated data to output devices via the input / output interface 960.

[0041] The media interface 970 reads the program or data stored in the recording medium 980 and provides it to the CPU 910 via the RAM 920. The CPU 910 loads such a program from the recording medium 980 onto the RAM 920 via the media interface 970 and executes the loaded program. The recording medium 980 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc), a magneto-optical recording medium such as a MO (Magneto Opticaldisk), a tape medium, a magnetic recording medium, or a semiconductor memory, etc.

[0042] For example, when the computer 900 functions as the offload server 100 according to the present embodiment, the CPU 910 of the computer 900 realizes the functions of each part of the offload server 100 by executing the program loaded on the RAM 920. Also, the HDD 940 stores the data within each part of the offload server 100. The CPU 910 of the computer 900 reads and executes these programs from the recording medium 980, but as another example, these programs may be acquired from other devices via the communication network 80.

[0043] Hereinafter, the automatic offload operation of the offload server 100 configured as described above will be described.

[0044] <Quantum Computer Characteristics and Basic Considerations> Since a quantum computer exhibits quantum effects, it is almost essential to cool it to a low temperature using a dilution refrigerator, and it requires more than 100 million yen if purchased privately. To use a quantum computer without incurring initial costs, it is conceivable to use a quantum computer provided as a cloud such as Amazon Braket or Azure Quantum.

[0045] For example, in the case of performance computing in Azure Quantum, the price is about 90 US dollars per hour. Therefore, even if there is no initial cost for using these cloud-based quantum computers, the price per hour is higher compared to a VM (Verification machine) equipped with ordinary CPUs or GPUs. For GPUs and FPGAs, an evolutionary computing method is used to gradually find faster patterns through repeated tests in the verification environment. However, since it is costly to occupy a quantum computer for a long time for verification, when offloading to a quantum computer, it is required to offload only the effective calculations once without repeated tests.

[0046] Consider offloading calculations that are effective for quantum computers. In the case of a quantum computer using the quantum gate method, it is said that NP problems with a huge number of combinations such as the traveling salesman problem, the knapsack problem, and prime factorization can be solved much faster compared to ordinary CPUs, and experts who understand quantum mechanics are designing quantum algorithms suitable for each problem.

[0047] The present invention automatically offloads by discovering the computationally effective part in the code that the user wants to offload and using a cloud quantum computer according to the quantum algorithm devised by experts for that computational part. The present invention targets quantum computers in particular among automatic offloads to new hardware. It aims for a general-purpose method applicable to new hardware such as DPUs that accelerate specific processing.

[0048] Quantum computer algorithms such as how to solve the traveling salesman problem on a quantum computer are outside the target of the present invention, and the target of the present invention is to find and replace problems suitable for quantum computers such as the traveling salesman problem.

[0049] [Offloading to a Quantum Computer] Figure 4 illustrates the offloading process to a quantum computer. The control unit 110 (environmental adaptation function unit) analyzes the existing application to be offloaded, discovers specific computational processes such as the traveling salesman problem as suitable for a quantum computer ("discovery of suitable computational parts for offloading"), and realizes automatic offloading by replacing those parts with processes that utilize a quantum computer ("quantum computer processing").

[0050] First, let's discuss "discovering suitable computational components for off-road use." This can be further divided into A. discovery of computational components and B. discovery of computational components suitable for quantum computing. These will be explained in order below.

[0051] <Discovering suitable calculation parts for off-road use> A. The calculation part discovery control unit 110 (environmental adaptation function unit) performs syntactic analysis of the code provided by the user (step S11 "1. Code Analysis" in Figure 4) and detects calculation parts such as classes and structures from the source code. The type of problem is unknown without actually looking at the contents, such as the Traveling Salesperson Problem, but the calculation part is detected first.

[0052] B. Discovery of computational parts suitable for quantum computers In advance, code for processing problems such as the traveling salesman problem, the knapsack problem, and prime factorization, which are suitable computational parts for quantum computers, is stored in code pattern DB131 (Figure 2). Furthermore, the processing part (equivalent to a library) for using the quantum computer 5 with the quantum algorithm corresponding to that code is also stored in code pattern DB131.

[0053] The information registered in the code pattern DB131 is compared to detect the computation part suitable for a quantum computer (Step S12 in Figure 4, "2. Searching for the computation part suitable for a quantum computer"). A. For the computation part such as a class or structure detected in the computation part discovery, a similarity detection tool is used to detect whether there is a quantum algorithm that can be offloaded.

[0054] The tool determines the degree of similarity between computational parts suitable for quantum computer 5, registered in code pattern DB131, using thresholds and other tools. Since it is clear that similarity detection does not cover 100% of the data, the application of deep learning recognition and other artificial intelligence processing techniques is considered as a future application. However, even with artificial intelligence processing, it is difficult to make a machine understand the intent of the code; therefore, newly created classes, structures, etc., will not be subject to offloading to the quantum computer.

[0055] If a computational part suitable for quantum computer 5 is discovered, the processing part (equivalent to a library) for using quantum computer 5 with the corresponding quantum algorithm, which is registered in code pattern DB131, will be offloaded to quantum computer 5. This concludes section B. Discovery of computational parts suitable for quantum computers.

[0056] <Quantum Computer Processing> Next, we will explain quantum computer processing. For computational parts such as classes and structures, a search is performed to determine if the computation is suitable for a quantum computer. If it is suitable, the processing part (equivalent to a library) is replaced on the host side and implemented. Since quantum computers differ from one development company to another, it is basically necessary to implement the processing using the tools provided by each company. However, there are frameworks that can be used in common by each company. Qiskit is a quantum computer framework open-sourced by IBM. Cirq is a quantum computer framework open-sourced by Google. Furthermore, Q# is a quantum computer programming language proposed by Microsoft.

[0057] This section describes an example of using a similarity detection tool and quantum computer processing. For example, given a user application that includes the Traveling Salesperson Problem, Deckard (a similarity detection tool) is used to discover a quantum algorithm implemented with Qiskit (a framework) from the code pattern DB 131 (Figure 2). The control unit 110 (environmental adaptation function unit) outputs a quantum computer processing file using Qiskit (Step S13 "3. Output of Quantum Computer Processing File" in Figure 4). The control unit 110 offloads processing for a specific computation part to the quantum computer 5 in the external cloud 6 (Step S14 "4. Deployment and Performance Measurement" in Figure 4).

[0058] Here, in order to find the part of the computation that will be processed by the quantum computer (equivalent to a library) for a specific computational part, it is necessary to generate an interface part, etc. Also, since the suitability of the computation for quantum computing is determined by similarity, there is no guarantee that the number and types of arguments and return values ​​expected by the Qiskit implementation and the host program will match. If the number and types of expected arguments and return values ​​do not match, since the quantum algorithm implementation cannot be changed frequently, the user requesting offloading will be asked to confirm whether they will change the number and types of arguments and return values ​​in the original code to match the quantum computer processing part, and after confirmation and approval, an offload verification test will be attempted.

[0059] If the type difference can be resolved simply by casting between float and double, then verification testing can proceed without specific user confirmation. Also, if the number of arguments or return values ​​differs between the original program and the quantum computer processing part (for example, if arguments 1 and 2 are required and argument 3 is optional in the CPU program, and arguments 1 and 2 are required in the quantum computer processing part), and it is acceptable to omit them without causing problems, then optional arguments may be automatically treated as none without user confirmation.

[0060] In this way, the control unit 110 of the offload server 100 detects computational parts suitable for quantum computers from the code that the user requests to be offloaded, using similarity detection technology (similarity detection tool), and replaces them with quantum computer processing parts implemented with an open-source framework (replaced with Qiskit), thereby automatically offloading to the quantum computer. This makes it possible for general users to use quantum computers.

[0061] [Flowchart] Figure 5A is a flowchart showing the process of constructing the code pattern DB 131 of the control unit 110. Figure 5B is a flowchart showing the offloading process to the quantum computer when the control unit 110 operates as an environment adaptation function unit. In step S20 shown in Figure 5A, the control unit 110 registers the code for the calculation part suitable for the quantum computer and pre-constructs the code pattern DB 131, which is a database of the processing part for using the quantum computer with the quantum algorithm corresponding to that code.

[0062] In step S21 shown in Figure 5B, the code specification unit 111 specifies the input source code (for example, source code in C, Java, or Python). Specifically, the code specification unit 111 passes the source code described in the received file to the code analysis unit 112 as a matching application code.

[0063] In step S22, the code analysis unit 112 performs syntactic analysis of the source code of the software program and analyzes the computational parts such as classes and structures from the source code ("discovery of computational parts"). Specifically, the code analysis unit uses Clang, Java Parser, Lark, etc. The computational parts such as classes and structures detected by the code analysis unit 112 are executable by a quantum computer or the like.

[0064] In step S23, the substitution function detection unit 113 compares the computational parts such as classes and structures analyzed by the code analysis unit 112 with the information registered in the code pattern DB 131 to detect computational parts suitable for a quantum computer. Specifically, the substitution function detection unit 113 uses a similarity detection tool to detect whether there are quantum algorithms that can be offloaded to the computational parts such as classes and structures analyzed by the code analysis unit 112.

[0065] In step S24, the substitution processing unit 114 reads the processing part (equivalent to a library) suitable for quantum computing from the code pattern DB 131 and replaces it with the quantum computing processing part (number and type of arguments and return values ​​expected by the host program) implemented with an open-source framework ("quantum computing processing"). If the substitution processing unit 114 finds a computation part suitable for quantum computing, it replaces the corresponding part of the user program with the processing part registered in the code pattern DB 131 and associated with it, implemented with Qiskit.

[0066] In step S25, the executable file creation unit 115 creates a quantum computer processing executable file 132 (Figure 2) to be executed by the quantum computer processing based on the quantum computer processing portion replaced by the replacement processing unit 114.

[0067] In step S26, the quantum computer processing execution unit 116 performs a verification test to offload processing to the quantum computer 5.

[0068] In step S27, the performance measurement unit 117 measures the total processing time and the quantum computer-side processing time when the processing is offloaded to the quantum computer 5.

[0069] In step S28, the user provision unit 118 presents the user with information such as price and performance based on the performance test results ("Provision of price and performance information to the user") and terminates the processing of this flow.

[0070] [Implementation] This section describes the implementation to verify the effectiveness of the proposed technology.

[0071] <Tools Used> To verify the effectiveness of quantum computer offloading, the target applications will be those written in C / C++ and Python, which are numerous in number. For C / C++ parsing, the LLVM / Clang 6.0 parsing library (libClang's Python binding) will be used. For Python parsing, Lark will be used.

[0072] For the similarity detection tool, Deckard v2.0 is used for C / C++ languages. Deckard targets the computational portion of existing code that has been modified for the purpose of quantum computer offloading of specific computational parts, and determines the abstract syntax tree similarity of the code registered in the code pattern DB131 (Figure 2) using a threshold. CloneDigger is used for Python.

[0073] The code pattern DB131 used for matching stores data using MySQL 8. The code pattern DB131 holds not only the code for the computation part used for matching, but also the Qiskit framework implementation part of the quantum computer processing unit associated with it.

[0074] The quantum computing framework used is Qiskit SDK v1.1.2, which is part of Qiskit, open-sourced by IBM.

[0075] Quantum Computer 5 (Figures 2 and 4) utilizes Azure Quantum, a quantum gate-based computing service, as a function of the Microsoft Azure cloud service. However, the cost of using Quantum Computer 5, even on a time-based cloud usage basis, is considerable. Therefore, repeated use of Quantum Computer 5 during the verification phase would be burdensome for users, and evolutionary computation methods cannot be used. The implementation will be done in Python 3.

[0076] <Implementation Operation> The implementation will perform the following processing operations: ・Preparation As preparation, the matching code and the quantum computer utilization part will be registered in the MySQL code pattern DB131 (Figure 2). The matching code will be C / C++ or Python code describing the Traveling Salesperson Problem, the Knapsack Problem, etc. The quantum computer utilization part will be a processing part implemented in Qiskit using the corresponding quantum algorithm. These matching codes and quantum computer utilization parts will be prepared in advance by the cloud service provider or other service provider.

[0077] • Code Reception and Syntax Analysis First, the offload server 100 (Figures 1 and 2) receives the application code that the user wants offloaded. The application is in C / C++ or Python. Depending on the language used, Clang is used for C / C++ and Lark for Python for syntax analysis. Syntax analysis identifies units of computation, such as classes and structures.

[0078] - Similarity Detection Next, Deckard is used to detect whether there are any quantum algorithms that can be offloaded to the computational parts of the detected classes, structures, etc. Since differences in parameter values ​​do not affect the abstract syntax tree, the search is performed with a similarity threshold of 95% for the abstract syntax tree. If nothing is found at this stage, the techniques described in Non-Patent Documents 1 and 2 can be used to attempt to speed up the process by offloading to a GPU or the like.

[0079] - If a computational portion suitable for the replacement quantum computer 5 (Figure 1) is found in the user program, the processing portion implemented in Qiskit and associated with it, which is registered in the code pattern DB 131, is replaced and implemented in the user program. Since the quantum computer 5 to be used is determined to be Azure Quantum, in addition to the Qiskit processing portion, the Azure Quantum address information is also obtained from the code pattern DB 131 and set in the user program.

[0080] If there is a discrepancy between the Qiskit implementation and the host program's expected number and types of arguments and return values, the user will be asked to confirm whether they want to modify the original code's arguments and return values ​​to match the quantum computer processing part. If the type difference can be resolved simply by casting between float and double, then user confirmation is not necessary.

[0081] Once the parameters for offloading processing to the quantum computer are configured, a verification test is performed to confirm that processing is offloaded to the quantum computer, and the total processing time and the processing time on the quantum computer side are measured. The measurement results and the usage fee (the sum of the hourly price of the host VM and the hourly price of the Azure Quantum quantum computer) are presented to the user, and if the user agrees, the actual service will start.

[0082] [Evaluation] The effectiveness of this embodiment will be evaluated. The evaluation will focus on confirming that automatic processing offloading from a user-specified application to a quantum computer is possible and that the quantum computer processing time is appropriate.

[0083] <Evaluation Criteria> The evaluation target will be eigenvalue analysis problems. There is no computational procedure that can exactly represent eigenvalues ​​in a matrix of higher-order real or complex numbers using a finite number of algebraic operations. Therefore, it has been conventional to use iterative methods for the numerical analysis of eigenvalue problems. The quantum superposition properties of quantum computers allow for speedup. The essence of the problem is to find the eigenvalues ​​of the accompanying matrix of a general n-th order algebraic equation, and each problem differs in its parameters. The "eigenvalue analysis problems" used will be those with Qiskit implementations. Since Qiskit implementations are available using quantum algorithms, solutions using quantum computers are also possible (Eigenvalue Solver website, https: / / learning.quantum.ibm.com / course / variational-algorithm-design / instances-and-extensions). Here, quantum algorithms are also being studied for solving NP problems such as the knapsack problem and prime factorization using quantum computers. Eigenvalue analysis problems, which are general-purpose problems with wide applications for general users, will be targeted for offloading.

[0084] - Evaluation Method: A user is assumed to request the offloading of an application that includes an eigenvalue analysis problem. Upon receiving the request, the service provider's platform analyzes the application, searches for the offloaded calculation portion using a similarity detection tool, and if found, replaces it with the quantum computer-based portion and offloads it to the quantum computer. The processing time during the offloaded process is measured, and the measurement results and usage price are presented to the user. The experimental conditions are as follows.

[0085] Offloaded computation part: A predetermined eigenvalue analysis problem Offload destination: Azure Quantum Offloaded computation part discovery method: The computation part included in the application code is compared with the code included in code pattern DB131 using the similarity detection tool Deckard. Performance measurement: The sample parameters of the predetermined eigenvalue analysis problem are kept the same, and the processing time on the quantum computer is measured. For small sizes, the calculation can be completed in a realistic time even on a normal CPU, but for large sizes, the calculation cannot be completed. In this evaluation, in order to confirm quantum computer offloading, measurements for large sizes that cannot be completed even on a normal CPU are not performed.

[0086] Figure 6 of the evaluation environment is a table showing the specifications of the verification machine, client PC, and quantum computer in the evaluation environment shown in Figure 1. Figure 6 shows the hardware, CPU, RAM, and OS specifications of the verification machine ("Verification machine") 10, client PCs ("Client note PC") 2, and quantum computer ("Quantum Computer") 5 shown in Figure 1. The quantum computer ("Quantum Computer") 5 is Azure Quantum on the external cloud 6 (Figure 1).

[0087] The user of the client PC 2 using the verification machine 10 specifies the application to be offloaded, and the verification machine 10 uses Deckard (similarity detection tool) to compare and search against a database (not shown) on the same node. When offloading, the control unit 110 (environmental adaptation function unit) (Figures 2 and 4) obtains a Qiskit implementation for quantum computers and offloads the processing by requesting processing from Azure Quantum (quantum computer 5) on the Azure cloud (external cloud 6) via the Internet 4. The offload processing and overall processing time are measured by the Verification machine (verification machine 10).

[0088] • Results and Discussion Figure 7 shows the quantum computer processing time when the above eigenvalue analysis problem (application name: Eigenvalue Solver) was offloaded to Azure Quantum. Due to the parallelism of quantum computers, it was expected that the eigenvalue analysis problem would be completed in a short time even if its size increased, and indeed, as shown in Figure 7, the processing time was completed in 15.7 seconds. The time up to offloading itself is completed in seconds, from the user request to Deckard search and replacement of the Qiskit implementation, so there is no waiting time for the user.

[0089] The techniques described in Non-Patent Documents 1 and 2, which involve offloading loop statements to GPUs and FPGAs, utilize a method of measuring the performance of multiple offload patterns in a verification environment and selecting the fastest pattern. For example, even in large-scale applications like Darknet, which have over 100 for loops, automatic offloading to the GPU has resulted in a threefold speedup. However, there are numerous examples where manual development using CUDA for GPUs and HDL (Hardware Description Language) for FPGAs has resulted in more than a tenfold performance improvement, and in some cases, the performance improvement was insufficient.

[0090] In this embodiment, by offloading the computation part adapted for quantum computers to the quantum computer using Qiskit, we can process problems such as the Traveling Salesperson Problem, which become unsolvable by existing CPUs when they become large.

[0091] <Summary> When the control unit 110 of the offload server 100 receives an application to be offloaded by the user, it searches for a suitable computation process to be offloaded to the quantum computer 5. The search uses the similarity of an abstract syntax tree, specifically Deckard. The code pattern DB 131, which is matched by Deckard, contains codes for computation processes suitable for the quantum computer 5 and corresponding Qiskit modules for quantum computer processing. When a suitable computation process portion for the quantum computer 5 is found using the similarity of the abstract syntax tree, it is replaced with the corresponding Qiskit module. This makes it possible to use the quantum computer 5. In this embodiment, the computation process to be offloaded was the Traveling Salesperson Problem, the offload destination was Azure Quantum, and the offload computation process was actually found using Deckard, replaced with Qiskit, and the processing was offloaded to Azure Quantum. The total processing time was approximately 15 seconds, and the effectiveness was confirmed.

[0092] [Effects] As described above, the offload server 100 (Figure 1) according to the embodiment includes a storage unit (code pattern DB 131) (Figure 2) that registers the code of the computation part suitable for the quantum computer 5 (Figures 2 and 4) and stores in a database the processing part for using the quantum computer with the quantum algorithm corresponding to that code; a code analysis unit 112 (Figure 2) that performs syntactic analysis of the source code of the software program and analyzes the computation part of the structure that can be executed by the quantum computer 5 from the source code; and a code analysis unit 112 (Figure 2) that compares the computation part of the structure analyzed by the code analysis unit 112 with the information registered in the storage unit (code pattern DB 131) to perform calculations on the quantum computer The system includes a replacement function detection unit 113 (Figure 2) that detects a computation portion suitable for quantum computer 5, a replacement processing unit 114 (Figure 2) that reads the computation processing portion suitable for quantum computer 5 detected by the replacement function detection unit 113 from a storage unit (code pattern DB 131) and replaces it with a quantum computer processing portion implemented with an open-source framework, an executable file creation unit 115 that creates a quantum computer processing executable file 132 (Figure 2) to be executed by quantum computer processing based on the quantum computer processing portion replaced by the replacement processing unit 114, and a quantum computer processing execution unit 116 that offloads the created quantum computer processing executable file 132 to quantum computer 5.

[0093] In this way, the offload server 100 can automatically offload computational parts suitable for the quantum computer 5 to the quantum computer 5 for processing, allowing users to utilize the quantum computer even without specialized knowledge. More specifically, conventionally, there have been very few efforts to automatically offload existing code. In particular, while frameworks that can be used with quantum computers from multiple companies have emerged, they require consideration of quantum algorithms and are not easily accessible to general users. In this embodiment, by analyzing the user application, finding computational parts suitable for the quantum computer, and replacing them with Qiskit, even general users can utilize the quantum computer. For example, problems that become unsolvable on a normal CPU machine due to their size, such as the traveling salesman problem, the knapsack problem, and prime factorization, can be processed by offloading them to the quantum computer, thus increasing the number of solvable problems.

[0094] The offload server 100 (Figure 1) is characterized by detecting the computation portion to be processed by the quantum computer 5 based on an abstract syntax tree, vocabulary, line, program dependency graph, or fingerprint similarity threshold.

[0095] By doing so, the substitution function detection unit 113 (Figure 2) of the control unit 110 can detect code with different parameters or slight modifications through similarity detection such as abstract syntax trees.

[0096] The offload server 100 (Figure 1) further includes a performance measurement unit 117 (Figure 2) that measures the total processing time and the processing time on the quantum computer side when processing is offloaded to the quantum computer 5, and a user provision unit 118 (Figure 2) that presents price and performance information to the user based on the performance test results.

[0097] In this way, once the parameter setting is complete, the substitution function detection unit 113 (Figure 2) of the control unit 110 performs a verification test to offload processing to the quantum computer, and the total processing time and the quantum computer processing time are measured. The measurement results and usage fees (hourly price of the host VM + hourly price of the Azure Quantum quantum computer) are presented to the user, allowing the user to confirm the cost-effectiveness of using the quantum computer.

[0098] Furthermore, the Qiskit used in this embodiment can be used with quantum computers other than Azure Quantum. In addition, this method of finding and offloading specific processing can be applied not only to quantum computers but also to new hardware such as DPUs.

[0099] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified. Moreover, each component of each illustrated device is a functional concept and does not necessarily have to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.

[0100] Furthermore, each of the above configurations, functions, processing units, and processing means may be implemented in hardware, either partially or entirely, by designing them as integrated circuits, for example. Alternatively, each of the above configurations and functions may be implemented in software for the processor to interpret and execute programs that realize each function. Information such as programs, tables, and files that realize each function can be stored in memory, a recording device such as a hard disk or SSD (Solid State Drive), or a recording medium such as an IC (Integrated Circuit) card, an SD (Secure Digital) card, or an optical disc.

[0101] 1 Network System 2a User Application 2 Client PC (Client) 3 Network 4 Internet 5 Quantum Computer 6 External Cloud 10 Verification Machine 12 Input / Output Unit 13 Storage Unit 100 Offload Server 110 Control Unit (Environmental Adaptation Function Unit) 111 Code Specification Unit 112 Code Analysis Unit 113 Replacement Function Detection Unit 114 Replacement Processing Unit 115 Executable File Creation Unit 116 Quantum Computer Processing Execution Unit 117 Performance Measurement Unit 118 User Provision Unit 131 Code Pattern DB (Storage Unit) 132 Quantum Computer Processing File

Claims

1. An offload server comprising: a storage unit that registers the code of computational parts suitable for a quantum computer and stores in a database the processing parts for using the quantum computer with the quantum algorithm corresponding to the code; a code analysis unit that performs syntactic analysis of the source code of a software program and analyzes the computational parts of a structure that can be executed by the quantum computer from the source code; a replacement function detection unit that compares the computational parts of the structure analyzed by the code analysis unit with the information registered in the storage unit to detect computational parts suitable for the quantum computer; a replacement processing unit that reads the computational processing parts suitable for the quantum computer detected by the replacement function detection unit from the storage unit and replaces them with quantum computer processing parts implemented with an open-source framework; an executable file creation unit that creates a quantum computer processing executable file to be executed by quantum computer processing based on the quantum computer processing parts replaced by the replacement processing unit; and a quantum computer processing execution unit that offloads the created quantum computer processing executable file to the quantum computer.

2. The offload server according to claim 1, characterized in that the substitution function detection unit detects the computation portion to be processed by the quantum computer based on an abstract syntax tree, vocabulary, line, program dependency graph, or fingerprint similarity threshold.

3. The offload server according to claim 1, further comprising: a performance measurement unit that measures the total processing time and the processing time on the quantum computer side when processing is offloaded to the quantum computer; and a user provision unit that presents price and performance information to the user based on the performance test results.

4. Offload control method for an offload server, wherein the offload server includes a storage unit that registers code for computational parts suitable for a quantum computer and stores a database of processing parts for using the quantum computer with the quantum algorithm corresponding to the code, and the offload control method is characterized by performing the following steps: parsing the source code of a software program and analyzing the computational parts of a structure that can be executed by the quantum computer from the source code; comparing the computational parts of the analyzed structure with the information registered in the storage unit to detect computational parts suitable for the quantum computer; a replacement processing unit reading the detected computational parts suitable for the quantum computer from the storage unit and replacing them with quantum computer processing parts implemented with an open-source framework; creating a quantum computer processing executable file to be executed by quantum computer processing based on the replaced quantum computer processing parts; and offloading the created quantum computer processing executable file to the quantum computer.

Citation Information

Patent Citations

  • Program development support device for computer system including quantum computer, program development support program, and simulation device

    WO2006061926A1

  • Offload server, offload control method, and offload program

    WO2021166031A1