Method and device for executing computing task on cloud system and storage medium

By collecting memory usage values ​​and saving session information in the EDA cloud computing environment, and dynamically adjusting computing resources, the problems of long memory overflow and reset time are solved, and timely recovery of computing tasks and efficient utilization of resources are achieved.

CN119225922APending Publication Date: 2024-12-31XINHUAZHANG TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411095197.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-09
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

In the EDA cloud computing environment, memory overflow of computing tasks causes processes to be killed, waste computing resources and delay work plans. Moreover, the recovery method of ordinary cloud computing cannot be directly applied to EDA cloud computing, resulting in too long resetting of computing tasks.

Method used

By collecting the memory usage values ​​of the computing resources, saving the session information of the computing task when the threshold is reached and the task is suspended, determining sufficient memory resources among multiple computing resources based on the memory usage values, and restoring the task operation based on the session information.

Benefits of technology

It realizes timely recovery of computing tasks in EDA cloud computing, avoids the waste of task offline and reset time caused by memory overflow, and improves resource utilization efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119225922A_ABST
    Figure CN119225922A_ABST
Patent Text Reader

Abstract

The invention provides a method and device for executing a calculation task on a cloud system and a storage medium, and the method comprises the steps: collecting a memory use value of a first calculation resource, storing the session information of the calculation task at a current time point when the memory use value reaches a threshold value, and pausing the calculation task, and determining a second computing resource of which the memory is greater than the first computing resource in the plurality of computing resources according to the memory use value, and recovering the operation of the computing task on the second computing resource according to the session information, so that the timely recovery of the computing task in the EDA cloud computing is realized.
Need to check novelty before this filing date? Find Prior Art

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] To this end, putting EDA (Electronic Design Automation) tools on the cloud as cloud computing resources has become a feasible solution to the above problems.

[0004] Compared with ordinary cloud computing, which only provides similar computing and storage capabilities, the computing resources provided by EDA tools on the cloud are extremely complex. When the computing resources of EDA cloud computing need to be restored, the computing resource recovery methods of ordinary cloud computing cannot be directly applied to the computing resource recovery of EDA cloud computing. 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 a computing cluster, the computing cluster includes multiple computing resources, the computing task is run on a first computing resource of the multiple computing resources, and the method includes: collecting a memory usage value of the first computing resource; in response to the memory usage value reaching a threshold, saving session information of the computing task at a current time point and pausing the computing task; determining a second computing resource from the multiple computing resources according to the memory usage value, the memory of the second computing resource being greater than the memory of the first computing resource; and resuming the running of the computing task on the second computing resource according to the session information.

