Hybrid computing resource optimization model

The network optimization method addresses the inefficiencies in hybrid computing by systematically allocating tasks across classical and quantum resources, optimizing computation time, resources, and error rates.

JP2025171956APending Publication Date: 2025-11-20THE BOEING CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025032751
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-08
Filing Date
2025-03-03
Publication Date
2025-11-20

AI Technical Summary

Technical Problem

Current hybrid computing techniques are often devised through trial-and-error, lacking a quantitative method for determining optimal resource allocation and transition between classical and quantum computing, leading to inefficiencies and suboptimal performance.

Method used

A method and system for network optimization that generates workflow constraints, scheduling constraints, and resource allocation constraints to determine an optimal computational objective, leveraging classical and quantum computing resources effectively.

Benefits of technology

Enables the determination of an optimal computational workflow that minimizes computation time, resources, and error by systematically allocating tasks across hybrid computing environments, adapting to changes in resource availability and error rates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025171956000001_ABST
    Figure 2025171956000001_ABST
Patent Text Reader

Abstract

To provide a hybrid computing resource optimization model.SOLUTION: A method includes receiving input of a network of nodes and edges representing a computational process and their configuration information, generating workflow constraints, scheduling constraints, computing resource allocation constraints, and an objective function, solving an optimization problem according to the generated objective function and all constraints, determining an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and allocation of computational processes among classical computing resources and quantum computing resources, and executing a computational workflow to achieve the optimal computational objective according to the computational job scheduling and the allocation of computational processes between classical computing resources and quantum computing resources.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to computing systems, and more particularly to an automated method for determining optimal placement of sub-processes in a computational task. [Background technology]

[0002] Novel technologies, such as quantum computing, optical computing, neuromorphic computing, artificial intelligence and machine learning (AI / ML), general-purpose graphics processing units (GPGPUs), and high-performance computing (HPC), are emerging and in various states of maturity. These various technologies can offer potential speedups and advantages for specific classes of problems compared to traditional computational approaches. For example, quantum computing can achieve exponential speedups over classical high-performance computing for atomic and molecular ground-state energy calculations and large-number integer factorizations. However, current hardware for some of these technology classes is extremely limited. For example, current quantum computers are classified as noisy intermediate-scale quantum (NISQ) devices, which are susceptible to significant noise issues and also have extremely limited quantum memory sizes. Therefore, determining how classical and hybrid computing compare for computational tasks, determining performance bottlenecks, and figuring out how to optimally utilize precious computational resources are challenging problems that must be addressed during the adoption of these novel technologies.

[0003] It would therefore be desirable to have a method and apparatus that takes into account at least some of the problems discussed above, as well as other possible problems. Summary of the Invention [Means for solving the problem]

[0004] An exemplary embodiment provides a computer-implemented method of network optimization for allocating computational subtasks in a hybrid computing environment. The method includes receiving inputs of a network of nodes and edges representing computational processes and their configuration information, where the nodes are grouped according to whether they use classical or quantum computing resources. The method generates workflow constraints, scheduling constraints, and computing resource allocation constraints. The method generates an objective function. An optimization problem is solved according to the objective function and all the constraints. The solution determines an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and allocation of computational processes among classical and quantum computing resources. The computational workflow is then executed to achieve the optimal computational objective according to the computational job scheduling and allocation of computational processes among classical and quantum computing resources.

[0005] Another exemplary embodiment provides a system for network optimization for arranging computational subtasks in a hybrid computing environment. The system includes a storage device that stores program instructions; and one or more processors operably connected to the storage device that execute the program instructions to cause the system to: receive input of a network of nodes and edges representing computational processes and their configuration information, where the nodes are grouped according to whether they use classical or quantum computing resources; generate workflow constraints; generate scheduling constraints; generate computational resource allocation constraints; generate an objective function; solve an optimization problem according to the objective function and all the constraints, where the solution determines an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and an allocation of computational processes among classical and quantum computing resources; and execute the computational workflow to achieve the optimal computational objective according to the computational job scheduling and the allocation of computational processes among the classical and quantum computing resources.

[0006] Another exemplary embodiment provides a computer program product related to network optimization for arranging computational subtasks in a hybrid computing environment. The computer program product comprises a computer-readable storage medium having program instructions embodied therein for executing the following steps: receiving an input of a network of nodes and edges representing computational processes and their configuration information, where the nodes are grouped according to whether they use classical or quantum computing resources; generating workflow constraints; generating scheduling constraints; generating computational resource allocation constraints; generating an objective function; solving an optimization problem according to the objective function and all the constraints, where the solution determines an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and allocation of computational processes among classical and quantum computing resources; and executing the computational workflow to achieve the optimal computational objective according to the computational job scheduling and allocation of computational processes among the classical and quantum computing resources.

[0007] The above forms and functions may be realized independently in various embodiments of the present disclosure or may be combined in other embodiments, further details of which can be seen with reference to the following description and drawings.

