Co-scheduling quantum computing jobs
By using a quantum computing job scheduling system to determine the order of jobs based on quantum operational constraints, the problem of existing systems not considering quantum operational constraints is solved, enabling efficient and fair use of quantum computing devices and improving computational accuracy and efficiency.
Patent Information
- Application Number
- CN201980075841.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-11-29
- Filing Date
- 2019-11-13
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2039-11-13
AI Technical Summary
Existing quantum computing job scheduling systems fail to effectively consider quantum-based operational constraints, leading to inefficient and unfair use of quantum computing devices.
A quantum computing job scheduling system is provided, including a scheduler component and a run queue component. The system determines the running order of quantum computing jobs based on one or more quantum-based running constraints and stores references to quantum computing jobs to achieve efficient and fair job scheduling.
It promotes the efficient and equitable use of quantum computing devices, and improves the accuracy of calculations and the efficiency of problem-solving.
Smart Images

Figure CN113056728B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to scheduling quantum computing jobs, and more particularly, to co-scheduling quantum computing jobs based on quantum-based operational constraints. Background Art
[0002] Quantum computing generally uses quantum mechanical phenomena to perform computational and information processing functions. Quantum computing can be compared to classical computing, which typically operates on binary values using transistors. That is, while classical computers can operate on bit values of either 0 or 1, quantum computers operate on quantum bits (qubits) that contain superpositions of 0 and 1, can entangle multiple qubits, and use interference.
[0003] Quantum computing hardware differs from classical computing hardware. Specifically, superconducting quantum circuits generally rely on Josephson junctions, which can be fabricated in semiconductor devices. Josephson junctions generally exhibit the Josephson effect of supercurrent, where current can flow indefinitely through a Josephson junction without an applied voltage. A Josephson junction can be created by weakly coupling two superconductors (a material that conducts electricity without resistance), for example, through a tunnel barrier.
[0004] One way in which a Josephson junction can be used in quantum computing is by embedding the Josephson junction in a superconducting circuit to form a quantum bit (qubit). A Josephson junction can be used to form a qubit by arranging the Josephson junction in parallel with a shunt capacitor. A plurality of such qubits can be arranged on a superconducting quantum circuit fabricated on a semiconductor device. These qubits can be arranged in a lattice (i.e., a grid) formation so that they can be coupled to the nearest neighboring qubit. Such an arrangement of qubits coupled to the nearest neighboring qubit can constitute a quantum computing architecture. An example of an existing quantum computing architecture is a quantum surface code architecture, which can also include microwave readout resonators coupled to corresponding qubits, which facilitate reading the quantum information of these qubits (i.e., also referred to as "addressing" or "reading the quantum logical state of the qubit"). Such a quantum surface code architecture can be integrated on a semiconductor device to form an integrated quantum processor that can perform computational and information processing functions that are substantially more complex than those that can be performed by classical computing devices (e.g., general-purpose computers, special-purpose computers, etc.).
[0005] Quantum computing has the potential to solve problems that, due to their computational complexity, cannot be solved at all or for all practical purposes on classical computers. However, quantum computing requires highly specialized techniques to, for example, co-schedule quantum computing jobs based on quantum-based execution constraints, where such quantum computing jobs can be executed by a quantum computing device (e.g., a quantum computer, quantum processor, etc.) based on such a co-schedule. For example, based on such a co-schedule (e.g., also referred to as an execution order throughout this disclosure), the quantum computing device can use certain qubits to execute a certain quantum computing job.
[0006] Many industry experts believe that the common use of quantum computing systems (e.g., quantum computers, quantum processors, etc.) will be as an adjunct to classical computing systems (e.g., cloud-based computing systems). As a result, it is possible that quantum computers will become a shared resource, and as with all shared resources, efficient and fair job scheduling will become important for optimal use of quantum computers.
[0007] It is important to note that, unlike classical computers, quantum computers must run jobs to completion; swapping jobs to disk is not possible. Therefore, efficient scheduling is particularly important. However, efficient scheduling of quantum computing jobs requires consideration of one or more quantum-based operational constraints unique to quantum computing, associated with such quantum computing jobs and / or with the quantum computing systems that execute such jobs. One problem with existing classical and / or quantum computing job scheduling systems is that they do not consider such quantum-based operational constraints when scheduling quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which results in inefficient and / or unfair utilization of such quantum computing devices.
[0008] Therefore, there is a need in the art to solve the above problems. Summary of the Invention
[0009] Viewed from a first aspect, the present invention provides a system for facilitating a quantum computing job scheduling process, comprising: a memory storing computer-executable components; and a processor executing the computer-executable components stored in the memory, wherein the computer-executable components include: a scheduler component that determines an execution order of quantum computing jobs based on one or more quantum-based execution constraints; and a run queue component that stores references to the quantum computing jobs based on the execution order.
[0010] Viewed from another aspect, the present invention provides a computer-implemented method for facilitating a quantum computing job scheduling process, comprising: determining, by a system operatively coupled to a processor, an execution order of quantum computing jobs based on one or more quantum-based execution constraints; and storing, by the system, references to the quantum computing jobs based on the execution order.
[0011] Viewed from another aspect, the present invention provides a computer program product for facilitating a quantum computing job scheduling process, the computer program product comprising a computer-readable storage medium having program instructions embedded therein, the program instructions executable by a processor to cause the processor to: determine, by the processor, an execution order of quantum computing jobs based on one or more quantum-based execution constraints; and store, by the processor, a reference to the quantum computing jobs based on the execution order.
[0012] Viewed from another aspect, the present invention provides a computer program product for facilitating a quantum computing job scheduling process, the computer program product comprising a computer-readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method for performing the steps of the present invention.
[0013] Viewed from another aspect, the invention provides a computer program stored on a computer readable medium and loadable into the internal memory of a digital computer, said computer program comprising software code portions for performing the steps of the invention when said program is run on a computer.
[0014] The following summary is presented to provide a basic understanding of one or more embodiments of the present invention. This summary is not intended to identify key or critical elements or to delineate any scope of a particular embodiment or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the detailed description that is presented later. In one or more embodiments described herein, systems, apparatuses, computer-implemented methods, and / or computer program products are described that facilitate scheduling of quantum computing jobs.
[0015] According to an embodiment, a system may include a memory storing computer executable components and a processor executing the computer executable components stored in the memory. The computer executable components may include a scheduler component that can determine the execution order of quantum computing jobs based on one or more quantum-based execution constraints. The computer executable components may also include a run queue component that can store references to the quantum computing jobs based on the execution order. One advantage of such a system is that it can facilitate efficient and fair scheduling (e.g., co-scheduling) of quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which can be used by multiple entities (e.g., through a cloud computing environment).
[0016] In one embodiment, the scheduler component may determine the execution order based on the availability of one or more qubits comprising a defined fidelity level.An advantage of such a system is that it may facilitate accurate resolution of computations performed by one or more quantum computing devices.
[0017] According to an embodiment, a computer-implemented method may include determining, by a system operatively coupled to a processor, an execution order for quantum computing jobs based on one or more quantum-based execution constraints. The computer-implemented method may also include storing, by the system, references to the quantum computing jobs based on the execution order. One advantage of this computer-implemented method is that it may facilitate efficient and fair scheduling (e.g., co-scheduling) of quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which may be used by multiple entities (e.g., via a cloud computing environment).
[0018] In one embodiment, the determining may include determining, by the system, the execution order based on the availability of one or more qubits comprising a defined fidelity level. An advantage of such a computer-implemented method is that it may facilitate accurate solution of computations performed by one or more quantum computing devices.
[0019] According to an embodiment, a computer program product is provided that can facilitate a quantum computing job scheduling process. The computer program product may include a computer-readable storage medium having program instructions stored therein, the program instructions being executable by a processing component to cause the processing component to determine, by the processor, an execution order of quantum computing jobs based on one or more quantum-based execution constraints. The program instructions may also cause the processing component to store, by the processor, references to the quantum computing jobs based on the execution order. One advantage of such a computer program product is that it can facilitate efficient and fair scheduling (e.g., co-scheduling) of quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which can be used by multiple entities (e.g., via a cloud computing environment).
[0020] In an embodiment, the program instructions are further executable by the processor to cause the processor to: determine, by the processor, the execution order based on at least one of: an approximate execution time of the quantum computing job; availability of one or more qubits having a defined fidelity level; or a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs. One advantage of such a computer program product is that it can facilitate accurate solution of computations performed by one or more quantum computing devices.
[0021] According to an embodiment, a system may include a memory storing computer executable components and a processor executing the computer executable components stored in the memory. The computer executable components may include a scheduler component that can determine the execution order of quantum computing jobs based on one or more quantum-based execution constraints. The computer executable components may also include a submission component that can submit at least one of the quantum computing jobs to one or more quantum computing devices based on the execution order. One advantage of such a system is that it can facilitate efficient and fair scheduling (e.g., co-scheduling) of quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which can be used by multiple entities (e.g., through a cloud computing environment).
[0022] In an embodiment, the scheduler component may determine the execution order based on at least one of: an approximate maximum execution time corresponding to the quantum computing jobs; the availability of one or more preferred qubits; or a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs. One advantage of such a system is that it may facilitate accurate solution of computations performed by one or more quantum computing devices.
[0023] According to an embodiment, a computer-implemented method may include: determining, by a system operatively coupled to a processor, an execution order of quantum computing jobs based on one or more quantum-based execution constraints. The computer-implemented method may also include submitting, by the system, at least one of the quantum computing jobs to one or more quantum computing devices based on the execution order. One advantage of this computer-implemented method is that it can facilitate efficient and fair scheduling (e.g., co-scheduling) of quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which may be used by multiple entities (e.g., via a cloud computing environment).
[0024] In an embodiment, the determining may include determining, by the system, the execution order based on at least one of: an approximate value of a longest execution time corresponding to the quantum computing jobs; the availability of one or more preferred qubits; or a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs. One advantage of such a computer-implemented method is that it can facilitate accurate solution of computations performed by one or more quantum computing devices. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The present invention will now be described, by way of example only, with reference to preferred embodiments as illustrated in the following drawings:
[0026] Figure 1 A block diagram illustrating an example non-limiting system that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is presented.
[0027] Figure 2A An example, non-limiting, order of execution of components that may facilitate quantum computing job scheduling according to one or more embodiments described herein is shown.
[0028] Figure 2B An example, non-limiting, order of execution of components that may facilitate quantum computing job scheduling according to one or more embodiments described herein is shown.
[0029] Figure 3 A block diagram illustrating an example non-limiting system that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is presented.
[0030] Figure 4 A block diagram illustrating an example non-limiting system that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is shown.
[0031] Figure 5A block diagram illustrating an example non-limiting system that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is presented.
[0032] Figure 6 A flow chart illustrating an example non-limiting computer-implemented method that can facilitate a quantum computing job scheduling component according to one or more embodiments described herein is presented.
[0033] Figure 7 A flow chart illustrating an example non-limiting computer-implemented method that can facilitate a quantum computing job scheduling component according to one or more embodiments described herein.
[0034] Figure 8 A block diagram illustrating an example non-limiting operating environment in which one or more embodiments described herein may be facilitated is shown.
[0035] Figure 9 A block diagram illustrating an example non-limiting cloud computing environment according to one or more embodiments of the present disclosure.
[0036] Figure 10 A block diagram illustrating example non-limiting abstract model layers according to one or more embodiments of the present disclosure is shown. DETAILED DESCRIPTION
[0037] The following detailed description is merely illustrative and is not intended to limit the embodiments and / or the application or uses of the embodiments.
[0038] One or more embodiments will now be described with reference to the accompanying drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a more thorough understanding of one or more embodiments. However, it will be apparent that one or more embodiments may be practiced without these specific details in various circumstances.
[0039] In view of the above-mentioned problems of existing classical and / or quantum computing job scheduling systems, which do not consider quantum-based execution constraints when scheduling quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), resulting in inefficient and / or unfair use of such quantum computing devices, the present disclosure can be implemented as a solution to this problem in the form of a system including a scheduler component that can determine the execution order of quantum computing jobs based on one or more quantum-based execution constraints. One advantage of such a system is that it can facilitate efficient and fair scheduling (e.g., co-scheduling) of quantum computing jobs to be executed by one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.), which can be used by multiple entities (e.g., through a cloud computing environment).
[0040] Figure 1 A block diagram of an example non-limiting system 100 that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is shown. In some embodiments, the system 100 may include a quantum computing job scheduling system 102 that can be associated with a cloud computing environment. For example, the quantum computing job scheduling system 102 can be associated with a cloud computing environment. Figure 9 The cloud computing environment 950 described and / or described below Figure 10 One or more functional abstraction layers (eg, hardware and software layer 1060, virtualization layer 1070, management layer 1080, and / or workload layer 1090) are described as being associated.
[0041] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings cited herein is not limited to a cloud computing environment. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.
[0042] Cloud computing is a service delivery model that provides convenient, on-demand network access to a shared pool of configurable computing resources. Configurable computing resources are those that can be rapidly deployed and released with minimal management overhead or interaction with the service provider. Examples include networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0043] Features are as follows:
[0044] On-demand self-service: Cloud consumers can unilaterally and automatically deploy computing capabilities such as server time and network storage on demand without human interaction with the service provider.
[0045] Broad network access: Computing power can be accessed over the network through standard mechanisms that facilitate the use of the cloud through different types of thin-client or thick-client platforms (e.g., mobile phones, laptops, personal digital assistants (PDAs)).
[0046] Resource pooling: A provider's computing resources are grouped into resource pools and served to multiple consumers through a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated on demand. Generally, consumers cannot control or even know the exact location of the provided resources, but can specify the location at a higher level of abstraction (such as country, state, or data center), thus achieving location independence.
[0047] Rapid elasticity: The ability to quickly and elastically (sometimes automatically) deploy computing power for rapid expansion and quickly release it for rapid reduction. To consumers, the available computing power for deployment often appears to be unlimited, and any amount of computing power can be accessed at any time.
[0048] Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both service providers and consumers.
[0049] The business model is as follows:
[0050] Software as a Service (SaaS): The ability provided to consumers is to use the provider's applications running on the cloud infrastructure. Applications can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). Aside from limited user-specific application configuration settings, consumers neither manage nor control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities.
[0051] Platform as a Service (PaaS): The capability provided to consumers is to deploy applications they create or acquire on cloud infrastructure. These applications are built using programming languages and tools supported by the provider. Consumers neither manage nor control the underlying cloud infrastructure, including networks, servers, operating systems, or storage. However, they do have control over the applications they deploy and may also have control over the configuration of the application hosting environment.
[0052] Infrastructure as a Service (IaaS): The capabilities provided to consumers are processing, storage, networking, and other basic computing resources on which they can deploy and run arbitrary software, including operating systems and applications. Consumers neither manage nor control the underlying cloud infrastructure, but do have control over the operating system, storage, and deployed applications, and may have limited control over selected network components (such as host firewalls).
[0053] The deployment model is as follows:
[0054] Private cloud: Cloud infrastructure is run solely for an organization. The cloud infrastructure can be managed by the organization or a third party and can exist inside or outside the organization.
[0055] Community Cloud: A cloud infrastructure is shared by several organizations to support a specific community with common interests (e.g., mission, security requirements, policies, and compliance considerations). A community cloud can be managed by multiple organizations within the community or by a third party and can exist within or outside the community.
[0056] Public cloud: Cloud infrastructure is provided to the public or a large industry group and is owned by the organization that sells the cloud services.
[0057] Hybrid cloud: A cloud infrastructure consisting of two or more clouds (private, community, or public) deployed in different models that remain distinct entities but are bound together by standardized or proprietary technologies (such as cloud bursting for load balancing between clouds) that enable data and application portability.
[0058] The cloud computing environment is service-oriented, with characteristics centered on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure consisting of a network of interconnected nodes.
[0059] Now continue to see Figure 1 According to several embodiments, system 100 may include a quantum computing job scheduling system 102. In some embodiments, quantum computing job scheduling system 102 may include a memory 104, a processor 106, a scheduler component 108, a run queue component 110, and / or a bus 112.
[0060] It should be understood that the embodiments of the subject disclosure depicted in the various figures disclosed herein are for illustration only, and therefore, the architecture of such embodiments is not limited to the systems, devices, and / or components depicted therein. For example, in some embodiments, the system 100 and / or the quantum computing job scheduling system 102 may also include the operating environment 800 and the Figure 8 The various computers and / or computing-based components described herein may be combined to implement the various computer and / or computing-based components described herein. In several embodiments, such computers and / or computing-based components may be combined to implement the various computer and / or computing-based components described herein. Figure 1 or use with one or more of the systems, devices, components, and / or computer-implemented operations illustrated and described in other figures or disclosed herein.
[0061] According to various embodiments, memory 104 may store one or more computer and / or machine readable, writable, and / or executable components and / or instructions that, when executed by processor 106, may facilitate performance of operations defined by the executable component(s) and / or instruction(s). For example, memory 104 may store computer and / or machine readable, writable, and / or executable components and / or instructions, as described herein with or without reference to various figures of the subject disclosure, that, when executed by processor 106, may facilitate performance of various functions described herein associated with quantum computing job scheduling system 102, scheduler component 108, run queue component 110, and / or another component associated with quantum computing job scheduling system 102 (e.g., constraint checker component 302, submission component 402, non-starvation component 502, etc.).
[0062] In some embodiments, the memory 104 may include volatile memory (e.g., random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), etc.) and / or non-volatile memory (e.g., read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), etc.) that may employ one or more memory architectures. Reference is made below to system memory 816 and Figure 8 104. Such examples of memory 104 may be used to implement any embodiment of the present disclosure.
[0063] According to various embodiments, processor 106 may include one or more types of processors and / or electronic circuits that may implement one or more computer and / or machine readable, writable and / or executable components and / or instructions that may be stored on memory 104. For example, processor 106 may perform various operations that may be specified by such computer and / or machine readable, writable and / or executable components and / or instructions, including but not limited to logic, control, input / output (I / O), arithmetic, etc. In some embodiments, processor 106 may include one or more central processing units, multi-core processors, microprocessors, dual microprocessors, microcontrollers, systems on a chip (SOCs), array processors, vector processors, and / or another type of processor. hereinafter, reference is made to processing unit 814 and Figure 8 A further example of the processor 106 is described. This example of the processor 106 may be used to implement any embodiment of the present disclosure.
[0064] In some embodiments, the quantum computing job scheduling system 102, memory 104, processor 106, scheduler component 108, run queue component 110, and / or another component of the quantum computing job scheduling system 102 as described herein may be communicative, electrically and / or operatively coupled to each other via a bus 112 to perform the functions of the system 100, the quantum computing job scheduling system 102, and / or any components coupled thereto. In several embodiments, the bus 112 may include one or more memory buses, memory controllers, peripheral buses, external buses, local buses, and / or another type of bus that may employ different bus architectures. Further examples of the bus 112 are described below with reference to the system bus 818 and Figure 8 Such an example of bus 112 may be used to implement any embodiment of the present disclosure.
[0065] In certain embodiments, the quantum computing job scheduling system 102 may include any type of component, machine, device, facility, equipment, and / or instrument that includes a processor and / or is capable of effective and / or operational communication with a wired and / or wireless network. All such embodiments are contemplated. For example, the quantum computing job scheduling system 102 may include a server device, a computing device, a general-purpose computer, a special-purpose computer, a quantum computing device (e.g., a quantum computer), a tablet computing device, a handheld device, a server-class computing machine and / or database, a laptop computer, a notebook computer, a desktop computer, a cellular phone, a smartphone, a consumer appliance and / or instrument, an industrial and / or commercial device, a digital assistant, a multimedia internet-enabled phone, a multimedia player, and / or another type of device.
[0066] In some embodiments, the quantum computing job scheduling system 102 may be coupled (e.g., communicatively, electrically, operatively, etc.) to one or more external systems, sources, and / or devices (e.g., computing devices, communication devices, etc.) via a data cable (e.g., High Definition Multimedia Interface (HDMI), Recommended Standard (RS) 232, Ethernet cable, etc.). In some embodiments, the quantum computing job scheduling system 102 may be coupled (e.g., communicatively, electrically, operatively, etc.) to one or more external systems, sources, and / or devices (e.g., computing devices, communication devices, etc.) via a network.
[0067] According to various embodiments, such networks may include wired and wireless networks, including but not limited to cellular networks, wide area networks (WANs) (e.g., the Internet), or local area networks (LANs). For example, the quantum computing job scheduling system 102 may communicate with one or more external systems, sources, and / or devices, such as computing devices (and vice versa) using virtually any desired wired or wireless technology, including but not limited to: Wireless Fidelity (Wi-Fi), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), Enhanced General Packet Radio Service (Enhanced GPRS), 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE), 3rd Generation Partnership Project 2 (3GPP2) Ultra Mobile Broadband (UMB), High Speed Packet Access (HSPA), Zigbee, and other 802.XX wireless technologies and / or traditional telecommunication technologies. Session Initiation Protocol (SIP), RF4CE protocol, WirelessHART protocol, 6LoWPAN (IPv6 over Low Power Wireless LAN), Z-Wave, ANT, Ultra-Wideband (UWB) standard protocol and / or other proprietary and non-proprietary communication protocols. In such examples, the quantum computing job scheduling system 102 may therefore include hardware (e.g., a central processing unit (CPU), a transceiver, a decoder), software (e.g., a set of threads, a set of processes, software in execution), or a combination of hardware and software that facilitates the transfer of information between the quantum computing job scheduling system 102 and external systems, sources, and / or devices (e.g., computing devices, communication devices, etc.).
[0068] According to various embodiments, the quantum computing job scheduling system 102 may include one or more computer and / or machine readable, writable, and / or executable components and / or instructions that, when executed by the processor 106, may facilitate the performance of operations defined by such components and / or instructions. Further, as described herein with or without reference to the various figures of the present disclosure, in many embodiments, any component associated with the quantum computing job scheduling system 102 may include one or more computer and / or machine readable, writable, and / or executable components and / or instructions that, when executed by the processor 106, may facilitate the performance of operations defined by such components and / or instructions. For example, the scheduler component 108, the run queue component 110, and / or any other component associated with the quantum computing job scheduling system 102 as disclosed herein (e.g., communicatively, electronically, and / or operatively coupled to and / or employed by the quantum computing job scheduling system 102) may include such computer and / or machine readable, writable, and / or executable components and / or instructions. Thus, according to various embodiments, the quantum computing job scheduling system 102 as disclosed herein and / or any component associated therewith may employ the processor 106 to execute such computer and / or machine readable, writable, and / or executable components and / or instructions to facilitate the performance of one or more operations described herein with reference to the quantum computing job scheduling system 102 and / or any such component associated therewith.
[0069] In some embodiments, to implement one or more quantum computing job scheduling operations, the quantum computing job scheduling system 102 can facilitate the performance of operations performed by and / or associated with the scheduler component 108, the run queue component 110, and / or another component associated with the quantum computing job scheduling system 102 as disclosed herein (e.g., the constraint checker component 302, the submission component 402, the non-starvation component 502, etc.). For example, as described in detail below, the quantum computing job scheduling system 102 can facilitate: determining an execution order of quantum computing jobs based on one or more quantum-based execution constraints; storing the quantum computing jobs based on the execution order; submitting at least one of the quantum computing jobs to one or more quantum computing devices based on the execution order; determining the execution order based on an approximation of the execution time of the quantum computing jobs; determining whether the execution order violates a qubit communication constraint; determining the execution order based on the availability of one or more qubits including a defined fidelity level; determining the execution order based on a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs; and / or determining the execution order based on at least one of: an approximation of the longest execution time of the quantum computing jobs, the availability of one or more preferred qubits, or a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs.
[0070] According to various embodiments, the scheduler component 108 can determine the execution order of quantum computing jobs based on one or more quantum-based execution constraints. For example, the scheduler component 108 can determine the execution order of quantum computing jobs (e.g., pending quantum computing execution instances to be executed), which can be executed by one or more quantum computing devices (e.g., one or more quantum computers, one or more quantum processors, and / or another quantum computing device). In some embodiments, such an execution order can include an execution schedule that includes references and / or descriptions of quantum computing jobs (e.g., pending quantum computing execution instances to be executed), wherein such an execution schedule can indicate when each quantum computing job can be executed by a certain quantum computer and / or by certain qubits of such a quantum computer. In some embodiments, such a quantum computing job can include a quantum computing execution instance, including but not limited to a computation, a data processing, and / or another quantum computing execution instance. In some embodiments, such one or more quantum-based operational constraints may include, but are not limited to, a defined number of qubits required to perform a quantum computing job, a defined number of qubits required to perform a quantum computing job based on error correction, and / or another quantum-based operational constraint (e.g., as described below with reference to operational sequence 200a, operational sequence 200b, Figure 2A and Figure 2B In these embodiments, such a defined number of qubits required to perform a quantum computing job and / or such a defined number of qubits required to perform a quantum computing job based on error correction may be defined by an entity (e.g., a human) using one or more input devices, output devices, and / or a user interface of the quantum computing job scheduling system 102 as described below.
[0071] In some embodiments, the scheduler component 108 can determine the order in which the quantum computing jobs are executed based on one or more quantum-based execution constraints by co-scheduling the quantum computing jobs using one or more bin packing algorithms. For example, the scheduler component 108 can employ a bin packing algorithm to co-schedule quantum computing jobs that require M(i) qubits, which can be executed using an N-qubit quantum computer, provided that the sum of all qubits used in parallel is less than or equal to N (e.g., the sum of all qubits used in parallel ≤ N). For example, the scheduler component 108 can employ one or more bin packing algorithms, including but not limited to a one-dimensional (1D) bin packing algorithm, a two-dimensional (2D) bin packing algorithm, a three-dimensional (3D) bin packing algorithm, a best fit algorithm, a first fit algorithm, a best fit reduce algorithm, a first fit reduce algorithm, and / or another bin packing algorithm.
[0072] In some embodiments, the scheduler component 108 can schedule quantum computing jobs so that they fit into a minimum number of iterations (e.g., execution cycles) by employing one or more container packing algorithms described above, determining the order in which the quantum computing jobs are executed based on one or more quantum-based execution constraints. For example, given an N-qubit (e.g., 8-qubit) quantum computer, the scheduler component 108 can collectively schedule J(i) quantum computing jobs (e.g., 2 jobs) per iteration, where each job requires M(i) qubits (e.g., as determined by Figure 2A 200a).
[0073] Figure 2A An example non-limiting operating sequence 200a of components that can facilitate quantum computing job scheduling according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0074] According to various embodiments, the execution sequence 200a may represent a pending quantum computing job (e.g., Figure 2AThese pending quantum computing jobs can be executed by a quantum computer having a total amount of total qubits 204 in R(i) iterations 202 (e.g., Figure 2A 1, Iteration 2, etc.), where each quantum computing job requires M(i) qubits. For example, Iteration 1 of the run order 200a may include references to Job 1 and Job 2 (e.g., quantum computing run instances) of pending quantum computing jobs, where Job 1 may require six (6) required qubits 206 and Job 2 may require two (2) required qubits 208. In some embodiments, the scheduler component 108 may determine the run order 200a by employing one or more of the container packing algorithms described above to schedule the quantum computing jobs so that they fit into a minimum number of iterations (e.g., execution cycles).
[0075] However, in some embodiments, the execution sequence 200a does not take into account one or more complex quantum computing-based constraints (e.g., constraints associated with using a quantum computer to perform processing workloads). For example, the execution sequence 200a does not take into account quantum computing-based constraints, including, but not limited to: once started, a quantum computing job (e.g., calculation, data processing, etc.) must be executed to completion; quantum computing jobs do not all take the same amount of time to execute; not all qubits can communicate directly with each other (e.g., not all qubits are interconnected and / or located in a single quantum computing device); not all quantum computing devices (e.g., quantum computers, quantum processors, etc.) will have the same number of qubits; and / or another quantum computing-based constraint.
[0076] In some embodiments, to address one or more of the aforementioned quantum-based constraints, the scheduler component 108 may determine the order of execution based on an approximation of the runtime of one or more quantum computing jobs. For example, the scheduler component 108 may use the circuit depth of a quantum circuit of a quantum computer to approximate the runtime of each quantum computing job, where the circuit depth may be the number of time steps required to complete an execution cycle (e.g., the circuit depth may describe the maximum length of a directed path starting at a circuit input and ending at a circuit output) when gates acting on discrete qubits are operated simultaneously. In another example, the scheduler component 108 may use the runtime of previously executed quantum computing jobs similar to the current quantum computing job to approximate the runtime of each quantum computing job.
[0077] In some embodiments, such runtime approximation can change the container packing method described above (where a uniform runtime can be assumed) to an alternative container packing method (where scheduler component 108 can determine the order in which quantum computing jobs are run based on the time slices of the qubits). For example, scheduler component 108 can schedule quantum computing jobs so that they fit into the time slices of the qubits by employing one or more of the container packing algorithms described above (e.g., Figure 2B The execution order of quantum computing jobs is determined based on one or more quantum-based execution constraints, as shown in the execution order 200b depicted in FIG, wherein each quantum computing job starts at a certain time and all required qubits are allocated at this time.
[0078] Figure 2B An example non-limiting operating sequence 200b of components that can facilitate quantum computing job scheduling according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0079] According to various embodiments, the execution order 200b may be represented as a J(i) reference of a pending quantum computing job (e.g., Figure 2B These pending quantum computing jobs can be executed by a quantum computer with a total quantum bit 204 in a T(i) time slice 210 (e.g., Figure 2A , T1, T2, etc.), where each quantum computation job requires M(i) qubits. For example, job 1 of run order 200b may require four (4) required qubits 212, which can execute job 1 to completion over four (4) time slices T1, T2, T3, and T4. In another example, job 2 of run order 200b may require four (4) required qubits 214, which can execute job 2 to completion over six (6) time slices T1, T2, T3, T4, T5, and T6. In some embodiments, the scheduler component 108 can determine the run order 200b by employing one or more of the container packing algorithms described above to schedule the quantum computation jobs so that they fit into the time slices of the qubits, where each quantum computation job starts at a certain time and all required qubits are allocated at such a time.
[0080] Return now Figure 1In some embodiments, a quantum computing-based constraint may include the degradation of qubits over time. For example, an existing quantum computing device (e.g., a quantum computer, a quantum processor, etc.) may include one or more qubits that may degrade over time, which may cause such a device to produce erroneous results for a quantum computing job (e.g., a computation). In some embodiments, to address such qubit degradation constraints, the scheduler component 108 may determine an order in which quantum computing jobs are run, wherein longer-running jobs are scheduled first, thereby reducing the likelihood of qubit errors occurring during the computation. For example, the scheduler component 108 may determine an order in which, e.g., Figure 2B , wherein the scheduler component 108 can determine the run order such that longer running jobs (e.g., Job 1 and / or Job 2) are scheduled and executed to completion before shorter running jobs (e.g., Job 3, Job 4, Job 5, and / or Job 6).
[0081] In some embodiments, the scheduler component 108 can employ one or more scheduling algorithms to determine the order in which the quantum computing jobs are executed, wherein longer-running jobs are scheduled before shorter-running jobs. For example, the scheduler component 108 can employ one or more scheduling algorithms, including, but not limited to, a longest job first (LJF) scheduling algorithm, a modified version of a shortest job first (SJF) scheduling algorithm (e.g., also known as shortest job next (SJN) or shortest process next (SPN)), and / or another scheduling algorithm that can facilitate scheduling longer-running jobs before shorter-running jobs.
[0082] In some embodiments, one or more quantum computing jobs may require execution by one or more qubits having a certain fidelity, which may constitute a quantum-based execution constraint. For example, one or more qubits of a quantum computing device (e.g., a quantum computer) may have a higher fidelity level than the fidelity levels of other qubits of such a quantum computer. As referred to herein, the fidelity of a qubit refers to the likelihood and / or degree of error introduced by the application of a quantum logic gate, i.e., higher-fidelity qubits experience a lower degree of error during the application of a quantum logic gate, experience a lower probability of error when compared to lower-quality qubits, or both. In some embodiments, scheduler component 108 may determine an execution order based on the availability of one or more qubits having a defined fidelity level. For example, scheduler component 108 may determine an execution order for quantum computing jobs based on a level of qubit fidelity that may be defined by an entity (e.g., a person). For example, the quantum computing job scheduling system 102 may include one or more input devices (e.g., a keyboard, a mouse, etc.), one or more output devices (e.g., a monitor), and / or a user interface (e.g., a graphical user interface (GUI)) including input controls that may enable an entity (e.g., a human user) to input qubit fidelity values required for one or more quantum computing jobs to the scheduler component 108. In these embodiments, the scheduler component 108 may determine an order in which to execute the quantum computing jobs based on such defined qubit fidelity levels by determining that one or more qubits having such defined qubit fidelity levels are available.
[0083] In some embodiments, the priority of quantum computing jobs can be decreased as the confidence in the answer increases, where such priority can constitute a quantum-based execution constraint. For example, if the standard deviation between shots (e.g., quantum state readouts, quantum logic readouts, etc.) is small (e.g., by some definition defined by an entity, such as a human user), the likelihood of having presented a correct answer is statistically higher, and therefore, the priority of the quantum computing job can be decreased. In some embodiments, the scheduler component 108 can determine the execution order based on such priority of one or more quantum computing jobs. For example, the scheduler component 108 can determine the execution order based on a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs, where such defined confidence level can be defined by an entity (e.g., a human). For example, the quantum computing job scheduling system 102 may include one or more input devices (e.g., a keyboard, a mouse, etc.), one or more output devices (e.g., a monitor), and / or a user interface (e.g., a graphical user interface (GUI)) including input controls that enable an entity (e.g., a human user) to input a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs to the scheduler component 108. In this example, because the confidence level corresponding to the correctness of certain (certain) quantum computing jobs meets and / or exceeds the defined confidence level, the scheduler component 108 may lower the priority level associated with such (one or more) quantum computing jobs, and determine the execution order of all quantum computing jobs based on the lowered priority level associated with such (one or more) quantum computing jobs.
[0084] In some embodiments, the scheduler component 108 can determine one or more second execution orders based on: one or more second quantum-based execution constraints corresponding to the second quantum computing job; and / or the completion of at least one quantum computing job. For example, based on receiving a new quantum computing job request having a quantum-based execution constraint corresponding thereto, the scheduler component 108 can determine a new execution order for the quantum computing jobs based on the new and previous quantum-based execution constraints, wherein such a new execution order can include the new quantum computing job and the previous quantum computing job that has not yet been fully executed. In another example, based on the complete execution of the previous quantum computing job, the scheduler component 108 can determine a new execution order for the remaining unexecuted quantum computing jobs, wherein such a new execution order can reflect the removal of the fully executed quantum computing job.
[0085] According to various embodiments, the run queue component 110 may store references to quantum computing jobs based on a run order. For example, the run queue component 110 may store references to quantum computing jobs based on a run order specified by the scheduler component 108 (e.g., as described above). Figure 2B The run queue component 110 may store references to quantum computing jobs (e.g., quantum computing run instances to be executed) in a run order determined by the quantum computing device (e.g., run order 200b). For example, the run queue component 110 may store a run schedule that includes references to pending quantum computing run instances to be executed by one or more quantum computing devices and / or one or more qubits of these devices.
[0086] In some embodiments, the run queue component 110 may store such references to quantum computing jobs on a memory (e.g., memory 104). In some embodiments, the memory 104 may include the run queue component 110 ( Figure 1 For example, the run queue component 110 may include a run queue of the memory 104, wherein the run queue component 110 may store such references to quantum computing jobs based on a run order.
[0087] In some embodiments, the run queue component 110 may store references to quantum computing jobs (e.g., on the run queue component 110 and / or memory 104) such that the references to the quantum computing jobs are arranged in the order (e.g., sequence) in which the quantum computing jobs are to be run (e.g., in the order of the sequence) (e.g., in the order in which the quantum computing devices execute the quantum computing jobs), wherein such an ordered arrangement may be based on a run order (e.g., run order 200b) determined by the scheduler component 108. In some embodiments, such an ordered arrangement (e.g., sequential order) of references to quantum computing jobs stored by the run queue component 110 (e.g., as described above, on the run queue component 110 and / or memory 104) may establish a priority associated with each quantum computing job. For example, the position (e.g., first, last, etc.) of a reference to a quantum computing job within such an ordered arrangement may indicate a priority corresponding to such a quantum computing job, wherein such a priority may be relative to all other quantum computing jobs in the ordered arrangement. In some embodiments, such a priority level may be modified by one or more components of the quantum computing job scheduling system 102 (e.g., via a process described below). Figure 5 Non-starving component 502 described).
[0088] Figure 3 A block diagram of an example non-limiting system 300 that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0089] According to various embodiments, to address the aforementioned quantum-based execution constraints where not all qubits can communicate directly with each other, the constraint checker component 302 can determine whether the execution order violates the qubit communication constraint. For example, the constraint checker component 302 can determine the execution order determined by the scheduler component 108 (e.g., as described above) by applying (e.g., superpositioning) a check constraint to such an execution order. Figure 1 described) violates the qubit communication constraints.
[0090] In some embodiments, to determine whether the execution order violates the qubit communication constraints, the constraint checker component 302 may determine all qubits required to perform a quantum computing job (e.g., Figure 2B 200b are coupled to one another such that they can directly communicate with one another (e.g., transfer quantum information to one another). For example, constraint checker component 302 can analyze one or more quantum circuits (e.g., circuit quantum electrodynamics (circuit QED)) of one or more quantum computing devices, such as a quantum computer, to determine whether certain qubits (e.g., required qubits 212) required to perform a certain quantum computing job are electrically, communicatively, and / or operatively coupled to one another. For example, constraint checker component 302 can analyze such quantum circuits to determine whether such certain qubits (e.g., required qubits 212) are inductively coupled to one another, conductively coupled to one another (e.g., via a resonant bus, resonant line, waveguide, transmission line, etc.), capacitively coupled to one another, and / or coupled to one another in another manner that can facilitate direct communication between such qubits.
[0091] In some embodiments, if the run order determined by the scheduler component 108 proposes to assign quantum computing jobs to certain qubits that violates the communication constraints, the constraint checker component 302 can reject such a run order. For example, if such a run order proposes to assign quantum computing jobs to certain qubits of quantum computing devices (e.g., quantum computers) that do not directly communicate with each other, the constraint checker component 302 can reject such a run order. In another example, if such a run order proposes to assign a quantum computing job to certain qubits of different quantum computing devices (e.g., certain qubits located in different quantum computers), the constraint checker component 302 can reject such a run order.
[0092] Figure 4 A block diagram of an example non-limiting system 400 that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0093] According to various embodiments, the submission component 402 can submit at least one quantum computing job to one or more quantum computing devices based on an execution order. For example, the submission component 402 can submit at least one quantum computing job to one or more quantum computing devices based on an execution order determined by the scheduler component 108 (e.g., as described above). Figure 2B 200b) from a run queue (e.g., the run queue component 110), wherein such a run order can indicate which quantum computing job can be selected at each selection time by a submission component 402. In this example, the submission component 402 can further submit such a quantum computing job to a quantum computing device (e.g., a quantum computer, a quantum processor, etc.), which can be indicated in the run order and such a quantum computing device can execute the quantum computing job until completion.
[0094] In some embodiments, to facilitate submission of quantum computing jobs to a quantum computing device based on a run order, the submission component 402 can employ a priority scheduling algorithm, wherein each quantum computing job can have a priority level corresponding thereto, which can be indicated by a run order determined by the scheduler component 108. For example, the submission component 402 can employ a priority scheduling algorithm used in classical computers and / or a modified version thereof to select a quantum computing job having a highest priority level corresponding thereto (e.g., as indicated by a run order determined by the scheduler component 108) from a run queue (e.g., the run queue component 110). In this example, based on such selection using the priority scheduling algorithm, the submission component 402 can submit (e.g., via a data cable and / or a network such as the Internet) such quantum computing job to a quantum computing device (e.g., a quantum computer, a quantum processor, etc.), wherein such quantum computing device can execute the quantum computing job to completion.
[0095] Figure 5 A block diagram of an example non-limiting system 500 that can facilitate quantum computing job scheduling components according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0096] According to various embodiments, the non-starvation component 502 can determine whether all quantum computing jobs are executed within a defined time. For example, the non-starvation component 502 can determine whether all quantum computing jobs included in the run sequence (e.g., Figure 2B 200b), wherein such defined time may be defined by an entity (e.g., as described above with reference to Figure 1The described method is defined by a person using one or more input devices, output devices, and / or user interfaces of the quantum computing job scheduling system 102.
[0097] In certain embodiments, based on the non-starvation component 502 determining that a quantum computing job has not been executed within a defined time, the non-starvation component 502 may facilitate execution of such unexecuted quantum computing jobs, even if such execution results in suboptimal use of resources (e.g., a quantum computer, quantum processor, etc.). For example, based on the non-starvation component 502 determining that a quantum computing job has not been executed within a defined time, the non-starvation component 502 may prompt the submission component 402 to submit such unexecuted quantum computing jobs to a quantum computing device that can execute the quantum computing job. For example, based on the submission component 402 utilizing a priority scheduling algorithm and / or a modified version thereof, the non-starvation component 502 may increase the priority associated with such unexecuted quantum computing jobs, thereby prompting the submission component 402 to submit such unexecuted quantum computing jobs to the quantum computing device.
[0098] In some embodiments, the quantum computing job scheduling system 102 may be a quantum computing job scheduling system and / or process associated with different technologies. For example, the quantum computing job scheduling system 102 may be associated with classical computer workload scheduling technology, quantum computer workload scheduling technology, quantum mechanics technology, quantum computing technology, quantum computer technology, quantum hardware and / or software technology, quantum simulator technology, classical and / or quantum domain data processing technology, machine learning technology, artificial intelligence technology, and / or other technologies.
[0099] In certain embodiments, the quantum computing job scheduling system 102 can provide technical improvements to the systems, devices, components, operational steps, and / or processing steps associated with the various technologies identified above. For example, the quantum computing job scheduling system 102 can determine the order in which quantum computing jobs are executed based on one or more quantum-based execution constraints, including, but not limited to: once started, a quantum computing job (e.g., computation, data processing, etc.) must be executed to completion; quantum computing jobs do not all take the same amount of time to execute; not all qubits can communicate directly with each other (e.g., not all qubits are interconnected and / or located in a single quantum computing device); not all quantum computing devices (e.g., quantum computers, quantum processors, etc.) will have the same number of qubits; and / or another quantum computing-based constraint. In this example, existing classical computer job scheduling techniques cannot take such quantum-based execution constraints into account when scheduling quantum computing jobs to be executed by a quantum computing device.
[0100] In certain embodiments, the quantum computing job scheduling system 102 can also provide technical improvements to quantum computing systems and / or devices (e.g., quantum computers, quantum processors, etc.) by improving the accuracy of solving quantum computing jobs performed by such quantum computing systems and / or devices. For example, the quantum computing job scheduling system 102 can determine an execution order that assigns quantum computing jobs to certain quantum computing devices having a defined fidelity level (e.g., a high fidelity level). In this example, the quantum computing job scheduling system 102 can thereby promote improved processing accuracy of processing units associated with such quantum computing systems and / or devices that perform quantum computing jobs. For example, the quantum computing job scheduling system 102 can promote such improved processing accuracy of such processing units by improving the accuracy of solving quantum computing jobs performed by such processing units (e.g., quantum processors).
[0101] In some embodiments, the quantum computing job scheduling system 102 can provide technical improvements to processing units associated with a quantum computing system and / or device. For example, by determining the execution order of quantum computing jobs to certain quantum computing devices and / or certain qubits based on quantum-based execution constraints, the quantum computing job scheduling system 102 can optimize the operation of such a quantum computing system and / or device. In this example, by optimizing the operation of such a quantum computing system and / or device, the quantum computing job scheduling system 102 can optimize the operation of the processing units associated with such a quantum computing system and / or device, thereby promoting improved processing performance and / or processing efficiency of such processing units by reducing the number of processing cycles and / or the total amount of processing time of such processing units.
[0102] In certain embodiments, the quantum computing job scheduling system 102 can employ hardware and / or software to solve problems that are highly technical in nature, are not abstract, and cannot be performed by a person as a set of mental actions. In some embodiments, some of the processes described herein can be performed by one or more special-purpose computers (e.g., one or more quantum computers, quantum processing units, etc.) to perform additional tasks associated with scheduling quantum computing jobs based on quantum operational constraints. In some embodiments, the quantum computing job scheduling system 102 and / or its components can be employed to solve new problems arising from advances in the aforementioned technologies (e.g., quantum computing), the use of cloud computing systems, computer architectures, and / or other technologies.
[0103] It should be understood that the quantum computing job scheduling system 102 can utilize various combinations of electrical components, mechanical components, and circuits that cannot be replicated or executed by a human mind to perform the quantum computing job scheduling process. For example, determining the execution order of quantum computing jobs based on one or more of the aforementioned quantum-based execution constraints, and / or determining the execution order for assigning quantum computing jobs to certain quantum computing devices with defined fidelity levels (e.g., high fidelity levels), is an operation that is beyond the capabilities of human mind. For example, the amount of data processed by the quantum computing job scheduling system 102 over a certain period of time, the speed at which such data is processed, and / or the type of data can be greater, faster, and / or different than the amount, speed, and / or type of data that a human mind can process over the same period of time.
[0104] According to several embodiments, the quantum computing job scheduling system 102 may also be fully operational toward performing one or more other functions (e.g., fully powered on, fully executed, etc.) while also executing the aforementioned quantum computing job scheduling process. It should be understood that such simultaneous multi-operation execution is beyond the capabilities of human thought. It should also be recognized that the quantum computing job scheduling system 102 may include information that is not possible to obtain manually by an entity (e.g., a human user). For example, the type, amount, and / or variety of information included in the scheduler component 108, the run queue component 110, the constraint checker component 302, the submission component 402, and / or the non-starvation component 502 may be more complex than the information obtained manually by a human user.
[0105] Figure 6 A flowchart illustrating an example non-limiting computer-implemented method 600 that can facilitate a quantum computing job scheduling component according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0106] At 602, a system (e.g., quantum computing job scheduling system 102 and / or scheduler component 108) operatively coupled to a processor (e.g., processor 106) determines an execution order (e.g., execution order 200b) of quantum computing jobs (e.g., computations, data processing, etc.) based on one or more quantum-based execution constraints. In some embodiments, such one or more quantum-based execution constraints may include constraints associated with executing a processing workload using a quantum computer. For example, such one or more quantum-based execution constraints may include, but are not limited to: a defined number of qubits required to execute the quantum computing job; a defined number of qubits required to execute the quantum computing job based on error correction; once started, the quantum computing job must be executed to completion; the quantum computing jobs do not all take the same amount of time to execute; not all qubits can directly communicate with each other (e.g., not all qubits are interconnected and / or located in a single quantum computing device); not all quantum computing devices (e.g., quantum computers, quantum processors, etc.) will have the same number of qubits; and / or another quantum computing-based constraint.
[0107] At 604, references to the quantum computing jobs are stored by the system (e.g., quantum computing job scheduling system 102, run queue component 110, and / or memory 104) based on a run order. In some embodiments, run queue component 110 can store references to the quantum computing jobs (e.g., on run queue component 110 and / or memory 104) such that the references to the quantum computing jobs are arranged in the order (e.g., sequence) in which the quantum computing jobs are to be run (e.g., in the order in which the quantum computing devices are to execute the quantum computing jobs), wherein such an ordered arrangement can be based on a run order determined by scheduler component 108 (e.g., run order 200b).
[0108] Figure 7 A flowchart illustrating an example non-limiting computer-implemented method 700 that can facilitate a quantum computing job scheduling component according to one or more embodiments described herein is shown. For the sake of brevity, repeated descriptions of similar elements and / or processes employed in various embodiments described herein are omitted.
[0109] At 702, a system (e.g., quantum computing job scheduling system 102 and / or scheduler component 108) operatively coupled to a processor (e.g., processor 106) determines an execution order (e.g., execution order 200b) of quantum computing jobs (e.g., computations, data processing, etc.) based on one or more quantum-based execution constraints. In some embodiments, such one or more quantum-based execution constraints may include constraints associated with executing a processing workload using a quantum computer. For example, such one or more quantum-based execution constraints may include, but are not limited to: a defined number of qubits required to execute the quantum computing job; a defined number of qubits required to execute the quantum computing job based on error correction; once started, the quantum computing job must be executed to completion; the quantum computing jobs do not all take the same amount of time to execute; not all qubits can directly communicate with each other (e.g., not all qubits are interconnected and / or located in a single quantum computing device); not all quantum computing devices (e.g., quantum computers, quantum processors, etc.) will have the same number of qubits; and / or another quantum computing-based constraint.
[0110] At 704 , at least one of the quantum computing jobs is submitted by a system (e.g., quantum computing job scheduling system 102 and / or submission component 402 ) to one or more quantum computing devices (e.g., quantum computers, quantum processors, etc.) based on the run order.
[0111] For simplicity of explanation, the computer-implemented method is depicted and described as a series of actions. It should be understood that the present invention is not limited to the actions shown and / or the order of the actions, for example, the actions can occur in different orders and / or simultaneously, and occur together with other actions not presented and described herein. In addition, not all of the actions shown are computer-implemented methods that are implemented according to the disclosed subject matter. In addition, it will be understood and appreciated by those skilled in the art that the computer-implemented method may alternatively be represented as a series of interrelated states via state diagrams or events. In addition, it should be further understood that the computer-implemented method disclosed hereinafter and throughout this specification can be stored on an article of manufacture so that such a computer-implemented method can be transmitted and transferred to a computer. As used herein, the term article of manufacture is intended to encompass a computer program accessible from any computer-readable device or storage medium.
[0112] To provide context for various aspects of the disclosed subject matter, Figure 8 The following discussion, together, is intended to provide a general description of a suitable environment in which various aspects of the disclosed subject matter may be implemented. Figure 8A block diagram illustrating an example non-limiting operating environment in which one or more embodiments described herein may be facilitated is shown. For the sake of brevity, repeated descriptions of similar elements employed in other embodiments described herein are omitted.
[0113] See also Figure 8 A suitable operating environment 800 for implementing various aspects of the present disclosure may also include a computer 812. The computer 812 may also include a processing unit 814, a system memory 816, and a system bus 818. The system bus 818 couples system components, including but not limited to the system memory 816, to the processing unit 814. The processing unit 814 may be any of a variety of available processors. Dual microprocessors and other multi-processor architectures may also be used as the processing unit 814. The system bus 818 may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus or external bus, and / or a local bus using various available bus architectures, including but not limited to Industry Standard Architecture (ISA), Micro Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), card bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), FireWire (IEEE 1394), and Small Computer System Interface (SCSI).
[0114] The system memory 816 may also include volatile memory 820 and nonvolatile memory 822. A basic input / output system (BIOS), containing the basic routines to transfer information between elements within the computer 812, such as during startup, is stored in the nonvolatile memory 822. The computer 812 may also include removable / non-removable, volatile / nonvolatile computer storage media. Figure 8 For example, disk storage 824 is shown. Disk storage 824 may also include, but is not limited to, devices such as a magnetic disk drive, a floppy disk drive, a tape drive, a Jaz drive, a Zip drive, an LS-100 drive, a flash memory card, or a memory stick. Disk storage 824 may also include storage media, either separately or in combination with other storage media. To facilitate connection of disk storage 824 to system bus 818, a removable or non-removable interface, such as interface 826, is typically used. Figure 8 Also depicted is software that acts as an intermediary between a user and the basic computer resources described in the appropriate operating environment 800. Such software may also include, for example, an operating system 828. The operating system 828, which may be stored on disk storage 824, is used to control and allocate the resources of the computer 812.
[0115] System applications 830 utilize operating system 828 to manage resources through program modules 832 and program data 834 (e.g., stored in system memory 816 or on disk storage 824). It should be understood that the present disclosure can be implemented using different operating systems or combinations of operating systems. A user inputs commands or information into computer 812 via input device 836. Input device 836 includes, but is not limited to, pointing devices such as a mouse, trackball, stylus, touchpad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, webcam, etc. These and other input devices are connected to processing unit 814 via interface port 838 through system bus 818. Interface port 838 includes, for example, a serial port, parallel port, game port, and universal serial bus (USB). Output device 840 uses some of the same types of ports as input device 836. Thus, for example, a USB port can be used to provide input to computer 812 and output information from computer 812 to output device 840. Output adapters 842 are provided to illustrate that there are some output devices 840 that require special adapters, such as monitors, speakers, and printers, among other output devices 840. By way of illustration and not limitation, output adapters 842 include video and sound cards that provide a means of connecting output devices 840 to the system bus 818. It should be noted that other devices and / or systems of devices provide both input and output capabilities, such as a remote computer 844.
[0116] Computer 812 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 844. Remote computer 844 can be a computer, server, router, network PC, workstation, microprocessor-based appliance, peer device, or other public network node, and can generally include many or all of the elements described with respect to computer 812. For simplicity, only memory storage device 846 is illustrated with remote computer 844. Remote computer 844 is logically connected to computer 812 via network interface 848, and then physically connected via communication connection 850. Network interface 848 encompasses wired and / or wireless communication networks, such as local area networks (LANs), wide area networks (WANs), cellular networks, and the like. LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring, and the like. WAN technologies include, but are not limited to, point-to-point links, circuit-switched networks (such as Integrated Services Digital Networks (ISDNs) and their variations), packet-switched networks, and Digital Subscriber Lines (DSLs). The communication connection 850 refers to the hardware / software used to connect the network interface 848 to the system bus 818. Although the communication connection 850 is shown internal to the computer 812 for clarity of illustration, it may also be external to the computer 812. The hardware / software used to connect to the network interface 848 may also include (for exemplary purposes only) internal and external technologies such as modems including conventional telephone-grade modems, cable modems, and DSL modems, ISDN adapters, and Ethernet cards.
[0117] Now see Figure 9 , depicts an illustrative cloud computing environment 950. As shown, the cloud computing environment 950 includes one or more cloud computing nodes 910, and local computing devices used by cloud consumers (such as personal digital assistants (PDAs) or mobile phones 954A, desktop computers 954B, laptop computers 954C and / or automobile computer systems 954N) can communicate with the cloud computing nodes 910. The nodes 910 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as the private clouds, community clouds, public clouds, or hybrid clouds described above, or a combination thereof. This allows the cloud computing environment 950 to provide infrastructure, platforms, and / or software as services without the cloud consumer needing to maintain resources on local computing devices. It should be understood that Figure 9 The types of computing devices 954A-N shown in are intended to be illustrative only, and computing node 910 and cloud computing environment 950 may communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).
[0118] Now see Figure 10, showing the cloud computing environment 950 ( Figure 9 ) provides a set of functional abstraction layers. It should be understood in advance that Figure 10 The components, layers, and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
[0119] The hardware and software layer 1060 includes hardware and software components. Examples of hardware components include: mainframes 1061; servers based on RISC (Reduced Instruction Set Computer) architecture 1062; servers 1063; blade servers 1064; storage devices 1065; and network and networking components 1066. In some embodiments, software components include network application server software 1067 and database software 1068.
[0120] The virtualization layer 1070 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 1071 ; virtual storage 1072 ; virtual networks 1073 , including virtual private networks; virtual applications and operating systems 1074 ; and virtual clients 1075 .
[0121] In one example, the management layer 1080 may provide the functionality described below. Resource provisioning 1081 provides dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing 1082 provides cost tracking when utilizing resources within the cloud computing environment, as well as billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection of data and other resources. User portal 1083 provides access to the cloud computing environment for consumers and system administrators. Service level management 1084 provides cloud computing resource allocation and management so that required service levels are met. Service level agreement (SLA) planning and fulfillment 1085 provides pre-arrangement and procurement of cloud computing resources in anticipation of future requirements according to the SLA.
[0122] The workload layer 1090 provides examples of functionality that can utilize a cloud computing environment. Non-limiting examples of workloads and functionality that can be provided from this layer include: mapping and navigation 1091; software development and lifecycle management 1092; virtual classroom education delivery 1093; data analytics processing 1094; transaction processing 1095; and quantum computing job scheduling software 1096.
[0123] The present invention may be a system, method, device, and / or computer program product at any possible level of integrated technical detail. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon for causing a processor to perform various aspects of the present invention. A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure within a groove on which instructions are stored, and any suitable combination thereof. The computer-readable storage medium used herein is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or an electrical signal transmitted through wires.
[0124] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device. The computer-readable program instructions for performing the operations of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data of an integrated circuit, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and procedural programming languages, such as "C" programming language or similar programming languages. These computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuits (including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs)) can execute computer-readable program instructions to personalize the electronic circuits by utilizing state information of the computer-readable program instructions to perform various aspects of the present invention.
[0125] Aspects of the present invention are described herein with reference to flowcharts of methods, devices (systems) and computer program products according to embodiments of the present invention, and / or block diagrams. It should be understood that each block of the flowchart and / or block diagram, as well as the combination of blocks in the flowchart and / or block diagram, can be implemented by computer-readable program instructions. These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to produce a machine that is executed by a processor of a computer or other programmable data processing device to create a device for implementing the function / action specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that can boot a computer, a programmable data processing device, and / or other devices that function in a specific manner, so that the computer-readable storage medium with instructions stored therein includes an article of manufacture that includes instructions for implementing various aspects of the function / action specified in one or more blocks in the flowchart and / or block diagram. The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device that causes a series of operational actions to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus or other device implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0126] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations of possible implementations of the systems, methods and computer program products according to various embodiments of the present invention. To this end, each box in the flowchart or block diagram may represent a part of a module, segment or instruction, which includes one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the functions involved, the two boxes shown in succession may actually be executed substantially simultaneously, or the boxes may sometimes be executed in the opposite order. It will also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart can be implemented by a system based on dedicated hardware, which performs a specified function or action or performs a combination of dedicated hardware and computer instructions.
[0127] Although the present invention has been described above in the general context of computer-executable instructions of a computer program product running on a computer and / or multiple computers, it will be appreciated by those skilled in the art that the present invention can also or can be implemented in conjunction with other program modules. Typically, a program module includes routines, programs, components, data structures, etc. that perform specific tasks and / or implement specific abstract data types. In addition, it will be appreciated by those skilled in the art that the computer-implemented method of the present invention can be put into practice with other computer system configurations, including single-processor or multi-processor computer systems, small computing devices, mainframe computers, and computers, handheld computing devices (e.g., PDAs, phones), microprocessor-based or programmable consumer or industrial electronic products, etc. The illustrated aspects can also be put into practice in a distributed computing environment in which a remote processing device linked by a communication network performs tasks. However, some aspects of the present invention (if not all) can be put into practice on a stand-alone computer. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
[0128] As used in this application, the terms "component", "system", "platform", "interface" and the like may refer to and / or may include computer-related entities or entities related to an operating machine having one or more specific functions. The entities disclosed herein may be hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to, a process, a processor, an object, an executable file, a thread of execution, a program, and / or a computer running on a processor. As an illustration, both an application running on a server and a server may be components. One or more components may reside within a process and / or thread of execution, and a component may be located on one computer and / or distributed between two or more computers. In another example, the corresponding component may be executed from different computer-readable media having different data structures stored thereon. Components may communicate via local and / or remote processes, such as according to signals with one or more data packets (e.g., data from a component interacting with another component in a local system, a distributed system, and / or interacting with other systems via signals across a network (such as the Internet). As another example, a component may be a device having a specific function provided by a mechanical component operated by an electrical or electronic circuit, which is operated by a software or firmware application executed by a processor. In this case, the processor can be internal or external to the device and can execute at least a portion of a software or firmware application. As another example, the component can be a device that provides a specific functionality through electronic components without mechanical components, where the electronic components can include a processor or other device for executing software or firmware that at least partially provides the functionality of the electronic components. In one aspect, the component can emulate the electronic components via a virtual machine within a cloud computing system, for example.
[0129] In addition, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". That is, unless otherwise specified or clear from the context, "X employs A or B" is intended to mean any natural inclusive arrangement. That is, if X employs A; X employs B; or X employs both A and B, then "X employs A or B" is satisfied in any of the foregoing cases. In addition, the articles "a" and "an" used in this specification and the drawings should generally be interpreted as meaning "one or more" unless otherwise specified or clear from the context to be directed to the singular form. As used herein, the terms "example" and / or "exemplary" are used to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited to such examples. In addition, any aspect or design described herein as an "example" and / or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it intended to exclude equivalent exemplary structures and techniques known to those of ordinary skill in the art.
[0130] As used in this subject specification, the term "processor" may refer to substantially any computational processing unit or device, including but not limited to a single-core processor; a single processor with software multi-threaded execution capability; a multi-core processor; a multi-core processor with software multi-threaded execution capability; a multi-core processor with hardware multi-threading technology; a parallel platform; and a parallel platform with distributed shared memory. Additionally, a processor may refer to an integrated circuit, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Further, a processor may utilize nanoscale architectures, such as, but not limited to, molecular and quantum dot-based transistors, switches, and gates, in order to optimize space usage or enhance the performance of a user device. A processor may also be implemented as a combination of computational processing units. In this disclosure, terms such as "storage," "memory," "data storage," "data storage," "data storage," "database," and substantially any other information storage component related to the operation and functionality of the component are used to refer to a "memory component," an entity embodied in "memory," or a component that includes memory. It should be understood that the memory and / or memory components described herein may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. By way of illustration and not limitation, non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory may include RAM, which may, for example, act as external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). In addition, the memory components of the systems or computer-implemented methods disclosed herein are intended to include, but are not limited to, these and any other suitable types of memory.
[0131] What has been described above includes only examples of systems and computer-implemented methods. Of course, for the purposes of describing the present disclosure, it is not possible to describe every conceivable combination of components or computer-implemented method, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present disclosure are possible. Furthermore, to the extent that the terms "including," "having," "having," and the like are used in the detailed description, claims, appendices, and drawings, such terms are intended to be inclusive in a manner similar to the term "comprising" as "comprising" is to be interpreted when used as a transitional word in a claim.
[0132] The description of the various embodiments has been presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A system for facilitating a quantum computing job scheduling process, comprising: a memory storing computer-executable components; as well as a processor that executes the computer-executable components stored in the memory, wherein the computer-executable components include: a scheduler component that schedules quantum computing jobs by using one or more container packing algorithms to determine the execution order of the quantum computing jobs based on one or more quantum-based execution constraints; a run queue component that stores references to the quantum computing jobs based on the run order to establish a priority associated with each quantum computing job; a constraint checker component that determines whether the execution order violates a qubit communication constraint; a submission component that, in response to the execution order not violating a qubit communication constraint, submits at least one of the quantum computing jobs to one or more quantum computing devices based on the execution order; a non-starvation component that determines whether all of the quantum computing jobs are executed within a defined time; In response to determining that a first quantum computing job in at least one of the quantum computing jobs has not been executed within the defined time, the non-starvation component is further configured to increase a priority of the first quantum computing job; and the submission component is configured to submit the first quantum computing job to the quantum computing device based on a priority scheduling algorithm.
2. The system of claim 1, wherein: The scheduler component also determines the execution order based on approximate values of execution times of the quantum computing jobs.
3. The system of claim 1 or 2, wherein: The scheduler component also determines one or more second execution orders based on at least one of: one or more second quantum-based execution constraints corresponding to a second quantum computing job; or completion of at least one of the quantum computing jobs.
4. The system of claim 1 or 2, wherein: The scheduler component also determines the execution order based on availability of one or more qubits comprising a defined fidelity level to facilitate improved processing accuracy of at least one of: the processor; or processing units associated with one or more quantum computing devices that execute the quantum computing job based on the execution order.
5. The system of claim 1 or 2, wherein: The scheduler component also determines the execution order based on a defined confidence level corresponding to correctness of at least one of the quantum computing jobs.
6. The system of claim 1 or 2, wherein: The one or more quantum-based operational constraints include at least one of: a defined number of qubits to perform a quantum computing operation; or a defined number of qubits to perform a quantum computing operation based on error correction.
7. A computer-implemented method for facilitating a quantum computing job scheduling process, comprising: collectively scheduling quantum computing jobs by a system operatively coupled to the processor using one or more container packing algorithms to determine an execution order of the quantum computing jobs based on one or more quantum-based execution constraints; storing, by the system, references to the quantum computing jobs based on the execution order to establish a priority associated with each quantum computing job; determining, by the system, whether the execution order violates a qubit communication constraint; submitting, by the system, at least one of the quantum computing jobs to one or more quantum computing devices based on the execution order in response to the execution order not violating the qubit communication constraint; determining, by the system, whether all of the quantum computing jobs are executed within a defined time; In response to determining that a first quantum computing job in at least one of the quantum computing jobs has not been executed within the defined time, increasing a priority of the first quantum computing job; as well as, The first quantum computing job is submitted to the quantum computing device based on using a priority scheduling algorithm.
8. The computer-implemented method of claim 7, wherein: The determining includes determining, by the system, the execution order based on an approximation of the execution time of the quantum computing job.
9. The computer-implemented method of claim 7 or 8, wherein the determining comprises: The execution order is determined by the system based on the availability of one or more qubits comprising a defined fidelity level to facilitate improved processing accuracy of at least one of: the processor; or processing units associated with one or more quantum computing devices that perform the quantum computing job based on the execution order.
10. The computer-implemented method of claim 7 or 8, wherein: The determination includes: The execution order is determined by the system based on a defined confidence level corresponding to the correctness of at least one of the quantum computing jobs.
11. A computer program product for facilitating a quantum computing job scheduling process, the computer program product comprising: Storing instructions for execution by a processing circuit to perform a method as claimed in any one of claims 7 to 10.
Citation Information
Patent Citations
Component mounting and dispatching optimization method for chip mounter on basis of quantum neural network
CN102883548A
Scheduling server for scheduling quantum computers as well as scheduling method and application thereof
CN108874538A