Method and device for executing computing task on cloud system and storage medium
By locking available hardware and computing resources based on priority, the method addresses the inefficiencies in EDA cloud systems, ensuring efficient resource allocation and task execution.
Patent Information
- Application Number
- CN202411256782.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-09
- Publication Date
- 2024-12-31
AI Technical Summary
The management and allocation of resources in EDA cloud systems is complex due to the inclusion of hardware simulation resources, which conventional task schedulers like SLURM and LSF do not support, leading to inefficient resource utilization and task failures.
A method and device for executing computing tasks on a cloud system that involves locking available hardware and computing resources that meet the task requirements, ensuring efficient resource management by applying and reserving resources in an ordered manner based on priority, using a sequential lock mechanism.
This approach ensures efficient and orderly resource allocation, preventing long-term occupation of resources and improving throughput by guaranteeing successful task execution and maximizing server performance.
Smart Images

Figure CN119225927A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computers, and in particular to a method, device, and storage medium for executing computing tasks on a cloud system. Background Art
[0002] In recent years, with the increase in the scale of chip design, local computing power has been stretched in some cases during the verification process. In addition, the verification process usually involves multiple tools, such as software simulators, formal verification tools, and hardware simulators (including prototype verification devices). A complete chip design involves more tools. Therefore, in the chip design industry, on the one hand, some tools are short of computing resources at certain times, and on the other hand, some tools cannot fully utilize computing resources due to the long tool chain.
[0003] Therefore, putting EDA tools on the cloud as cloud computing resources has become a feasible solution to the above problems. When EDA tools are put on the cloud, many technical requirements that are completely different from ordinary cloud computing arise. For example, the computing resources of ordinary cloud computing are limited to processors and memory, and the amount of processor and memory resources can be considered almost unlimited. However, the resources of the EDA cloud system include computing resources and hardware simulation resources (for example, hardware simulation tools and daughter cards, etc.). This makes the request and allocation of resources in the EDA cloud system far more complicated than ordinary meta-computing.
[0004] Therefore, how to effectively manage the request and allocation of cloud system resources is a technical problem that needs to be solved urgently. Summary of the invention
[0005] In view of this, the present application proposes a method, an apparatus and a storage medium for executing computing tasks on a cloud system.
[0006] In a first aspect of the present application, a method for executing a computing task on a cloud system is provided, wherein the cloud system includes multiple hardware resources and a computing cluster, and the computing cluster includes multiple computing resources. The method includes: obtaining the computing task from a queue; determining whether there are currently available hardware resources that meet the computing task among the multiple hardware resources and determining whether there are currently available computing resources that meet the computing task among the multiple computing resources; in response to the existence of currently available hardware resources and currently available computing resources, locking the currently available hardware resources and the currently available computing resources, respectively; and sending the computing task to the computing cluster to execute the computing task on the currently available hardware resources and the currently available computing resources.
[0007] In a second aspect of the present application, a computing device for executing computing tasks on a cloud system is provided, comprising: a memory for storing a plurality of instructions; and at least one processor for executing the plurality of instructions so that the computing device performs the method described in the first aspect.
[0008] According to a third aspect of the present application, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores a set of instructions for a computing device, wherein the set of instructions is used to enable the computing device to execute the method described in the first aspect.
[0009] The present application provides a method, device and storage medium for executing a computing task on a cloud system, the cloud system includes multiple hardware resources and a computing cluster, and the computing cluster includes multiple computing resources. When it is determined that there are currently available hardware resources that meet the computing task among the multiple hardware resources and it is determined that there are currently available computing resources that meet the computing task among the multiple computing resources, the computing task is sent to the computing cluster by locking the currently available hardware resources and the currently available computing resources respectively, so that the computing task can be executed on the currently available hardware resources and the currently available computing resources, thereby realizing efficient management and use of cloud system resource requests and allocations. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] In order to more clearly illustrate the technical solutions in the present application or the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only for the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0011] Figure 1 A schematic diagram of a computing device according to an embodiment of the present application is shown.
[0012] Figure 2 A schematic diagram of a cloud system according to an embodiment of the present application is shown.
[0013] Figure 3 A schematic diagram of an EDA computing system according to an embodiment of the present application is shown.
[0014] Figure 4 A flowchart of an exemplary method for executing computing tasks on a cloud system according to an embodiment of the present application is shown.
[0015] Figure 5 A schematic diagram of a configuration flow of an exemplary sequential lock according to an embodiment of the present application is shown.
[0016] Figure 6A flowchart of an exemplary method for executing computing tasks on a cloud system according to an embodiment of the present application is shown. DETAILED DESCRIPTION
[0017] In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the present application is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.
[0018] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in this application should be understood by people with ordinary skills in the field to which this application belongs. The words "first", "second" and similar words used in this application do not indicate any order, quantity or importance, but are only used to distinguish different components. "Include" or "comprise" and similar words mean that the elements or objects appearing before the word include the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect.
[0019] As mentioned above, when EDA (Electronic Design Automation) tools are put on the cloud, many technical requirements that are completely different from ordinary cloud computing are generated. For example, the computing resources of ordinary cloud computing are limited to processors and memory, and the amount of processor and memory resources can be considered almost unlimited. However, the resources of the EDA cloud system include computing resources and hardware simulation resources (for example, hardware simulation tools and daughter cards, etc.). This makes the request and allocation of resources in the EDA cloud system far more complicated than ordinary meta-computing.
[0020] The computing resources of ordinary cloud computing can include computing resources in a computing cluster, which is managed by a task scheduler. Commonly used task schedulers, such as the SLURM (Simple Linux Utility for Resource Management) scheduler and the LSF (Load Sharing Facility) scheduler, only support the scheduling of common computing resources such as central processing units (CPUs) and graphics processing units (GPUs).
[0021] In EDA scenarios, hardware resources used for hardware simulation cannot usually be directly scheduled using the SLURM and LSF schedulers. Therefore, EDA tools usually directly apply for hardware resources, which is completely separate from the scheduling process of computing resources in the computing cluster.
[0022] Conventional computing cluster task scheduling is to submit first, and if computing resources are applied for from the computing cluster first, the computing task will be scheduled. If the hardware resource application fails at this time, there may be two ways to deal with it.
[0023] On the one hand, the EDA tool directly fails to apply, that is, it does not retry the resource application, so as to quickly release the computing resources applied from the computing cluster, so as to ensure that other computing tasks can use the released computing resources. However, this will make it impossible to predict whether the hardware resources can be applied for this submission, or whether the required hardware resources exist. If the required hardware resources do not exist at all, then each time a computing task is submitted, it will most likely fail.
[0024] On the other hand, the EDA tool can retry and wait for successful application of hardware resources. In this way, the hardware resources may be applied for eventually. However, due to the uncertain waiting time, the computing resources of the computing cluster that have been applied for will be occupied for a long time without being used, resulting in low utilization of computing resources in the computing cluster.
[0025] If you apply for hardware resources first and then submit computing tasks to the computing cluster, there will also be a problem of computing tasks waiting in line due to insufficient computing resources in the computing cluster, resulting in a waste of hardware resources that are applied for but not used.
[0026] In summary, how to effectively manage the request and allocation of cloud system resources is a technical problem that needs to be solved urgently.
[0027] In order to solve at least the above technical problems, the present application proposes a method, device and storage medium for executing a computing task on a cloud system, the cloud system includes multiple hardware resources and a computing cluster, and the computing cluster includes multiple computing resources. When it is determined that there are currently available hardware resources that meet the computing task among the multiple hardware resources and it is determined that there are currently available computing resources that meet the computing task among the multiple computing resources, the computing task is sent to the computing cluster by locking the currently available hardware resources and the currently available computing resources respectively, so that the computing task can be executed on the currently available hardware resources and the currently available computing resources, thereby realizing efficient management and use of cloud system resource requests and allocations.
[0028] Figure 1 FIG. 1 is a schematic diagram of a computing device 100 according to an embodiment of the present application. Figure 1 As shown, the computing device 100 may include: a processor 102, a memory 104, a network interface 106, a peripheral interface 108 and a bus 110. The processor 102, the memory 104, the network interface 106 and the peripheral interface 108 are connected to each other in communication within the computing device through the bus 110.
[0029] The processor 102 may be a central processing unit (CPU), an image processor, a neural network processor (NPU), a microcontroller (MCU), a programmable logic device, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or one or more integrated circuits. The processor 102 may be used to perform functions related to the technology described in this application. In some embodiments, the processor 102 may also include multiple processors integrated into a single logical component. Figure 1 As shown, the processor 102 may include a plurality of processors 102a, 102b, and 102c.
[0030] The memory 104 may be configured to store data (eg, instructions, lists of TCL objects, computer code, attributes of an object and values of the attributes, etc.). Figure 1 As shown, the data stored in the memory may include program instructions (e.g., program instructions for implementing the method for performing computing tasks on a cloud system of the present application) and data to be processed (e.g., the memory may store temporary codes generated during the compilation process, attributes of an object and the values of the attributes, etc.). The processor 102 may also access the program instructions and data stored in the memory, and execute the program instructions to operate on the data to be processed. The memory 104 may include a volatile storage device or a non-volatile storage device. In some embodiments, the memory 104 may include a random access memory (RAM), a read-only memory (ROM), an optical disk, a magnetic disk, a hard disk, a solid-state drive (SSD), a flash memory, a memory stick, etc.
[0031] The network interface 106 can be configured to provide the computing device 100 with communication with other external devices via a network. The network can be any wired or wireless network capable of transmitting and receiving data. For example, the network can be a wired network, a local wireless network (e.g., Bluetooth, WiFi, near field communication (NFC), etc.), a cellular network, the Internet, or a combination thereof. It is understood that the type of network is not limited to the above specific examples. In some embodiments, the network interface 106 can include any number of network interface controllers (NICs), radio frequency modules, transceivers, modems, routers, gateways, adapters, cellular network chips, etc. Any combination.
[0032] The peripheral interface 108 may be configured to connect the computing device 100 to one or more peripheral devices to implement information input and output. For example, the peripheral devices may include input devices such as a keyboard, a mouse, a touch pad, a touch screen, a microphone, and various sensors, and output devices such as a display, a speaker, a vibrator, and an indicator light.
[0033] The bus 110 may be configured to transmit information between various components of the computing device 100 (e.g., the processor 102, the memory 104, the network interface 106, and the peripheral interface 108), such as an internal bus (e.g., a processor-memory bus), an external bus (USB port, PC IE bus), etc.
[0034] It should be noted that, although the above computing device architecture only shows the processor 102, the memory 104, the network interface 106, the peripheral interface 108 and the bus 110, in the specific implementation process, the computing device architecture may also include other components necessary for normal operation. In addition, it can be understood by those skilled in the art that the above computing device architecture may also only include components necessary for implementing the embodiments of the present application, and does not necessarily include all the components shown in the figure.
[0035] Figure 2 A schematic diagram of a cloud system 120 according to an embodiment of the present application is shown.
[0036] like Figure 2 As shown, the cloud system 120 may include multiple cloud servers (122, 124) and multiple hardware simulation tools (e.g., 126a, 126b, 126c). It is understandable that the cloud system 120 may include more types of resources, and only cloud servers and hardware simulation tools are used as examples for illustration, which is not intended to be limiting. These cloud servers may be, for example, Figure 1The computing device 100 shown is a computer provided by a cloud computing server. The cloud server (122, 124) can provide computing resources to users on the one hand, and can also serve as a host of hardware simulation resources to call multiple hardware simulation tools (e.g., 126a, 126b, 126c) in the cloud system 120 on the other hand. It is understood that multiple hardware simulation tools can be connected to multiple hosts. Figure 2 Just an example.
[0037] The multiple hardware simulation tools may include a hardware simulator, a prototype verification tool, and peripheral modules (e.g., various daughter cards, etc.) connected to the hardware simulator or the prototype verification tool. It is understandable that the multiple hardware simulation tools may include more hardware resources and are not limited to the above examples.
[0038] The cloud system 120 may be used to provide verification cloud computing resources. Cloud computing resources may include a processor (eg, provided by a cloud server), a memory (eg, provided by a cloud server), a hardware simulation tool, etc. Therefore, the cloud system 120 is also referred to as cloud computing resources 120 in this application.
[0039] Figure 3 A schematic diagram of an EDA computing system 130 according to an embodiment of the present application is shown.
[0040] The EDA computing system 130 of the present application may be a local computing system, and may include a computing device 132 . In some embodiments, the computing system 130 may further include a local computing resource 134 .
[0041] The computing device 132 may be Figure 1 The computing device 100 shown. The computing device 132 can provide a resource manager to the user, and provide an interface connected to the cloud system 120 and an interface connected to computing resources 134a and 134b. The local host 132 (i.e., the computing device 132) can also allocate different computing tasks to the cloud or locally accordingly.
[0042] In some embodiments, the local computing resource 134 may include at least one of a server 134a or a hardware verification tool 134b. A plurality of EDA tasks (i.e., computing tasks) may be partially executed on the cloud computing resources 120 and partially executed on the local computing resources 134. It is understood that a plurality of EDA tasks may also be executed only on the cloud computing resources 120 or only on the local computing resources 134.
[0043] The server 134a may be Figure 1The host 100 shown. In some embodiments, the server 134a can run at least one EDA software tool (e.g., a software simulator, a formal verification tool, etc.). The server 134a can also serve as a host of a hardware verification tool 134b, and is used to collaborate with the hardware verification tool 134b to complete verification tasks and read verification results.
[0044] The hardware verification tool 134b may illustratively include hardware verification tools such as a prototype verification board and a hardware emulator.
[0045] although Figure 3 Only a limited number of local computing resources 134 are used, but those skilled in the art will appreciate that any number of local computing resources 134 can be provided according to actual needs. In other words, there can be multiple servers 134a and multiple hardware verification tools 134b. The servers 134a and the hardware verification tools 134b are not necessarily provided in a one-to-one pairing. For example, one server 134a can be connected to multiple hardware verification tools.
[0046] Figure 4 FIG. 4 is a flow chart of an exemplary method 400 for executing a computing task on a cloud system according to an embodiment of the present application. Figure 4 As shown, method 400 may be performed by computing device 132. Cloud system 420 may include computing cluster 422 and multiple hardware resources, and computing cluster 422 may include multiple computing resources. It is understood that Figure 4 The number of computing tasks, hardware resources, and computing clusters are exemplary and not limiting.
[0047] In the execution of cloud computing tasks, computing resources in the computing cluster can be used in a queue manner. Figure 4 As shown, computing tasks may be placed in a queue 404, which may be a first-in, first-out queue in some embodiments.
[0048] As described above, the task scheduling of conventional computing clusters is to submit first. If the computing resources meet the computing tasks, the computing tasks will be scheduled, otherwise they will wait in the queue. However, this will make it impossible for the user to determine the length of the waiting time. Therefore, in some embodiments, computing resources that meet the computing tasks can be pre-applied for in multiple computing resources and hardware resources that meet the computing tasks can be pre-applied for in multiple hardware resources. If the computing resources and hardware resources that meet the computing tasks can be applied for and reserved, the computing tasks can be submitted to the computing cluster for execution. In this way, by simultaneously applying for and reserving computing resources and hardware resources that meet the computing tasks, it can be ensured that the computing tasks are successfully scheduled after being submitted to the computing cluster and the computing tasks can be quickly started.
[0049] When computing resources and hardware resources that satisfy the computing task are applied for and reserved at the same time, in some embodiments, if any of the computing resources and hardware resources do not satisfy the computing task, the applied computing resources or hardware resources can be released immediately, and the computing task can be put back in queue 404. This can avoid the problem of long-term occupation of the applied resources, resulting in low resource utilization.
[0050] In some scenarios, multiple computing tasks in queue 404 have priorities, so it is necessary to complete the application and reservation of resources in the order of the priorities of the computing tasks. Therefore, in some embodiments, multiple sequential locks can be configured for multiple computing tasks in queue 404, and computing resources and hardware resources are applied for based on the order of the multiple sequential locks, and the applied computing resources and hardware resources are locked respectively using the sequential locks.
[0051] In a conventional queue, after computing tasks with different priorities are dequeued in the order of first-in, first-out, a computing task with a higher priority may not apply for and reserve resources, but a computing task with a lower priority may apply for and reserve resources. By using the method of this embodiment, resource reservation can be completed in the order of priority in a scenario where the priorities of multiple computing tasks need to be guaranteed.
[0052] Figure 5 A schematic diagram of a configuration flow of an exemplary sequential lock according to an embodiment of the present application is shown.
[0053] Multiple computing tasks are placed in a first-in-first-out queue 402. In some embodiments, after the computing tasks are dequeued from the queue 402 in order of priority, a token may be generated for each computing task in order of priority. The token may be a circular array rather than an infinitely growing array, so that limited space can be used to continuously generate and release tokens.
[0054] According to the order in which tokens are generated, sequential locks can be configured for each computing task in the ordered critical section. Figure 5As shown, multiple computing tasks are dequeued in the priority order of computing tasks 502, 504, 506, and 508, and tokens can be generated for computing tasks 502, 504, 506, and 508 respectively in this order. In this way, when configuring the sequential lock, it can be determined whether the current computing task is allowed to enter the ordered critical section based on the token held. If not allowed, the current computing task will wait outside the ordered critical section until it reaches the sequence corresponding to the token of the computing task and enters the ordered critical section to lock the computing task. After the resource reservation operation is completed, the computing task can be unlocked, and the thread of the computing task corresponding to the token of the next order is woken up to lock it.
[0055] After completing the configuration of the sequential lock, Figure 4 As shown, multiple computing tasks can lock the resources applied for according to the priority of the sequence lock. Taking the example that the priority of the sequence lock (e.g., the first sequence lock) corresponding to computing task 406 (e.g., the first computing task) is higher than the priority of the sequence lock (e.g., the second sequence lock) corresponding to computing task 408 (e.g., the second computing task), in some embodiments, the hardware resources and computing resources applied for can be locked for the computing task 406 with a higher priority, and the computing task can be submitted to the cloud system 420. In this way, by configuring the sequence lock for the computing task, the on-demand and orderly application and scheduling of resources are guaranteed.
[0056] Since the computing tasks in the queue 404 are set with different priorities, they may be dequeued one after another, so the process of submitting computing tasks to the cloud system 420 for scheduling is performed serially. However, the serial dequeuing and serial scheduling of computing tasks will result in a low throughput of the entire computing task execution process.
[0057] In order to solve the scheduling throughput problem while ensuring the normal function of the priority function, such as Figure 4 As shown, in some embodiments, computing tasks dequeued from queue 404 can be processed concurrently. For example, computing tasks 406, 408, and 410 can reserve resources and schedule them in the same time period to improve the throughput of the computing task execution process and give full play to the performance of the server.
[0058] During the execution of the entire computing task, since the process of locking the computing task needs to be executed sequentially, the locking process can be processed serially. In some embodiments, other processes except locking, such as the token generation process before locking, can also be executed concurrently, which can further improve the throughput of the computing task execution process.
[0059] When multiple computing tasks are processed concurrently after being dequeued, in order to avoid the problem of multiple computing tasks applying for and reserving the same resource in the same time period, in some embodiments, the sequential lock can be configured with a synchronization mechanism, so that when the applied computing resources and hardware resources are locked, all of the computing resources and hardware resources can be locked to prevent other computing tasks from locking the same resource.
[0060] like Figure 4 As shown, the cloud system 420 also includes a task scheduler 426 for managing the computing cluster 422. As mentioned above, in the EDA scenario, the hardware resources used for hardware simulation cannot usually be directly scheduled using the SLURM and LSF schedulers. Figure 4 As shown, in some embodiments, a lightweight scheduling layer 4262 may be added on top of the task scheduler 426. Assuming that the computing resources and hardware resources 422 in the computing cluster 422 are locked by the method of this embodiment, after the computing task is submitted to the computing cluster 422, the scheduling layer 4262 may be used to implement the combined scheduling of the locked computing resources and hardware resources 424.
[0061] Figure 6 6 is a flowchart of an exemplary method 600 for executing a computing task on a cloud system according to an embodiment of the present application. The method 600 may be performed by, for example, Figure 3 The computing device 132 shown is executed. The EDA task may be a task related to the logic system design and executed by the EDA tool. In this application, the EDA task is taken as an example of the verification of the logic system design. Figure 4 The cloud system 420 in FIG. 4 includes multiple hardware resources and computing clusters (e.g., Figure 4 The computing cluster 422 in the example embodiment includes a computing cluster 422 including a plurality of computing resources. The method 600 may include the following steps.
[0062] At step 602, computing device 132 may select a queue (e.g., Figure 4 The computing task (for example, Figure 4 406, 408, 410).
[0063] In step 604, the computing device 132 may determine whether there are currently available hardware resources that satisfy the computing task among the multiple hardware resources and determine whether there are currently available computing resources that satisfy the computing task among the multiple computing resources.
[0064] In some embodiments, in response to any one of the currently available hardware resources or currently available computing resources not satisfying the computing task, the computing device 132 may release the locked currently available hardware resources or the currently available computing resources, and put the computing task back into the queue. This can avoid the problem of long-term occupation of the applied resources, thereby causing low resource utilization.
[0065] At step 604, the computing device 132 may, in response to the existence of currently available hardware resources and currently available computing resources, respectively lock the currently available hardware resources (eg, Figure 4 424) and the currently available computing resources (e.g., Figure 4 computing resources in computing cluster 422).
[0066] In some embodiments, the computing device 132 may lock the currently available hardware resources and the currently available computing resources respectively according to the priorities of the multiple computing tasks in the queue, so that resources can be applied for and scheduled in an orderly manner as needed.
[0067] In some embodiments, the computing device 132 may select the Figure 5 The method comprises the steps of: generating a plurality of tokens for the plurality of computing tasks according to the order of generating the plurality of tokens; configuring a plurality of sequential locks for the plurality of computing tasks according to the order of generating the plurality of tokens; and locking the currently available hardware resources and the currently available computing resources respectively based on the plurality of sequential locks. By configuring sequential locks for computing tasks, the on-demand and orderly application and scheduling of resources is ensured.
[0068] In some embodiments, the computing device 132 may generate the multiple tokens for the multiple computing tasks in the same time period to improve the throughput of the computing task execution process and give full play to the performance of the server.
[0069] In some embodiments, the sequence lock is configured to lock all of the currently available hardware resources and the currently available computing resources to prevent other computing tasks from locking the same resources.
[0070] In some embodiments, the plurality of computing tasks includes a first computing task (eg, Figure 4 406) and a second computing task (eg, Figure 4In the example of computing task 408, the first computing task corresponds to a first sequence lock, the second computing task corresponds to a second sequence lock, the priority of the first sequence lock is higher than the priority of the second sequence lock, and the computing device 132 can lock the currently available hardware resources and the currently available computing resources for the first computing task in response to determining that the priority of the first sequence lock is higher than the priority of the second sequence lock. Through the method of this embodiment, resource reservation can be completed in the order of priority in a scenario where the priorities of multiple computing tasks need to be guaranteed.
[0071] In some embodiments, the computing device 132 may lock the plurality of computing tasks (eg, Figure 4 The currently available hardware resources and currently available computing resources of the computing tasks 406, 408, 410) processed concurrently in the server are used to improve the throughput of the computing task execution process and give full play to the performance of the server.
[0072] In step 604 , the computing device 132 may send the computing task to the computing cluster (eg, computing cluster 422 ) to execute the computing task on the currently available hardware resources and the currently available computing resources.
[0073] In some embodiments, the computing cluster is managed by a task scheduler (e.g., Figure 4 The task scheduler 426 in the system is managed by the task scheduler, and a scheduling layer (e.g., Figure 4 The scheduling layer 4262 in the embodiment of the present invention is configured to schedule the currently available hardware resources and the currently available computing resources. The scheduling layer is used to implement the combined scheduling of the locked computing resources and hardware resources.
[0074] The present application also provides a computing device (eg, Figure 1 A computing device 100) includes: a memory for storing a plurality of instructions; and at least one processor for executing the plurality of instructions so that the computing device performs the method 600 described above.
[0075] The present application also provides a computing system for executing computing tasks on a cloud system (eg, Figure 3 A computing system 130) includes: a computing device as described above; and local computing resources communicatively connected to the computing device, the local computing resources including: at least one of a server or a hardware verification tool.
[0076] An embodiment of the present application also provides a non-transitory computer-readable storage medium, which stores a set of instructions for a computing device, and the set of instructions is used to enable the computing device to execute the method 600 as described above.
[0077] As described above, the present application provides a method, device and storage medium for executing a computing task on a cloud system, the cloud system includes multiple hardware resources and a computing cluster, and the computing cluster includes multiple computing resources. When it is determined that there are currently available hardware resources that meet the computing task among the multiple hardware resources and it is determined that there are currently available computing resources that meet the computing task among the multiple computing resources, the computing task is sent to the computing cluster by locking the currently available hardware resources and the currently available computing resources respectively, so that the computing task can be executed on the currently available hardware resources and the currently available computing resources, thereby realizing efficient management and use of cloud system resource requests and allocations. At least the technical problem of how to effectively manage the request and allocation of resources of the cloud system is solved.
[0078] The computer-readable medium of this embodiment includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.
[0079] The above describes specific embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0080] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of the present application (including the claims) is limited to these examples. In line with the concept of the present application, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of the different aspects of the present application as described above, which are not provided in detail for the sake of simplicity.
[0081] Although the present application has been described in conjunction with specific embodiments of the present application, many replacements, modifications and variations of these embodiments will be apparent to those skilled in the art from the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may use the embodiments discussed.
[0082] This application is intended to cover all such substitutions, modifications and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of this application should be included in the scope of protection of this application.
Claims
1. A method for executing a computing task on a cloud system, wherein the cloud system includes a plurality of hardware resources and a computing cluster, wherein the computing cluster includes a plurality of computing resources, the method comprising: Obtain the computing task from the queue; Determining whether there are currently available hardware resources that satisfy the computing task among the plurality of hardware resources and determining whether there are currently available computing resources that satisfy the computing task among the plurality of computing resources; In response to the existence of currently available hardware resources and currently available computing resources, respectively locking the currently available hardware resources and the currently available computing resources; as well as The computing task is sent to the computing cluster to be executed on the currently available hardware resources and the currently available computing resources.
2. The method of claim 1, wherein: The determining whether there are currently available hardware resources among the plurality of hardware resources and determining whether there are currently available computing resources among the plurality of computing resources further comprises: In response to any one of the currently available hardware resources or the currently available computing resources not satisfying the computing task, releasing the locked currently available hardware resources or the currently available computing resources; and The computing task is put back into the queue.
3. The method of claim 1, wherein: The queue is a first-in-first-out queue, and the respectively locking the currently available hardware resources and the currently available computing resources further comprises: According to the priorities of the plurality of computing tasks in the queue, the currently available hardware resources and the currently available computing resources are locked respectively.
4. The method of claim 3, wherein: The step of respectively locking the currently available hardware resources and the currently available computing resources according to the priorities of the plurality of computing tasks in the queue further comprises: generating a plurality of tokens for the plurality of computing tasks in order of the priority; According to the generation order of the plurality of tokens, configuring a plurality of sequential locks for the plurality of computing tasks; Based on the multiple sequential locks, the currently available hardware resources and the currently available computing resources are locked respectively.
5. The method of claim 4, wherein: The multiple computing tasks include a first computing task and a second computing task, the first computing task corresponds to a first sequence lock, the second computing task corresponds to a second sequence lock, the priority of the first sequence lock is higher than the priority of the second sequence lock, and the locking of the currently available hardware resources and the currently available computing resources based on the multiple sequence locks further includes: In response to determining that the priority of the first sequence lock is higher than the priority of the second sequence lock, the currently available hardware resources and the currently available computing resources are locked for the first computing task.
6. The method of claim 1, wherein: The computing cluster is managed by a task scheduler. A scheduling layer is provided on the task scheduler. The scheduling layer is configured to schedule the currently available hardware resources and the currently available computing resources.
7. The method of claim 4, wherein: The sequential lock is configured to lock all of the currently available hardware resources and the currently available computing resources.
8. The method of claim 4, wherein: Generating the plurality of tokens for the plurality of computing tasks in the priority order further comprises: generating the plurality of tokens for the plurality of computing tasks in the same time period; The locking of the currently available hardware resources and the currently available computing resources based on the multiple sequential locks further includes: respectively locking the currently available hardware resources and the currently available computing resources of the multiple computing tasks based on the multiple sequential locks in the same time period.
9. A computing device for performing computing tasks on a cloud system, comprising: A memory for storing a plurality of instructions; as well as At least one processor is configured to execute the plurality of instructions so that the computing device performs the method according to any one of claims 1 to 8.
10. A non-transitory computer-readable storage medium storing a set of instructions for a computing device, the set of instructions being used to cause the computing device to execute the method according to any one of claims 1 to 8.