[0008] The novel features believed characteristic of the exemplary embodiments are set forth in the appended claims. However, the exemplary embodiments, as well as their preferred modes of use, further objects and features, will best be understood by reference to the following detailed description of exemplary embodiments of the present disclosure, when considered in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0009] [Figure 1]FIG. 1 is a block diagram illustrating a hybrid computing resource optimization system in accordance with an example embodiment. [Figure 2] FIG. 1 is a block diagram of a network optimization solution in accordance with an example embodiment. [Figure 3] FIG. 1 illustrates a directed graph network for a computational process in accordance with an illustrative embodiment. [Figure 4] 1 is a flow diagram illustrating a process for network optimization for placing computational subtasks in a hybrid computing environment. [Figure 5] 1 is a block diagram of a data processing system in accordance with an illustrative embodiment; DETAILED DESCRIPTION OF THE INVENTION

[0010] The illustrative embodiments recognize and take into account one or more different considerations: The illustrative embodiments recognize and take into account that hybrid deployment of classical and quantum computing resources has been identified as a means of leveraging the optimal capabilities of any resource relative to another resource.

[0011] The illustrative embodiments also recognize and take into account that current hybrid computational techniques are typically hand-devised by researchers exploring the use and adoption of novel hardware or novel computational sub-processes. While hybrid classical / quantum algorithms have been successfully proposed in the literature, their discovery was carried out through a trial-and-error research process. As hardware changes and continues to improve, the optimal hybrid techniques available will also change.

[0012] The illustrative embodiments also recognize and take into account that identifying a transition from any computing technique to another often relies on rigorous benchmarking and comparison of the various available methods, which does not provide a quantitative estimate of when or why a transition should occur, but only provides a binary comparison result based on the benchmark used.

[0013] Exemplary embodiments provide a method for determining an optimal arrangement of computational sub-processes to accomplish a large computational task. The sub-processes may use various computing resources, such as classical and quantum computing, which can be combined into an optimal hybrid computational approach to solve the problem.

[0014] Exemplary embodiments determine an optimal sequencing of steps for a computational process given a set of potential sub-processes, each characterized by a set of required inputs and a set of generated outputs, as well as the required computation time, error rate associated with the sub-process, and amount of resources required. Exemplary embodiments may be applied to any hybrid computing process, such as hybrid classical / quantum computing, analog / digital computing, and may include sub-processes such as high performance computing, FPGAs, neuromorphic computing, DNA or chemical computing, optical computing, or any future emerging form of computing technology.

[0015] Exemplary embodiments can also be used to study how the optimal solution changes with changes in available resources or error rates. For example, the process can be run multiple times, with each run increasing the amount of quantum resources allowed. This approach can reveal when transitioning from one form of computing to another might be most beneficial for minimizing computation time, minimizing errors associated with the overall computation, or maximizing resource usage. For example, this process can help reveal when to move from a classical or hybrid classical / quantum approach to a fully quantum approach. The transition may be prompted by the availability of computational speedups using the new approach and / or the fact that the error rate associated with the new approach is at least the same or favorable.

[0016] The illustrative embodiments also provide for concurrent computational task determination of optimization problems, resource allocation, and job scheduling.

[0017] 1, a block diagram of a hybrid computing resource optimization system is shown, in accordance with an example embodiment. The hybrid computing resource optimization system 100 comprises an input set 102, a resource requirements calculator 114, and an output set 124.

[0018] The input set 102 includes a set of computational subtask nodes 104, which represent potential components of a computational process. Each node within the computational subtask nodes 104 may include a representation of its respective subtask's resource requirements, time requirements, required input set, generated output set, and error rate. The input set 102 also includes a computational objective 106 for the computational process, such as, for example, minimizing computation time, minimizing required resources, maximizing accuracy / minimizing error, maximizing resource usage, or any combination thereof. The input set 102 may also include optional user-provided constraints 108, such as, for example, that a particular node cannot exceed a resource usage greater than a specified maximum resource available, or that the total computation error cannot exceed a maximum allowable error range. The input set 102 includes initial data inputs 110 and a desired final output 112 produced by the computational process based on the initial data inputs 110.

[0019] The resource requirements calculator 114 comprises a network generator 116 that generates a network representation of the provided computational subtask nodes 104 and their configuration information. If the generated output of node A can serve as a required input to node B, then a network edge generator 118 generates edge connections between nodes in the network generated by the network generator 116, such that two nodes, A and B, are connected by a directed edge from A to B.

[0020] A network optimization solution 120 solves an optimization to determine an optimal path through a directed edge network according to a computational objective 106. A start node (or set of start nodes) is identified, which is any node in the network whose required input is the same as the initial data input 110 provided to the input set 102. A final node (or set of final nodes) is identified, which is any node in the network whose final output is the same as the desired final output 112 provided to the input set 102. If there are multiple start / end nodes, multiple network optimization problems can be generated and solved either sequentially or in parallel to determine the total quantity. The network problem (spanning all start / end nodes) is solved against the computational objective 106, subject to any additional constraints 108 provided. The solution may implement various techniques, such as shortest path, least cost, network flow, decision tree, or Steiner tree.

[0021] If multiple network instances are solved, the objectives are compared to determine the optimal solution.

[0022] A results extractor 122 receives the optimal network solution from 120. The results extractor 122 post-processes the data from the resulting optimal solution to generate an output set 124.

[0023] The output set 124 includes the results of the computational process and the determined actual optimal path and nodes 126 traveled through the sub-process to achieve the determined objective value 128. The output set 124 may also include estimated requirements 130, such as, for example, the total error expected in the solution, the total resources required, the total computation time to solve the problem, etc.