[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 computing tasks on a cloud system. The method collects the memory usage value of a first computing resource. When the memory usage value reaches a threshold, the session information of the computing task is saved at the current time point and the computing task is suspended. Then, a second computing resource with a memory larger than the first computing resource is determined from multiple computing resources according to the memory usage value, and the operation of the computing task is resumed on the second computing resource according to the session information, thereby realizing timely recovery of computing tasks in EDA cloud computing. 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 schematic diagram of an exemplary computing system according to an embodiment of the present application is shown.

[0015] Figure 5 A 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

[0016] 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.

[0017] 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.

[0018] As mentioned above, compared with ordinary cloud computing that only provides similar computing and storage capabilities, the computing resources provided by EDA tools on the cloud are extremely complex. When the computing resources of EDA cloud computing need to be restored, the computing resource recovery methods of ordinary cloud computing cannot be directly applied to the computing resource recovery of EDA cloud computing.

[0019] When EDA tools are put on the cloud, many technical requirements that are completely different from those of 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 infinite. 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 cloud computing.

[0020] When a computing task is submitted to a computing system for execution, the memory value of the computing resources required by the computing task in the computing cluster needs to be determined. However, different computing tasks actually require different computing resources during operation, and the memory value of the computing resources required in the computing cluster cannot be accurately estimated. Therefore, engineers often set a relatively broad memory value when submitting computing tasks to the computing system.

[0021] In the EDA cloud computing scenario, the running time of computing tasks ranges from a few hours to a few days. When the memory value of the computing resources required by the determined computing tasks is relatively wide, the computing tasks often run for several days and then get killed due to memory overflow. This not only wastes the computing resources of the cluster for several days, but also seriously delays the original work plan.

[0022] In addition, for ordinary cloud computing, the recovery of its computing resources is only disaster recovery (DR), that is, ordinary cloud computing does not need to recover computing tasks, but only applications or services. The recovery of computing resources in EDA cloud computing requires resetting computing tasks, but resetting computing tasks in EDA cloud computing takes a lot of time. Therefore, in the scenario of EDA cloud computing, how to avoid resetting computing tasks and restore the operation of computing tasks in time is an urgent problem to be solved.

[0023] In order to solve at least the above-mentioned technical problems, the present application provides a method, device and storage medium for executing computing tasks on a cloud system, by collecting the memory usage value of a first computing resource, when the memory usage value reaches a threshold, saving the session information of the computing task at the current time point and pausing the computing task, and then determining a second computing resource with a memory greater than the first computing resource among multiple computing resources according to the memory usage value, and resuming the operation of the computing task on the second computing resource according to the session information, thereby realizing timely recovery of computing tasks in EDA cloud computing.

[0024] 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.

[0025] 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.

[0026] 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 1As shown, the data stored in the memory may include program instructions (e.g., program instructions for implementing the method of 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.

[0027] 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.

[0028] 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.

[0029] 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.

[0030] 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.

[0031] Figure 2A schematic diagram of a cloud system 120 according to an embodiment of the present application is shown.

[0032] 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 1 The 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.

[0033] 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.

[0034] 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.

[0035] Figure 3 A schematic diagram of an EDA computing system 130 according to an embodiment of the present application is shown.

[0036] 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 .

[0037] 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.

[0038] 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.

[0039] The server 134a may be Figure 1 The 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.

[0040] The hardware verification tool 134b may illustratively include hardware verification tools such as a prototype verification board and a hardware emulator.

[0041] 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.

[0042] Figure 4 A schematic diagram of an exemplary computing system 400 according to an embodiment of the present application is shown. The computing system 400 may be Figure 2 and Figure 3 The cloud system 120 shown may also be Figure 3 An EDA computing system 130 is shown.

[0043] like Figure 4 As shown, computing system 400 may include multiple computing resources, and the multiple computing resources may include computing resources 402, 404, and 406. The multiple computing resources may be provided by a computing cluster (e.g., a high-performance computing cluster (HPC Cluster)). In some embodiments, the computing cluster may be a cloud server.

[0044] Multiple computing resources may respectively deploy monitors (e.g., monitors 4022, 4024, 4026) for respectively collecting the memory usage values ​​of each computing resource in real time. The monitors may be implemented by agents. The computing system 400 may also include a task scheduler 408. In some embodiments, the monitors may report the memory usage values ​​collected in real time to the task scheduler 408 so that the task scheduler 408 may manage the computing tasks running on the computing resources according to the memory usage values.

[0045] Taking the computing task 410 running on the computing resource 402 (e.g., the first computing resource) as an example, the monitor 4022 deployed on the computing resource 402 can collect the memory usage value 4102 of the computing resource 402 in real time, and report the memory usage value 4102 to the task manager 408. Among them, the computing task 410 can be an EDA task related to the simulation of chip design. When the task manager 408 determines that the memory usage value 4102 of the computing resource 402 reaches the threshold, the session information of the computing task 410 can be saved at the current time point and the computing task 410 can be suspended. In some embodiments, the above threshold can be a memory value pre-applied for the computing task 410, or it can be the maximum value of the memory of the computing resource 402. Through the real-time monitoring of the memory usage value of the computing resource by the monitor, the computing task can be suspended in time and the session information of the computing task can be saved when the memory threshold of the computing resource is reached, so as to avoid the computing task going offline due to memory overflow.

[0046] The task manager 408 can determine other computing resources with greater memory than the computing resource 402 among the multiple computing resources based on the memory usage value 4102, so as to resume the computing task 410 on the other computing resources. In some embodiments, the task manager 408 can expand the memory usage value 4102 by a certain proportion, so as to re-apply for computing resources with the expanded memory usage value as the target memory value. In other embodiments, the task manager 408 can re-apply for computing resources by gradually increasing the memory usage value according to a given amount of memory as the target memory value. In still other embodiments, the task manager 408 can estimate a new target memory value based on the historical data of the memory usage value of the computing task and re-apply for computing resources.

[0047] When reapplying for computing resources, in some embodiments, the task manager 408 can determine whether there is a target computing resource that meets the target memory value among multiple computing resources. If there is a target computing resource that meets the target memory value, the task manager 408 can allocate the target computing resource to the computing task 410 so that the computing task 410 can resume running on the target computing resource. By reapplying for resources with the expanded memory usage value, other computing resources can be applied for the computing task in a timely manner when the memory of the computing resource currently running the computing task is insufficient, thereby effectively avoiding the problem of the computing task going offline due to memory overflow.

[0048] Taking computing resource 404 (e.g., the second computing resource) as the target computing resource reapplied by task manager 408 as an example, based on the saved session information 4104, task manager 408 can reschedule computing task 410 to resume the operation of computing task 410 on computing resource 404.

[0049] The computing system 400 may further include a memory 412, which may be connected to a plurality of computing resources, respectively, so that the plurality of computing resources may share data stored in the memory 412. In some embodiments, the session information 4104 may be stored in the memory 412. When the computing task 410 is resumed on the computing resource 404, the session information 4104 may be read from the memory 412, and then the computing task 410 may be continued to run on the computing resource 404 from the time point when the session information 4104 was saved (i.e., the above-mentioned current time point) according to the session information 4104. By resuming the computing task through the session information, the computing task may be continued to run at the time point when the computing task was suspended, thereby avoiding the problem of resetting the computing task when rescheduling the computing resource.

[0050] In some embodiments, the preservation of session information 4104 and the resumption of computing task 410 on computing resource 404 may be achieved by triggering a target function by task scheduler 408. The target function may be a CRI U (Checkpoint / Restore In Userspace) function. It is understood that CRI U is only one type of target function, and any function that can implement breakpoint preservation and restoration may be used without being limited to this example of CRI U.

[0051] The session information 4104 may include the task running environment and key data of the computing task 410. In some embodiments, the key data may include the excitation of the logic system design at the current time point and the data of the internal memory of the logic system design, and the task running environment may include the environment configuration parameters for simulating the logic system design. The session information 4104 is stored in a session mechanism, which represents the interaction process between the user and the server. By storing the task running environment and key data in a session mechanism, the running status of the computing task 410 running on the computing resource 402 may be included.

[0052] The computing task 410 may be a task for simulating a logic system design. In some embodiments, based on the stimulus at the current time point and the data in the internal memory, the signal values ​​of multiple FPGAs (Field Programmable Gate Arrays) used for simulating the logic system design at the current time point may be determined, and the signal values ​​are used to drive the simulation of the logic system design. By storing key data and the task running environment in a session mechanism, the running state of the computing task may be restored on the computing resource after the key data and the task running environment are read from the memory 412, and the environment configuration may be completed on the computing resource, so as to continue the running of the computing task at the current time point without resetting the computing task.

[0053] It is understandable that the computing system 400 may include more quantities and types of resources. The computing resources 402, 404, and 406 are merely used as examples for illustration and are not intended to be limiting.

[0054] Figure 5 FIG. 5 is a flow chart of an exemplary method 500 for executing a computing task on a cloud system according to an embodiment of the present application. The method 500 may be performed by, for example, Figure 3 The computing task may be an EDA task related to logic system design and executed by an EDA tool. In this application, the EDA task is to verify the logic system design as an example. The computing task may be performed by, for example, Figure 3 The computing device 132 shown sends the data to the computing system 400. The computing system 400 may be Figure 2 and Figure 3 The cloud system 120 is shown. The cloud system (e.g., Figure 2 and Figure 3 The cloud system 120 and Figure 4 The computing system 400 in FIG. 4 may include a computing cluster (eg, Figure 4 The computing cluster 414 in the example may include multiple computing resources (e.g., Figure 4computing resources 402, 404, 406), computing tasks (e.g., Figure 4 The computing task 410 in the example may be executed on a first computing resource (eg, Figure 4 The method 500 may include the following steps.

[0055] In step 502, the computing system 400 may collect the memory usage value of the first computing resource (eg, Figure 4 Memory usage value in 4102).

[0056] In step 504, the computing system 400 may save the session information of the computing task at the current time point in response to the memory usage value reaching the threshold value (for example, Figure 4 The session information 4104 in the command output is read and the computing task is paused.

[0057] In some embodiments, the cloud system further includes a memory (e.g., Figure 4 The memory 412 in the memory is connected to the plurality of computing resources respectively, and the memory is used to store the session information. The plurality of computing resources can share the data stored in the memory.

[0058] In step 506, the computing system 400 may determine a second computing resource (eg, Figure 4 The computing resource 404 in the example, wherein the memory of the second computing resource is greater than the memory of the first computing resource.

[0059] In some embodiments, the computing system 400 may expand the memory usage value by a certain ratio to obtain a target memory value; and determine the second computing resource from the plurality of computing resources according to the target memory value. By reapplying for resources with the expanded memory usage value, other computing resources can be applied for the computing task in a timely manner when the memory of the computing resource currently running the computing task is insufficient, thereby effectively avoiding the problem of the computing task being offline due to memory overflow.

[0060] In some embodiments, the computing system 400 can determine whether there is a target computing resource that meets the target memory value among the multiple computing resources; in response to the existence of a target computing resource that meets the target memory value, the target computing resource is allocated to the computing task as the second computing resource. By reapplying for resources with the expanded memory usage value, other computing resources can be applied for the computing task in a timely manner when the memory of the computing resource currently running the computing task is insufficient, thereby effectively avoiding the problem of memory overflow causing the computing task to go offline.

[0061] In step 508 , the computing system 400 may resume the execution of the computing task on the second computing resource according to the session information.

[0062] In some embodiments, the computing system 400 can read the session information; and according to the session information, continue to run the computing task from the current time point to resume the computing task on the second computing resource. Resuming the computing task through the session information can continue to run the computing task at the time point when the computing task was suspended, thereby avoiding the problem of resetting the computing task when rescheduling the computing resource.

[0063] In some embodiments, in response to allocating the second computing resource to the computing task, the computing system 400 may trigger a target function via the task scheduler to resume the running of the computing task on the second computing resource according to the session information. The target function may be a CRI U function.

[0064] In some embodiments, the computing task is a task of simulating a logic system design.

[0065] In some embodiments, the session information includes a task execution environment and key data of the computing task, wherein the key data includes a stimulus of the logic system design at the current time point and data of an internal memory of the logic system design.

[0066] In some embodiments, the computing system 400 may determine the values ​​of multiple signals of the logic system design at the current time point according to the stimulus at the current time point and the data in the internal memory. The values ​​of the multiple signals are used to drive the simulation of the logic system design.

[0067] By storing key data and the task running environment in a session mechanism, the running state of the computing task can be restored on the computing resources and the environment configuration can be completed on the computing resources through the key data and the task running environment, so as to continue the running of the computing task at the current time point without re-executing the computing task. It is understandable that ordinary cloud computing usually directly causes the computing task (usually some kind of online service) to fail when resources are insufficient and re-online the service after expanding resources; while the offline server cannot quickly adjust the computing resources according to the needs of the computing task. Therefore, the method of the embodiment of the present application achieves the technical effect of being able to dynamically adjust the computing resources and fully retain the execution progress of the computing task.

[0068] 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 system performs the method 500 described above.

[0069] The present application also provides a computing system for executing computing tasks on a cloud system (eg, Figure 4 A computing system 400) 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.

[0070] 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 500 described above.

[0071] As described above, the present application provides a method, device and storage medium for executing computing tasks on a cloud system. By collecting the memory usage value of a first computing resource, when the memory usage value reaches a threshold, the session information of the computing task is saved at the current time point and the computing task is suspended, and then a second computing resource with a memory greater than the first computing resource is determined from multiple computing resources according to the memory usage value, and the operation of the computing task is resumed on the second computing resource according to the session information, thereby realizing timely recovery of computing tasks in EDA cloud computing, and at least solving the technical problem that the computing task cannot be restored due to memory overflow of the computing resource.

[0072] 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.

[0073] 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.

[0074] 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.

[0075] 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.

[0076] 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 performing a computing task on a cloud system, wherein: The cloud system includes a computing cluster, the computing cluster includes multiple computing resources, the computing task runs on a first computing resource of the multiple computing resources, and the method includes: Collecting a memory usage value of the first computing resource; In response to the memory usage value reaching a threshold, saving session information of the computing task at a current time point and pausing the computing task; Determine a second computing resource from among the plurality of computing resources according to the memory usage value, the memory of the second computing resource being greater than the memory of the first computing resource; Resume the execution of the computing task on the second computing resource according to the session information.

2. The method of claim 1, wherein: The resuming the operation of the computing task on the second computing resource according to the session information further comprises: Reading the session information; The computing task is continued to be executed from the current time point according to the session information to resume the computing task on the second computing resource.

3. The method of claim 1, wherein: Determining the second computing resource from among the plurality of computing resources according to the memory usage value further comprises: The memory usage value is increased by a certain ratio to obtain a target memory value; The second computing resource is determined from among the plurality of computing resources according to the target memory value.

4. The method of claim 3, wherein: Determining the second computing resource among the plurality of computing resources according to the target memory value further comprises: Determining whether there is a target computing resource that satisfies the target memory value among the plurality of computing resources; In response to the existence of a target computing resource that satisfies the target memory value, the target computing resource is allocated to the computing task as the second computing resource.

5. The method of claim 1, wherein: The computing cluster is managed by a task scheduler, and resuming the operation of the computing task on the second computing resource according to the session information further includes: In response to allocating the second computing resource to the computing task, triggering a target function via the task scheduler to resume the execution of the computing task on the second computing resource according to the session information.

6. The method of claim 1, wherein: The computing task is a task of simulating logic system design.

7. The method of claim 6, wherein: The session information includes the task running environment and key data of the computing task, and the key data includes the stimulus of the logic system design at the current time point and the data of the internal memory of the logic system design.

8. The method of claim 7, wherein: Resuming the operation of the computing task on the second computing resource according to the session information further includes: The values ​​of a plurality of signals of the logic system design at the current time point are determined according to the stimulus at the current time point and the data in the internal memory.

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.