[0024] The hybrid computing resource optimization system 100 can be implemented in software, hardware, firmware, or a combination thereof. When software is used, the operations performed by the hybrid computing resource optimization system 100 can be implemented in program code configured to run on hardware, such as a processor unit. When firmware is used, the operations performed by the hybrid computing resource optimization system 100 can be implemented in program code and data and stored in persistent memory that executes on a processor unit. When hardware is employed, the hardware may include circuitry that operates to perform the operations in the hybrid computing resource optimization system 100.

[0025] In exemplary embodiments, the hardware may take the form of at least one of a circuit system, an integrated circuit, an application-specific integrated circuit (ASIC), a programmable logic device, or other suitable type of hardware configured to perform several operations. Using a programmable logic device, the device may be configured to perform many operations. The device may be later reconfigured or may be permanently configured to perform multiple operations. Programmable logic devices include, for example, programmable logic arrays, programmable array logic, field programmable logic arrays, field programmable gate arrays, and other suitable hardware devices. Furthermore, processes may be implemented in organic components integrated with inorganic components, or may be comprised entirely of organic components, excluding humans. For example, processes may be implemented as organic semiconductor circuits.

[0026] These components of the hybrid computing resource optimization system 100 may be located within a computer system 150, which is a physical hardware system and includes one or more data processing systems. When multiple data processing systems are present in the computer system 150, the data processing systems communicate with each other using a communication medium. The communication medium may be a network. The data processing systems may be selected from at least one of a computer, a server computer, a tablet computer, or other suitable data processing system.

[0027] For example, the hybrid computing resource optimization system 100 may execute on one or more processors 152 in a computer system 150. As used herein, a processor is a hardware device and is composed of hardware circuitry, such as that on an integrated circuit, that processes in response to instructions and program code that cause a computer to operate. When the processors 152 execute instructions for a process, the one or more processors may be on the same computer or different computers in the computer system 150. In other words, a process may be distributed among processors 152 on the same or different computers in the computer system 150. Furthermore, the one or more processors 152 may be of the same type or different types. For example, the one or more processors 152 may be selected from at least one of a single-core processor, a dual-core processor, a multi-processor core, a general-purpose central processing unit (CPU), a graphics processing unit (GPU), a quantum processing unit (QPU), a tensor processing unit, a digital signal processor (DSP), a field-programmable gate array (FPGA), a neuromorphic processor, or some other type of processor.

[0028] Figure 2 is a block diagram of a network optimization solution according to an example embodiment. Figure 2 illustrates an example implementation of the network optimization solution 120 of Figure 1, which takes as input a set of nodes and edges representing a graph network of data and computational task elements, and provides an optimally determined workflow selected through the available computational tasks with respect to a user-selected objective (e.g., minimize computation time, minimize result error, etc.).

[0029] The network optimization solution 120 uses an input set 202 comprising data nodes 204, computational nodes 206, data flow edges 208, and relationships 210. The input set 202 represents the nodes and edges of a graph representation of the computational task of the problem. These input elements are provided by the network generator 116 and the network edge generator 118 of FIG. 1.

[0030] Data nodes 204 represent individual portions or elements of data. Computational nodes 206 indicate tasks that can be performed on a data node to generate a new data node. For example, a matrix and an inverse matrix are two different data nodes. An example of a computational node is a matrix inversion algorithm, such as lower-to-higher order (LU) decomposition or singular value decomposition (SVD), which result in two different computational nodes. In the graph, LU and SVD are computational nodes. Edges on these nodes are drawn from matrix data elements to inverse matrix data elements, indicating that these computational nodes consume a matrix and generate its inverse.

[0031] Relationships 210 define what relationships exist between different data nodes 204 and computation nodes 206. The most common relationship is a data dependency. For example, a matrix inversion algorithm requires a specific data element. Another example is a data element that is generated by a computation process. There could potentially be other such relationships, such as a computation process requiring at least one of a subset of data elements. Another example is an entity-relationship diagram on which a graph network is built. Other possible relationships include data-data and computation-computation (e.g., a data element is a subcomponent of a larger data element). Some examples of relationships that may be addressed in this process include the following: ·To proceed with this process, we need any n data elements from the set {d1,d2,d3,...}. ·All n data elements of the set {d1,d2,d3,...} are needed to proceed with this process. Complex nesting of sets consisting of the above two relationship types.

[0032] These relationships allow the expression of much more complex and semantic data relationships, such as a user being able to specify that a computational node requires "both x and y, but only one of a and b" types of requirements for data input.

[0033] Given this information in input set 202, a series of linear steps are performed by workflow 212 to generate the constraints and objective function that comprise the integer optimization problem to be solved.

[0034] Node / Edge Activation Constraint Generation 214 generates two equations for each node in the network (one for each data element and one for each process task) that ensure that when a process task is selected as part of a workflow, the resulting input and output data elements are also activated as part of the workflow.

[0035] Node / edge relationship constraint generation 216 generates constraint equations for each node in the network that ensure that edges E connecting data elements v1 and v2 are activated in a consistent manner, meaning that if one of data elements v1 or v2 is activated, the corresponding edge is also activated.

[0036] Domain input constraint generation 218 generates a set of equations for each required data element specified by the user. These constraints ensure that the user's specification of available data elements is adhered to. For example, if the user specifies a data element v that represents a known measurement at the start of the process (based on knowledge of the system), this constraint ensures that this data element is true when the optimization begins. Alternatively, the goal is to ensure that the corresponding data element variable x is true at the start of the optimization. v This can also be achieved by assigning .

[0037] The domain output constraint generation 220 generates a set of equations for each desired data element for which the user wants to find a process. These constraints ensure that the target end goal of the optimized workflow process achieves the target desired data element that the user wants to know. For example, if the user wants the final inverse matrix state or matrix product state, then the corresponding variable x v is held to be 1 by the end of the optimization process. Alternatively, the variable x v =1 can be assigned directly at the start of the optimization.

[0038] Schedule duration constraint generation 222 generates a set of constraints for each compute node in the network. These constraints represent that the duration elapsed between the start and end of each process must match the expected duration of that process plus a possible scheduling delay. The scheduling delay can be zero (indicating no delay), but may need to be greater than zero if insufficient resources are available to accommodate starting a process at the earliest possible time. The scheduling delay is included in the objective function as a penalty that instructs the optimizer to minimize these delays.

[0039] Duration (Δt) k is a function of which machine is allocated to the process in question, i.e., the hardware quality of the allocated machine. For example, if a matrix inversion process requires n FLOPS (floating-point operations per second), then the duration of this process (Δt) is k depends on the assigned machine hardware, (Δt) k = n / f, where f is the FLOPS rate (related to the clock frequency) of the assigned machine. This may mean that a supplementary formula is needed to address FLOPS.

[0040] Time discretization constraint generation 224 generates a set of equations for each node and time step to ensure that events occurring over time throughout the workflow lineup are valid (e.g., the start time of a process coincides with the discretized time at which the process was initiated and corresponds to its end, with or without a delay). The number of time steps is a prerequisite for this approach, and the user specifies the time discretization model that shapes this value. One embodiment can represent time as a set of uniformly discretized time points, with time being scaled by a fixed overall time step (Δt). G The time at any point in the workflow process is t=i·(Δt) GThis approach can be modified for different cases of interest, for example by introducing an adaptive non-uniform time discretization.

[0041] Activity matrix constraint generation 226 generates available per-node and per-machine equations that ensure that the activity of a machine coincides in time with the start and end of the various processes assigned to the machine.

[0042] The scheduling and resource allocation represented by schedule duration constraint generation 222, time discretization constraint generation 224, and activity matrix constraint generation 226 can optionally be omitted from workflow 212. Including scheduling and resource allocation generally improves the quality of the solution and provides additional information, but can also increase the computational intensity of the optimization problem. Furthermore, there may be scenarios where the user does not yet need to know the actual scheduling and / or resource allocation.

[0043] Resource matrix constraint generation 228 generates a per-time-step, per-machine, per-resource-type formula that requires that the resources consumed by various machines executing at various times be within the equipped resources on the machines. For example, a quantum computer with 25 qubits cannot support the execution of a quantum circuit requiring 50 qubits. This constraint also limits the type, in the sense that a quantum computer cannot be selected to support a GPU process.

[0044] The time definition constraint generation 230 is related to the time discretization constraint generation 224 and generates an expression that describes the passage of time. As mentioned above, the time discretization may be uniform, but any type of time discretization can be supported.

[0045] The time discretization scheme 238 supports both the time discretization constraint generation 224 and the time-defined constraint generation 230. The time discretization scheme 238 represents the technique used to represent the passage of time in a workflow process. In addition to uniform discretization of time, exemplary embodiments can accommodate any kind of representation, such as adaptive schemes, non-uniform representations, functional forms, or pre-scheduled forms.

[0046] The total cost constraint generation 232 generates a set of equations that represent the cost of using each resource by each process. As used herein, "cost" refers to a general cost rather than a specific monetary value (although it can also include monetary costs). The cost can be an amount of time, an amount of power consumed, an amount of error incurred, or a combination of one or more of these factors. These equations capture the effect of accumulating costs over the selected workflow.

[0047] The user may also include any additional constraints they wish to impose on the costs. For example, the user may specify a general, catch-all expression that the power required by a workflow cannot exceed some specific wattage (perhaps representing the limits of a facility's power supply). Each of these constraints is added per the user's specifications.

[0048] Generally, although not necessarily, these costs are additive across selected workflow processes. However, it is also possible for costs to multiply across selected workflow processes. Examples of additive costs are the total duration of computing something (each process adds a certain amount of time before reaching that data element), or the monetary cost of using processor resources (adding more processors can increase the cost per processor linearly). An example of a multiplying cost is error (the probability of failure is, for example, the product of all gate operations in a circuit).

[0049] Objective function generation 234 generates an expression to be minimized or maximized by the optimizer. The expression can be "total computational effort," which is the total amount of wall time elapsed for the fastest possible workflow approach to solving the problem. Wall time refers to the difference in the value of the system clock before some process starts and after it completes. This is in contrast to other time measurements, such as CPU time, which only measure the active time of processes actually active on the processor (usually a number much smaller than wall time).

[0050] The expression can also be "total runtime", or equivalently "CPU time", which differs from computational total work time in that runtime considers the time spent on each resource rather than the wall time elapsed for the process alone. For example, if a process takes 1 second and, when parallelized across 4 processors, the time required to complete is reduced to 1 / 4 second, then the total work time is 1 / 4 second, but the runtime is

number

[0051] Optimization problem solving 236 can be performed by any algorithm or software that calculates a solution to the equations generated above for the constraints, variables, and expressions. This can be a mixed-integer optimizer that uses branch-and-join, branch-and-cut, branch-and-price, etc., or a heuristic or metaheuristic algorithm, such as simulated annealing, particle swarm optimization, or genetic algorithm, to iteratively determine a numerical solution to the equations thus formulated. Exemplary embodiments are agnostic to the method selected for this step. To solve the optimization problem, the algorithm performs iterative calculations that improve the solution as it explores the solution space. The problem is considered "solved" when a stopping criterion is reached in one of these iterations. This criterion can be convergence detection in the solution, a fixed number of iterations or a fixed amount of elapsed time, the size of the solution space explored, the best possible objective value achieved for the solution found, etc. Possible and valid stopping criteria depend on the algorithm in question.

[0052] After solving the optimization problem, an output set 240 includes a selected optimal computational workflow 242, an achieved optimal objective evaluation 244, a computational job scheduling 246, and a resource allocation 248, which are extracted by the results extractor 122 of Figure 1. The results extractor 122 not only extracts the solution and converts it back into the form of a workflow process, but also extracts and converts the time scheduling of various machines (which may include generating batch scheduling jobs for large-scale heterogeneous computing systems) and records and shows resource usage (e.g., as a Gantt chart output).

[0053] A typical computational process is a set of subtasks T i ={R i , t i , S i , U i , E i} into a single subtask T i teeth, Required set of resources, R i The amount of time (i.e., FLOPS) or computational intensity t, which can be a function of the allocated hardware i Required set of inputs, S i The generated set of outputs, U i Potentially, a representation of the error associated with the output, E i , including.

[0054] In general, there is a known starting set of data G, some desired end product H of the data, and a selected sequence of processes for completing the subtasks. i , and the amount of time or intensity t i can be a scalar (subtask T i the amount of bits / qubits and / or processors required for n), or functional (e.g., two functions R describing the scaling of resources and time required with increasing problem size n). i (n) and t i (n)) may also be used.

[0055] The error associated with the output, E i can be 0 for an exact process, a scalar value, or a Gaussian distribution, or it can be a noise model, or it can be a function of the problem size or problem complexity E i It can be a function of (n).

[0056] Exemplary embodiments optimize the ordering of computational subtasks to complete the full computational process while using the least amount of computational time, resources, or final output error (or some combination of these). Additionally, there may be constraints that exist on the problem, such as ordering subtasks to create appropriate outputs that serve as inputs for subsequent subtasks. Additional constraints may apply, such as available resource limits or maximum allowable error limits on particular subtasks. Error propagation from one subtask to the next need not be limited to a linear sum, but may include precise nonlinearities in propagation.

[0057] An exemplary problem of interest to which exemplary embodiments may be applied is the calculation of corrosion rates of aerospace materials in harsh environments and modeling of microscale interactions, and the study of the use of classical and quantum computing resources to solve this problem.

[0058] 3 illustrates a directed graph network for a computational process according to an example embodiment. Directed graph network 200 may be an example of a network created by network generator 116 and network edge generator 118 of FIG.

[0059] A computational process can be represented as a graph where nodes represent subtask execution using a particular process. i Each of these represents a potential computational subtask T that may be performed on the way to completing the computational process from the initial starting data set G to the desired final data set H. i In this example, the computational subtask nodes include classical nodes C1, C2, C3, C4, C5, and C6, and quantum nodes Q1, Q2, Q3, and Q4. i represents any classical procedure that may be used. Classical Method C i may include methods such as Discrete Fourier Transform (DFT), Dynamic Monte Carlo (kMC), and any pre- or post-processing steps that may be performed. irepresents any quantum process that can be performed.

[0060] The exemplary embodiment begins with any node that requires an input equal to the initial starting data input S0=G and outputs the final desired output data U N = H. An additional constraint ensures that an edge between nodes can only exist if the output of any node can be fed into the input of the next node.

[0061] This process may be expanded beyond the mere use of classical and quantum resources to include manual or laboratory processes, or other forms of emerging computing such as analog / digital hybrid computing, DNA computing, optical computing, and neuromorphic computing. Laboratory-measured processes that may provide a portion of the value required for the overall process may also be added to the graph, provided reasonable estimates of equivalent resources / time / error are available. Additional constraints may be added to the problem formulation to represent task parallelism using the partitioning of output and input data across edges in the graph. This formulation can be used to minimize total computation time, minimize error propagation, or maximize optimal use of available resources.

[0062] One possible formulation applied to the directed graph network 200 involves an optimization technique to minimize the total computation time while ensuring that all resources required for the problem are available and that the final computational result is within a maximum acceptable error range. In this formulation, given the initial data G and the desired final output H, the optimization process determines the total time required, i.e.,

number

number

number

[0063] Alternatively, as long as the necessary resources for each computational subtask are available and the total computation time is below some acceptable limit, the optimization workflow process may solve the problem to achieve the most accurate possible result data element. Any reformulation can be created based on a constrained combination of error rate, resources, and / or time. Thus, given the initial data G and the desired final output H, the optimization time is determined by the total propagated error of the final result, i.e.,

number

number

number

[0064] Additionally, a particular formulation of the network problem may be re-run with different parameters, e.g., varying the maximum resources of a particular hardware type available, varying the error rate associated with a particular computational subtask available on the graph, etc., to better understand how the optimal choice of algorithm stack transitions from one hardware type to another based on error. In this manner, running the optimization problem multiple times with different parameters can help determine the optimal transition between classical and quantum hardware types.

[0065] 4 is a flow diagram illustrating a process for network optimization for placing computational subtasks in a hybrid computing environment. Process flow 400 may be implemented in hybrid computing resource optimization system 100 shown in FIG. 1, which includes network optimization solution 120 shown in FIG. 2.

[0066] Process 400 begins by receiving input of a network of nodes and edges representing computational processes and their configuration information, and the nodes are grouped according to whether they use classical or quantum computing resources (operation 402).

[0067] Next, process 400 generates workflow constraints (operation 404). The workflow constraints include node and edge activation constraints, node and edge relationship constraints, domain input constraints, domain output constraints, resource constraints, time definition constraints, and total cost constraints.

[0068] Node and edge activation constraints ensure that, in response to selection of a process as part of a computational workflow, the resulting input and output data elements are also activated as part of the workflow. The node and edge constraints may also include node and edge relationship constraints that ensure, in response to activation of one of the pair of nodes, an edge connecting a pair of nodes is activated.

[0069] Node and edge relationship constraints ensure that an edge connecting a pair of nodes is activated in response to activation of one of the nodes in the pair.

[0070] The domain input and output constraints ensure that the user's specification of available data elements is respected and that the target end goal of the computational workflow is achieved using the user-specified target data elements, or alternatively, the domain input and output constraints assign corresponding data element variables at the start of the optimization.

[0071] The resource constraint ensures that the classical and quantum computing resources running on the machine are within the equipped resources on the machine.

[0072] The costs considered by the total cost constraint include at least one of monetary cost, amount of time, power consumption, and error incurred.

[0073] Process 400 generates scheduling constraints (act 406). The scheduling constraints may include a scheduling duration constraint and a time discretization constraint.

[0074] Process 400 generates computing resource allocation constraints (operation 408), including activity constraints that ensure that the activities of machines executing classical and quantum computing resources are time-aligned with the start and end of computational processes assigned to those machines.

[0075] Process 400 generates an objective function (operation 410) and then solves an optimization problem according to the objective function and all of the above constraints (operation 412). The solution determines the optimal computational objective to be achieved, the selected computational workflow through the nodes, the computational job scheduling, and the allocation of computational processes among classical and quantum computing resources.

[0076] Process 400 executes the computational workflow to achieve the optimal computational objective according to computational job scheduling and allocation of computational processes among classical and quantum computing resources (operation 414). Thereafter, process 400 terminates.

[0077] Referring now to Figure 5, a block diagram of a data processing system is shown in accordance with an illustrative embodiment. The data processing system may be an example of computer system 150 in Figure 1. In this illustrative example, data processing system 500 includes a communications framework 502 that provides communications between a processor unit 504, a memory 506, persistent storage 508, a communications unit 510, an input / output unit 512, and a display 514. In this example, communications framework 502 may take the form of a bus system.

[0078] The processor unit 504 is responsible for executing instructions for software that may be loaded into memory 506. The processor unit 504 may be multiple processors, a multi-processor core, or some other type of processor, depending on the particular implementation. In one example, the processor unit 504 comprises one or more conventional general-purpose central processing units (CPUs). The processor unit 504 may send instructions to or from a digital signal processor (DSP) 528. The DSP 528 then sends analog or hybrid signals to or from quantum hardware 530.

[0079] The quantum hardware 530 may comprise quantum circuits based on quantum bits. Qubits are traditionally used to simulate a 1 or 0 state, or in a superposition of 1 and 0 states. However, when measured, a qubit can be in an infinite number of states, depending on the quantum state of the qubit immediately prior to the measurement, when using the Bloch sphere representation. The quantum circuit may comprise a number of reversible quantum gates, in which the computational process is logically reversible.

[0080] Memory 506 and persistent storage 508 are examples of storage devices 516. A storage device is any hardware that can store information, such as, but not limited to, data, program code in functional form, or other suitable information, on a temporary, persistent, or both temporary and persistent basis. Storage devices 516, in these illustrative examples, may also be referred to as computer-readable storage devices. Memory 506, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device. Persistent storage 508 may take various forms depending on the particular implementation.

[0081] For example, persistent storage 508 may comprise one or more components or devices. For example, persistent storage 508 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of these. The medium used by persistent storage 508 may be removable. For example, a removable hard drive may be used for persistent storage 508. Communications unit 510, in these illustrative examples, provides for communication with other data processing systems or devices. In these examples, communications unit 510 is a network interface card.

[0082] Input / output unit 512 allows for the input and output of data with other devices that may be connected to data processing system 500. For example, input / output unit 512 may provide a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Additionally, input / output unit 512 may send output to a printer. Display 514 provides a mechanism for displaying information to a user.

[0083] Instructions for at least one of the operating system, applications, or programs may be located in storage devices 516, which are in communication with processor unit 504 through communications framework 502. The processes of the various embodiments may be performed by processor unit 504 using computer-executable instructions, which may be located in a memory, such as memory 506.

[0084] These instructions are referred to as program code, computer usable program code, or computer readable program code, which may be read and executed by a processor in processor unit 504. The program code in the different embodiments may be embodied on different physical or computer readable storage media, such as memory 506 or persistent storage 508.

[0085] Program code 518 is located in a functional form on a selectively removable computer readable medium 520 and may be loaded onto or transferred to data processing system 500 for execution by processor unit 504. Program code 518 and computer readable medium 520 form a computer program product 522 in these illustrative examples. Computer program product 522 may be for aligning a frame of reference for an augmented reality (AR) display. In one example, computer readable medium 520 may be a computer readable storage medium 524 or a computer readable signal medium 526.

[0086] In these illustrative examples, computer readable storage media 524 is not a medium that propagates or transmits program code 518, but rather a physical or tangible storage device used to store program code 518. Alternatively, program code 518 may be transferred to data processing system 500 using computer readable signal media 526.

[0087] Computer readable signal medium 526 may be, for example, a propagated data signal containing program code 518. For example, computer readable signal medium 526 may be an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals may be transmitted over at least one of a communications link, such as a wireless communications link, an optical fiber cable, a coaxial cable, a wire, or any other suitable type of communications link.

[0088] The different components illustrated for data processing system 500 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to or instead of those illustrated for data processing system 500. Other components illustrated in FIG. 5 may vary from the illustrated illustrative example. The different embodiments may be implemented using any hardware device or system capable of running program code 518.

[0089] As used herein, a first component "connected" to a second component means that the first component can be directly or indirectly connected to the second component. In other words, there can be additional components between the first and second components. If there are one or more additional components between the two components, the first component is considered to be indirectly connected to the second component. When the first component is directly connected to the second component, there are no additional components between the two components.

[0090] As used herein, the phrase "number" means one or more. The phrase "at least one of," when used with a list of items, means that various combinations of one or more of the listed items may be used, and only one of each item in the list may be required. In other words, "at least one of" means that any combination and any number of items may be used from the list, but not all of the items in the list are required. An item may be a specific object, thing, or category.

[0091] For example, "at least one of item A, item B, or item C" may include item A, or may include items A and B, or may include item C, but is not limited to these. An example may include items A, B, and C, or may include items B and C. Of course, any combination of these items may be present. In some illustrative examples, "at least one" may be, for example, but not limited to, two items A, one item B, and ten items C, four items B and seven items C, or other suitable combinations.

[0092] The flowcharts and block diagrams in the various illustrated embodiments illustrate the architecture, functionality, and operation of some possible implementations of apparatuses and methods in the example embodiments. In this regard, each block in the flowcharts or block diagrams may represent at least one of a module, a segment, a function, or a portion of an operation or step. For example, one or more of the blocks may be implemented as program code.

[0093] In some alternative implementations of the illustrative embodiments, one or more functions noted in the blocks may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be performed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending on the functionality involved. Also, other blocks may be added in addition to the blocks noted in the flowcharts or block diagrams.

[0094] The descriptions of different exemplary embodiments are presented for purposes of illustration and description and are not intended to be exhaustive or limited to the embodiments in the disclosed form. Many modifications and variations will be apparent to those skilled in the art. Furthermore, different exemplary embodiments may offer different features compared to other exemplary embodiments. The selected embodiment or embodiments have been chosen and described in order to best explain the principles and practical applications of the embodiments, and to enable others skilled in the art to understand the disclosure of the various embodiments with various modifications suitable for the particular use contemplated. [Explanation of symbols]

[0095] 100 Hybrid Computing Resource Optimization System 102 input sets 104 Computational Subtask Nodes 106 Calculation purpose 108 User-Provided Constraints 110 Initial Data Entry 112 Desired Final Output 114 Resource Requirement Calculator 116 Network Generator 118 Network Edge Generator 120 Network Optimization Solutions 122 Result Extractor 124 output sets 126 Optimal Path and Traveled Nodes 128 Determined target value 130 Presumption Requirements 150 Computer Systems 152 processors 202 Input Set 204 data nodes 206 compute nodes 208 Dataflow Edges 210 relations 212 Workflow 214 Node / Edge Activation Constraint Generation 216 Node / Edge Relation Constraint Generation 218 Domain Input Constraint Generation 220 Domain Output Constraint Generation 222 Schedule Duration Constraint Generation 224 Time discretization constraint generation 226 Activity Matrix Constraint Generation 228 Resource Matrix Constraint Generation 230 Time definition constraint generation 232 Total Cost Constraint Generation 234 Objective Function Generation 236 Optimization Problem Solving 238 Time Discretization Scheme 240 output set 242 Selected optimal computational workflow 244 Realized Optimal Objective Evaluation 246 Computational Job Scheduling 248 Resource Allocation 300 Directed Graph Networks 400 Process Flow 500 Data Processing Systems 502 Communication Framework 504 processor unit 506 memory 508 Persistent Storage 510 Communication Unit 512 Input / Output Unit 514 Display 516 Storage Devices 518 Program Code 520 Computer-Readable Medium 522 Computer Program Products 524 Computer-readable storage medium 526 Computer-readable signal medium 528 Digital Signal Processor (DSP) 530 Quantum Hardware

Claims

1. 1. A computer-implemented method of network optimization for placing computational subtasks in a hybrid computing environment, comprising: receiving input (402) of a network of nodes and edges representing a computational process and configuration information for the nodes and edges, the nodes being grouped according to whether the nodes use classical or quantum computing resources; generating workflow constraints (404); generating scheduling constraints (406); generating computational resource allocation constraints (408); generating an objective function (410); solving an optimization problem (412) according to the objective function and all constraints, the solution determining an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and allocation of the computational processes among the classical and quantum computing resources; executing the computational workflow (414) to achieve the optimal computational objective according to the computational job scheduling and the allocation of computational processes among the classical computing resources and the quantum computing resources; A method comprising:

2. The workflow constraints are: Node and edge activation constraints (214), and Node and edge relationship constraints (216); Domain input constraints (218) and Domain output constraints (220) and resource constraints (226) and Time definition constraints (230) and Total cost constraint (232) and 2. The method of claim 1, comprising:

3. 3. The method of claim 2, wherein the node and edge activation constraints ensure that, in response to selection of a process as part of the computational workflow, resulting input and output data elements are also activated as part of the computational workflow.

4. The method of claim 2 , wherein the node and edge relationship constraints ensure that an edge connecting a pair of nodes is activated in response to activation of one of the pair of nodes.

5. The method of claim 2 , wherein the domain input constraints and domain output constraints ensure that user specifications of available data elements are respected and that target end goals of the computational workflow achieve user-specified target data elements.

6. The method of claim 2 , wherein the domain input constraints and domain output constraints assign corresponding data element variables at the start of an optimization.

7. 3. The method of claim 2, wherein the resource constraints ensure that classical and quantum computing resources operating on a machine are within the resources equipped on the machine.

8. The cost is financial costs, Amount of time, Power consumption, or The error that occurred The method of claim 2, comprising at least one of:

9. The scheduling constraints are: a scheduling duration constraint (222); Time discretization constraints (224) and 2. The method of claim 1, comprising:

10. 2. The method of claim 1, wherein the computational resource allocation constraints include activity constraints (226) that ensure that activity of machines operating the classical and quantum computing resources coincides in time with the start and end of computational processes assigned to the machines.

11. 1. A system for network optimization for placing computational subtasks in a hybrid computing environment, comprising: a storage device (516) for storing program instructions; a device operatively connected to said storage device and executing said program instructions to said system; receiving an input (402) of a network of nodes and edges representing a computational process and configuration information for the nodes and edges, the nodes being grouped according to whether the nodes use classical or quantum computing resources; generating workflow constraints (404); generating scheduling constraints (406); generating computational resource allocation constraints (408); generating an objective function (410); solving an optimization problem (412) according to the objective function and all constraints, the solution determining an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and allocation of the computational processes among the classical and quantum computing resources; executing the computational workflow (414) to achieve the optimal computational objective according to the computational job scheduling and the allocation of computational processes among the classical computing resources and the quantum computing resources; one or more processors (504, 528) configured to cause A system comprising:

12. The workflow constraints are: Node and edge activation constraints (214), and Node and edge relationship constraints (216); Domain input constraints (218) and Domain output constraints (220) and resource constraints (226) and Time definition constraints (230) and Total cost constraint (232) and The system of claim 11 , comprising:

13. 13. The system of claim 12, wherein the node and edge activation constraints ensure that, in response to a selection of a process as part of the computational workflow, resulting input and output data elements are also activated as part of the computational workflow.

14. 13. The system of claim 12, wherein the node and edge relationship constraints ensure that an edge connecting a pair of nodes is activated in response to activation of one of the pair of nodes.

15. 13. The system of claim 12, wherein the domain input constraints and domain output constraints ensure that user specifications of available data elements are respected and that target end goals of the computational workflow achieve user-specified target data elements.

16. The system of claim 12 , wherein the domain input constraints and domain output constraints assign corresponding data element variables at the start of an optimization.

17. 13. The system of claim 12, wherein the resource constraints ensure that classical and quantum computing resources operating on a machine are within the resources equipped on the machine.

18. The cost is financial costs, Amount of time, Power consumption, or The error that occurred The system of claim 12, comprising at least one of:

19. The scheduling constraints are: a scheduling duration constraint (222); Time discretization constraints (224) and The system of claim 11 , comprising:

20. 12. The system of claim 11, wherein the computational resource allocation constraints include activity constraints (226) that ensure that activity of machines operating the classical and quantum computing resources coincides in time with the start and end of computational processes assigned to the machines.

21. 1. A computer program product for network optimization for distributing computational subtasks in a hybrid computing environment, the computer program product comprising: receiving input (402) of a network of nodes and edges representing a computational process and configuration information for the nodes and edges, the nodes being grouped according to whether the nodes use classical or quantum computing resources; generating workflow constraints (404); generating scheduling constraints (406); generating computational resource allocation constraints (408); generating an objective function (410); solving an optimization problem (412) according to the objective function and all constraints, the solution determining an optimal computational objective to be achieved, a selected computational workflow through the nodes, computational job scheduling, and allocation of the computational processes among the classical and quantum computing resources; executing the computational workflow (414) to achieve the optimal computational objective according to the computational job scheduling and the allocation of computational processes among the classical computing resources and the quantum computing resources; a computer-readable storage medium (524) having program instructions embodied therein for executing A computer program product comprising: