Method, device and storage medium for performing tasks

By creating child processes for the subsystem in a distributed computing system and managing their status, the problem of low resource utilization caused by independent resource application mechanism is solved, and efficient utilization of resources and efficient completion of tasks is achieved.

CN119557110BActive Publication Date: 2025-06-06QUANXIN INTELLIGENT MFG TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510120852.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-24
Publication Date
2025-06-06
Estimated Expiration
2045-01-24

AI Technical Summary

Technical Problem

Under the independent resource application mechanism, distributed computing systems lead to low resource utilization, especially when resources are tight, some systems may not be able to obtain enough resources to complete tasks.

Method used

Create child processes for the subsystem through the parent process of the parent system, disable or enable child processes to perform multiple subtasks, ensuring that the subsystem directly utilizes the requested resources when the parent system resource is applied.

Benefits of technology

It significantly improves resource utilization, reduces the overhead of resource allocation and release, and ensures that tasks can be completed efficiently.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119557110B_ABST
    Figure CN119557110B_ABST
Patent Text Reader

Abstract

According to an example embodiment of the present disclosure, a method, device and storage medium for executing a task are provided. The method includes: for a target task, a parent process of a parent system creates a corresponding child process for one or more subsystems, and the target task includes multiple subtasks executed in a predetermined order; in response to the execution of the first subtask among the multiple subtasks by the parent process of the parent system, the corresponding child process of one or more subsystems is disabled; in response to the completion of the first subtask, the child process of the first target subsystem in one or more subsystems is enabled to execute the second subtask among the multiple subtasks; and the child process of the subsystem other than the first target subsystem in the parent process and the one or more subsystems is disabled. In this way, the resource utilization of the system can be improved and the overhead of resource allocation and release can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to the field of computer technology, and more particularly, to methods, devices, and storage media for performing tasks. Background Art

[0002] With the rapid development of computer technology, distributed computing systems have become an important means of handling large-scale complex tasks. When multiple distributed systems run simultaneously, they usually need to apply for resources from the server, including key resources such as CPU cores. This independent resource application mechanism may lead to low resource utilization, especially when resources are scarce, some systems may not be able to complete tasks due to insufficient resources. Summary of the invention

[0003] In a first aspect of the present disclosure, a method for executing a task is provided. The method includes: for a target task, a parent process of a parent system creates corresponding child processes for one or more subsystems, the target task includes multiple subtasks executed in a predetermined order; in response to the parent process of the parent system executing a first subtask among the multiple subtasks, disabling the corresponding child processes of the one or more subsystems; in response to the completion of the first subtask, enabling a child process of a first target subsystem in the one or more subsystems to execute a second subtask among the multiple subtasks; and disabling the parent process and the child processes of the subsystems other than the first target subsystem in the one or more subsystems.

[0004] In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes a processor and a memory coupled to the processor. The memory has instructions stored therein, and when the instructions are executed by the processor, the electronic device executes the method according to the first aspect of the present disclosure.

[0005] In a third aspect of the present disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program. When the computer program is executed by a processor, the method according to the first aspect of the present disclosure is implemented.

[0006] It will be understood from the following description that according to an embodiment of the present disclosure, for a target task, a parent process of a parent system creates corresponding child processes for one or more subsystems, and the target task includes multiple subtasks executed in a predetermined order; in response to the execution of the first subtask among the multiple subtasks by the parent process of the parent system, the corresponding child processes of one or more subsystems are disabled; in response to the completion of the first subtask, the child process of the first target subsystem in the one or more subsystems is enabled to execute the second subtask among the multiple subtasks; and the child processes of the parent process and the subsystems other than the first target subsystem in the one or more subsystems are disabled. In this way, during the execution of the target task, the parent process of the parent system can create a child process for the subsystem, and when the parent system calls the subsystem, since the parent system has applied for resources for the subsystem when creating the child process, the subsystem can directly use the applied resources without applying again, thereby significantly improving resource utilization and reducing the overhead of resource allocation and release.

[0007] It should be understood that the contents described in the summary of the present invention are not intended to limit the key features or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:

[0009] Figure 1 A schematic diagram showing an example environment in which various embodiments of the present disclosure can be implemented;

[0010] Figure 2 A flowchart of a method for performing a task according to some embodiments of the present disclosure is shown;

[0011] Figure 3 A schematic diagram showing an example of a parent process creating a child process according to some embodiments of the present disclosure;

[0012] Figure 4A A schematic diagram showing an example of a process for performing a target task according to some embodiments of the present disclosure;

[0013] Figure 4B A schematic diagram showing another example of a process for performing a target task according to some embodiments of the present disclosure;

[0014] Figure 4C A schematic diagram showing yet another example of a process for performing a target task according to some embodiments of the present disclosure;

[0015] Figure 5 A schematic diagram showing a process of processing integrated circuit board image data according to some embodiments of the present disclosure;

[0016] Figure 6 A block diagram of an electronic device is shown in which one or more embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION

[0017] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein, which are instead provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0018] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0019] As briefly mentioned above, with the rapid development of computer technology, distributed computing systems have become an important means of processing large-scale complex tasks. In distributed systems, a server-client architecture is usually adopted, that is, a central server is responsible for decomposing tasks into multiple subtasks and assigning them to multiple clients for parallel execution to improve processing efficiency and response speed.

[0020] Taking the field of Electronics Design Automation (EDA) as an example, the server-client architecture has demonstrated extremely high value. For example, in the process of processing complex mask graphics, the server can accurately cut the huge graphics into m×n small units according to the spatial layout. Subsequently, these small units are efficiently allocated to each client for processing, achieving parallel and efficient computing. After all clients complete their respective tasks, the server exerts its integration capabilities to bring together the scattered processing results into one, generating a completed mask graphic.

[0021] Although a single distributed system can achieve task decomposition and parallel processing well, when dealing with more complex or cross-domain tasks, collaboration between multiple systems is often required. This collaboration usually relies on external interfaces or middleware calls, which not only increases the complexity of the system, but may also reduce overall performance due to data exchange and synchronization issues.

[0022] In addition, when multiple systems are running at the same time, they usually need to apply for resources from the server, including key resources such as CPU cores. This independent resource application mechanism may lead to low resource utilization, especially in the case of resource shortage, some systems may not be able to complete the task due to insufficient resources.

[0023] To this end, an embodiment of the present disclosure proposes a method for executing tasks. According to an embodiment of the present disclosure, first, for a target task, a parent process of a parent system creates corresponding child processes for one or more subsystems, and the target task includes multiple subtasks executed in a predetermined order. Further, in response to the execution of a first subtask among multiple subtasks by the parent process of the parent system, the corresponding child processes of the one or more subsystems are disabled. Further, in response to the completion of the first subtask, a child process of a first target subsystem in one or more subsystems is enabled to execute a second subtask among the multiple subtasks. Finally, the parent process and the child processes of the subsystems other than the first target subsystem in the one or more subsystems are disabled.

[0024] According to an embodiment of the present disclosure, during the execution of a target task, the parent process of the parent system can create a child process for the subsystem. When the parent system calls the subsystem, since the parent system has applied for resources for the subsystem when creating the child process, the subsystem can directly use the applied resources without applying again, thereby significantly improving resource utilization and reducing the overhead of resource allocation and release.

[0025] Various example implementations of the scheme will be described in detail below with reference to the accompanying drawings.

[0026] See first Figure 1 , which shows a schematic diagram of an example environment 100 in which the various embodiments of the present disclosure can be implemented. The example environment 100 may include distributed systems 120-1, 120-2, ..., 120-N. Each distributed system may include a server 140 and clients 130-1, 130-2, ..., 130-N. For ease of discussion, the distributed systems 120-1, 120-2, ..., 120-N may be collectively or individually referred to as distributed systems 120, and the clients 130-1, 130-2, ..., 130-N may also be collectively or individually referred to as clients 130.

[0027] In some embodiments, multiple distributed systems 120 may be deployed in the same server 110. In other embodiments, multiple distributed systems may be deployed in different servers 110. For example, one or more distributed systems 120 may be deployed in one server 110.

[0028] In some embodiments, multiple distributed systems 120 can collaboratively execute the target task. For example, in the case where the target task includes multiple subtasks, multiple distributed systems 120 can each execute one or more of the multiple subtasks, and one of the distributed systems 120 will summarize the execution results of all the subtasks as the final execution result of the target task. For another example, in the case where multiple subtasks have an execution order, multiple distributed systems 120 can execute the corresponding subtasks in sequence according to the execution order of the multiple subtasks, and one of the distributed systems 120 will summarize the execution results of all the subtasks as the final execution result of the target task.

[0029] In this document, the distributed system 120 that executes the first subtask among the multiple subtasks in the multiple distributed systems 120 may be referred to as a "parent system", and each distributed system 120 other than the parent system may be referred to as a "subsystem". The parent system may perform a summary operation on the execution results of all the subtasks. It should be understood that the parent system summarizes the execution results of the multiple subtasks, which may be further processing or integration of the execution results of the multiple subtasks.

[0030] In the example environment 100, the server 110 may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content distribution networks, and big data and artificial intelligence platforms. The server 110 may include, for example, a computing system / server, such as a mainframe, an edge computing node, a computing device in a cloud environment, and the like.

[0031] It should be understood that the structure and function of the environment 100 are described for exemplary purposes only, and do not imply any limitation on the scope of the present disclosure. Example embodiments according to the present disclosure will be described in detail below with reference to the accompanying drawings.

[0032] Figure 2A flowchart of a method 200 for performing a task according to some embodiments of the present disclosure is shown. In some embodiments, the method 200 for performing a task may be implemented in a server. For ease of description, the following description takes multiple distributed systems 120 deployed on the same server as an example. It should be understood that when the distributed system 120 is deployed on multiple servers, similar processes may also be performed by multiple servers. It should be understood that the method 200 may also include additional boxes not shown and / or may omit one (or some) of the boxes shown, and the scope of the present disclosure is not limited in this respect. Next, in conjunction with Figure 1 The solution for performing tasks provided by the present disclosure is introduced in detail.

[0033] In block 210, for a target task, the server 110 enables a parent process of a parent system to create corresponding child processes for one or more child systems. The target task includes multiple child tasks executed in a predetermined order.

[0034] In some embodiments, the execution order of the multiple subtasks may be predetermined, for example, the execution order of each subtask may be determined manually. It should be understood that the configured execution order may have a related identifier that can indicate the execution order, so that the server 110 can determine the execution order of the multiple subtasks based on the related identifier.

[0035] The target task may be a task in various fields, and the embodiments of the present disclosure are not limited to this. Taking the field of Electronic Design Automation (EDA) as an example, the target task may be a task of processing integrated circuit layout data, which may include a subtask of Optical Proximity Correction (OPC) and a subtask of layout segmentation, and the execution order of the subtask of Optical Proximity Correction is before the subtask of layout segmentation. Traditionally, these two subtasks need to be completed separately by different tools, which not only increases the complexity of the process, but also reduces the overall efficiency. It will be understood below that in the embodiments of the present disclosure, the integration of the process from OPC to layout segmentation can be achieved through the collaborative work between the parent system and the subsystem.

[0036] In some embodiments, the target task may be executed by multiple distributed systems 120 in the server 110. For example, one distributed system 120 may execute one subtask. For another example, one distributed system 120 may execute a certain number of subtasks of multiple subtasks. It should be understood that whether one distributed system 120 executes one subtask or one distributed system 120 executes a certain number of subtasks, they should be executed in the execution order of the subtasks in the target task.

[0037] In some embodiments, the number of subsystems can be determined based on the number of subtasks included in the target task. Specifically, if a distributed system 120 performs a subtask, the number of subsystems can be determined by the total number of subtasks included in the target task. If a distributed system 120 performs a certain number of subtasks, the number of subsystems can be determined based on the number of subtasks performed by each distributed system 120 and the total number of subtasks included in the target task.

[0038] As can be seen from the foregoing, the distributed system 120 executing the first subtask among the multiple subtasks is the parent system. Therefore, before the target task starts to execute, the server 110 can allocate system resources required for the parent system to execute the first subtask, such as creating a process for the parent system.

[0039] In order to ensure the resource utilization rate of the system, the resource allocation and release overhead, etc. during the execution of the target task, the server 110 can pre-allocate corresponding resources for one or more subsystems used to execute the target task. For example, the server 110 can enable the process of the parent system to create corresponding processes for one or more subsystems. In this case, the process of the parent system can be called the parent process, and the process of the subsystem created by the parent process can be called the child process. Accordingly, during the execution of the target task, each subsystem can directly use the allocated resources without having to apply for them again, thereby improving the resource utilization rate and reducing the resource allocation and release overhead.

[0040] In some embodiments, both the parent system and the subsystem include a server 140 and multiple clients 130. In this case, when the parent process of the parent system creates a child process of the subsystem, the process of the server 140 of the parent system can create a process for the server 140 of the subsystem, and the process of the client 130 of the parent system can create a process for the client 130 of the subsystem.

[0041] Take a given subsystem in one or more subsystems as an example. For the given subsystem, the server 110 can make the parent process of the server 140 of the parent system create a child process for the server 140 of the given subsystem, and make the parent processes of the multiple clients 130 of the parent system create corresponding child processes for the multiple clients 130 of the given subsystem. For example, the parent process of a client 130 of a parent system can create a child process for a client 130 of the given subsystem.

[0042] To ensure maximum resource utilization, the number of corresponding parent processes of the multiple clients 130 of the parent system can be made the same as the total number of corresponding child processes of the multiple clients 130 of a given subsystem. For example, if the number of subsystems is two, the parent process of the parent system can create corresponding child processes for each subsystem, and the total number of corresponding child processes of the multiple clients 130 of each subsystem is the same as the number of corresponding parent processes of the multiple clients 130 of the parent system.

[0043] Combine the following Figure 3 To further illustrate the process of parent process creating child process. Figure 3 FIG. 3 is a schematic diagram showing an example 300 of a parent process creating a child process according to some embodiments of the present disclosure. It should be understood that Figure 3 Here, "parent system-server" refers to the server of the parent system, "parent system-client" refers to the client of the parent system, "subsystem-server" refers to the server of the subsystem, and "subsystem-client" refers to the client of the subsystem.

[0044] like Figure 3 As shown, when a parent process creates a child process, the parent process of the parent system-server 310 can create a child process for the child system-server 320, and the parent process of the parent system-client 330 can create a child process for the child system-client 340.

[0045] The parent system-server 310 has a certain number of central processing units (CPUs). In order to maximize resource utilization, the parent system can be configured with a corresponding number of clients, that is, one client corresponds to one CPU. When creating a child process, the parent process of a client of the parent system can create a child process for a client of the child system, thereby maximizing the utilization of system resources.

[0046] In some embodiments, the corresponding subprocesses of one or more subsystems are in a disabled state after being created, that is, the subprocess is in a waiting task state (that is, an idle state) after creation, and does not occupy any CPU resources or other key resources, thereby reducing resource consumption.

[0047] Continue to see Figure 2 In block 220, the server 110 disables the corresponding sub-processes of the one or more sub-systems in response to the parent process of the parent system executing the first sub-task of the plurality of sub-tasks. In block 230, the server 110 enables the sub-process of the first target sub-system in the one or more sub-systems to execute the second sub-task of the plurality of sub-tasks in response to the completion of the first sub-task. In block 240, the server 110 disables the parent process and the sub-processes of the sub-systems other than the first target sub-system in the one or more sub-systems.

[0048] It should be understood that the "first subtask" can be a subtask in the target task that is ranked in the first execution order, or a subtask in other execution orders. Correspondingly, the second subtask is a task that is ranked after the first subtask in the execution order. That is, if the first subtask is a subtask in the target task that is ranked in the first execution order, then the second subtask is a subtask in the target task that is ranked in the second execution order. If the first subtask is a task in other execution orders, then the second subtask is the next subtask of the first subtask.

[0049] For example, the first subtask is the first subtask in the execution order. Figure 4A , Figure 4A FIG. 4 is a schematic diagram showing an example of a process 400A for executing a target task according to some embodiments of the present disclosure. In some embodiments, the process 400A may also be implemented in the server 110 .

[0050] like Figure 4A As shown, during the execution of the target task, the server 110 causes the parent system 410 to execute the first subtask in the target task that is in the first execution order. During this period, the server 110 disables the subprocess of the first target subsystem 420, that is, the first target subsystem 420 is in an idle state and does not occupy any CPU resources. In response to the completion of the execution of the first subtask, the server 110 causes the parent system 410 to input the first output (for example, the first output may include the execution result of the first subtask, the data that needs to be processed by the subsystem, the task type, and possible parameters) 430 for the first subtask to the first target subsystem 420.

[0051] In response to the first target subsystem 420 receiving the first output 430, the server 110 may activate the subprocess of the client 130 and the subprocess of the server 140 corresponding to the first target subsystem 420, so that the first target subsystem 420 performs the second subtask. While the first target subsystem 420 performs the second subtask, the server 110 disables the parent process of the parent system 410.

[0052] For example, the first subtask is a subtask in the execution order of other tasks, see Figure 4B , Figure 4B FIG. 4 is a schematic diagram showing another example of a process 400B for executing a target task according to some embodiments of the present disclosure. In some embodiments, the process 400B may also be implemented in the server 110 .

[0053] like Figure 4BAs shown, during the execution of the target task, the server 110 causes the parent system to execute subtasks in the target task that are arranged in other execution orders. For example, the first target subsystem 420 inputs the second output (for example, the second output may include the execution result of the previous subtask, the data that needs to be processed by the subsystem, the task type, and possible parameters and other information) 440 into the parent system 410, so that the parent system 410 executes the first subtask corresponding to the second output 440. During this period, the server 110 disables the subprocess of the first target subsystem 420, that is, the first target subsystem 420 is in an idle state and does not occupy any CPU resources. In response to the completion of the execution of the first subtask, the server 110 causes the parent system 410 to input the third output 450 corresponding to the first subtask into the first target subsystem 420, so that the first target subsystem 420 executes the second subtask. At this time, the server 110 disables the parent process of the parent system.

[0054] It should be understood that the above example only shows an example of the first target subsystem and the parent system performing the target task. For the case where multiple subsystems and the parent system perform the target task, during the execution of the subtask by the parent system, the server 110 can disable the subprocesses of all other subsystems; during the execution of a subtask by a subsystem, the server 110 can disable the parent process of the parent system and the subprocesses of all subsystems except the subsystem performing the subtask.

[0055] In some embodiments, server 110 may enable the first target subsystem to send the execution result of the second subtask to the parent system, and further, in response to receiving the execution result by the parent system, enable the parent process of the parent system to process the execution result, and disable the corresponding child processes of one or more subsystems.

[0056] Continue to see Figure 4A , with the second output 440 in the figure representing the execution result of the second subtask, the server 110 enables the first target subsystem 420 to send the second output 440 to the parent system 410, and the server 110 responds to receiving the second output 440 by the parent system 410, starts the parent process of the parent system 410 to process the second output 440, and disables the child process of the first target subsystem 420.

[0057] It should be understood that, in the case where multiple subsystems and a parent system execute a target task, while the parent system is processing the execution result, the server 110 may disable the subprocesses of all other subsystems.

[0058] Further, in response to completing the processing of the execution result, the server 110 can enable the sub-process of the second target subsystem in the one or more subsystems to execute the third subtask among the multiple subtasks, and disable the parent process and the sub-processes of the subsystems in the one or more subsystems except the second target subsystem.

[0059] For example, see Figure 4C , Figure 4C FIG. 4 is a schematic diagram showing another example of a process 400C for executing a target task according to some embodiments of the present disclosure. In some embodiments, the process 400C may also be implemented in the server 110 .

[0060] like Figure 4C As shown in the figure, the third output 450 represents the processing result of the execution result. In response to the completion of the processing of the second output 440, the server 110 inputs the third output 450 to the second target subsystem 460. At this time, the server 110 can start the server-side subprocess and the client-side subprocess corresponding to the second target subsystem 460, so that the second target subsystem 460 executes the third subtask (i.e., the next subtask of the second subtask). At the same time, the server 110 can disable the parent process of the parent system 410.

[0061] It should be understood that, in the case where multiple subsystems and the parent system execute the target task, during the execution of the third subtask by the second target subsystem, the server 110 may disable the subprocesses of all other subsystems except the second target subsystem. It should also be understood that the above subsystems independently execute the assigned subtasks, and after completion, they may return the processing results to the parent system in a synchronous manner (i.e., the parent system continues to execute the corresponding subtask after the subsystems are completed).

[0062] In this way, it can be ensured that during the execution of the target task, only one system (parent system or subsystem) in the server 110 is active, thereby effectively avoiding resource competition conflicts between systems and improving the overall operating efficiency of the system. At the same time, during the execution of the target task, the collaboration between the parent system and the subsystem makes the processing flow of the target task smoother and more efficient. The parent system can focus on the task processing stage in which it is good at, and hand over the tasks of other stages to the subsystem. This division of labor and cooperation not only improves the efficiency of task processing, but also ensures the quality and accuracy of task processing. Due to the improvement of the overall operating efficiency of the system and the improvement of resource utilization, users can obtain task processing results faster, thereby improving user experience.

[0063] Furthermore, in response to the target task being completed, the server 110 may cause the parent system to terminate the corresponding child process, thereby releasing occupied resources, thereby ensuring correct resource recovery and system stability.

[0064] In some embodiments, the parent system can be used to interact with the user, and the subsystem can provide support for certain functions of the parent system. For example, the parent system can have multiple application programming interfaces (APIs), and multiple APIs are configured to add or delete subsystems. Thus, the user can add or delete corresponding subsystems for the parent system through the parent system's API to meet the needs of more complex task processing, so that the user can enjoy the functions of the parent system enhanced by the assistance of the subsystem without directly operating the subsystem, so that the parent system can show more powerful and comprehensive capabilities to the user, further enhancing the user experience. At the same time, subsystems can be dynamically created and destroyed according to task requirements, so that the system can flexibly respond to different business scenarios and changes.

[0065] To more clearly explain the solutions for executing target tasks provided by some embodiments of the present disclosure, the following description is made by taking the task of processing integrated circuit board image data in the above-mentioned EDA field as an example. Of course, it can be understood that the embodiments of the present disclosure are not limited to this application field.

[0066] Figure 5 A schematic diagram of a process 500 for processing integrated circuit board data according to some embodiments of the present disclosure is shown. As described above, the task of processing integrated circuit board data may include an OPC subtask and a layout segmentation subtask. Traditionally, these two subtasks need to be completed by different systems. For example, see Figure 5 When processing the integrated circuit layout data, a rectangular mask 510 can be corrected by the OPC system to form an irregular mask 520. Subsequently, the irregular mask 520 can be divided into two regular masks 530 and 540 by the layout division system for subsequent processing. It should be understood that the correction process of the mask 510 and the division process of the mask 520 are implemented by different manufacturers, which increases the complexity of the process and reduces the overall efficiency.

[0067] In an embodiment of the present disclosure, when executing a target task, the system or tool required to execute the target task can be determined based on the subtasks contained in the target task and the execution order between the subtasks. That is, since the task of processing the integrated circuit board diagram data includes an OPC subtask and a layout segmentation subtask, and the execution order of the OPC subtask is before the execution order of the layout segmentation subtask, the OPC system and the layout segmentation system are required when executing the task of processing the integrated circuit board diagram data. In some embodiments, an API interface can be configured in the OPC system, so that a subsystem can be added or deleted through the API interface. For example, a layout segmentation system can be added in the OPC system through the API interface.

[0068] After the layout segmentation system is added, the OPC system is started first. The parent process of the OPC system creates a corresponding child process for the layout segmentation system. The child process is in an idle state after creation. At this time, the child process does not occupy any system resources, thereby reducing resource consumption when the system is idle.

[0069] In some embodiments, the OPC system and the layout segmentation system can both be distributed systems, that is, the OPC system includes a server and multiple clients, and similarly, the layout segmentation system also includes a server and multiple clients. When the parent process of the OPC system creates a child process for the layout segmentation system, the parent process of the server in the OPC system can create a child process for the server in the layout segmentation system, and the multiple clients in the OPC system can create child processes for the multiple clients in the layout segmentation system. It should be understood that the multiple clients in the OPC system create child processes for the multiple clients in the layout segmentation system, that is, one client in the OPC system creates a child process for one client in the layout segmentation system. It should also be understood that the number of subsystems is determined by the number of subtasks included in the target task. If the task of processing the integrated circuit board data includes other subtasks in addition to the OPC subtask and the layout segmentation subtask, other distributed systems are also required to perform the task collaboratively. In this case, the OPC system is required to create child processes for all other subsystems. That is to say, the number of sub-processes of multiple clients in the layout segmentation system and the number of sub-processes of multiple clients in other distributed systems are the same, and the number of sub-processes of multiple clients in the layout segmentation system and the number of sub-processes of multiple clients in other distributed systems are the same as the number of parent processes of multiple clients in the OPC system.

[0070] During the execution of the OPC subtask by the OPC system, the child process of the layout segmentation system is in an idle state. After the OPC system completes the execution of the OPC subtask, an execution command can be sent to the layout segmentation system. The execution command may include information such as the data to be processed, the task type, and possible parameters. During the execution of the layout segmentation subtask by the layout segmentation system, the parent process of the OPC system is in an idle state, waiting for the execution result of the layout segmentation system.

[0071] After the layout segmentation system completes the layout segmentation subtask, it sends the execution result to the OPC system. After receiving the execution result, the OPC system can further process or integrate the execution result as needed. At this time, the parent process of the OPC system is active again, and the child process of the layout segmentation system is idle again.

[0072] After the OPC system completes the interaction with the layout partitioning system, you can choose to end the subprocess of the layout partitioning system to release the occupied resources. At this time, the subprocess of the layout partitioning system will be closed to ensure resource recovery and system stability.

[0073] To summarize, during the execution of the target task by the server, the parent process of the parent system can create a child process for the subsystem. When the parent system calls the subsystem, since the parent system has applied for resources for the subsystem when creating the child process, the subsystem can directly use the applied resources without applying again, thereby significantly improving resource utilization and reducing the overhead of resource allocation and release.

[0074] Figure 6 1 shows a block diagram of a server or electronic device 600 in which one or more embodiments of the present disclosure may be implemented. The electronic device 600 may be used to implement, for example, Figure 1 The server 110 shown. It should be understood that Figure 6 The electronic device 600 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein.

[0075] like Figure 6 As shown, the electronic device 600 is in the form of a general electronic device. The components of the electronic device 600 may include, but are not limited to, one or more processors 610 or processing units, a memory 620, a storage device 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660. The processing unit may be an actual or virtual processor and is capable of performing various processes according to a program stored in the memory 620. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to improve the parallel processing capability of the electronic device 600.

[0076] The electronic device 600 typically includes a plurality of computer storage media. Such media may be any available media accessible to the electronic device 600, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 620 may be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 630 may be a removable or non-removable medium, and may include a machine-readable medium, such as a flash drive, a disk, or any other medium, which may be capable of being used to store information and / or data (e.g., training data for training) and may be accessed within the electronic device 600.

[0077] The electronic device 600 may further include additional removable / non-removable, volatile / non-volatile storage media. Figure 6 As shown in , a disk drive for reading or writing from a removable, non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing from a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to the bus (not shown) by one or more data media interfaces. The memory 620 may include a computer program product 625 having one or more program modules that are configured to perform various methods or actions of various embodiments of the present disclosure.

[0078] The communication unit 640 enables communication with other electronic devices via a communication medium. Additionally, the functions of the components of the electronic device 600 can be implemented in a single computing cluster or multiple computing machines that can communicate via a communication connection. Therefore, the electronic device 600 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.

[0079] The input device 650 may be one or more input devices, such as a mouse, a keyboard, a tracking ball, etc. The output device 660 may be one or more output devices, such as a display, a speaker, a printer, etc. The electronic device 600 may also communicate with one or more external devices (not shown) through the communication unit 640 as needed, such as a storage device, a display device, etc., communicate with one or more devices that allow a user to interact with the electronic device 600, or communicate with any device (e.g., a network card, a modem, etc.) that allows the electronic device 600 to communicate with one or more other electronic devices. Such communication may be performed via an input / output (I / O) interface (not shown).

[0080] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which one or more computer instructions are stored, wherein the one or more computer instructions are executed by a processor to implement the method described above.

[0081] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, devices (systems) and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of boxes in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0082] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0083] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0084] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.

[0085] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the marketplace, or to enable other persons of ordinary skill in the art to understand the implementations disclosed herein.

Claims

1. A method for performing a task, characterized in that include: For a target task, a parent process of a parent system creates corresponding child processes for one or more subsystems, wherein the target task includes a plurality of subtasks executed in a predetermined order, and the subprocesses of the subsystems are in a disabled state after being created, and the number of subsystems is determined based on the number of subtasks included in the target task; In response to execution of a first subtask of the plurality of subtasks by the parent process of the parent system, disabling the corresponding child processes of the one or more subsystems; In response to the completion of the first subtask, enabling a subprocess of a first target subsystem among the one or more subsystems to execute a second subtask among the plurality of subtasks; as well as disabling the parent process and child processes of subsystems among the one or more subsystems except the first target subsystem; The parent system includes a server and multiple clients, and the parent process of the parent system creates corresponding child processes for one or more subsystems, including: For one or more subsystems, The parent process of the server creates a child process for the server of the subsystem for the subsystem; as well as Corresponding child processes for a plurality of clients of the subsystem are created for the subsystem by corresponding parent processes of the plurality of clients.

2. The method for performing a task according to claim 1, characterized in that: The method further comprises: The first target subsystem sends the execution result of the second subtask to the parent system; In response to receiving the execution result by the parent system, enabling the parent process of the parent system to process the execution result; and The corresponding subprocesses of the one or more subsystems are disabled.

3. The method for performing a task according to claim 2, characterized in that The method further comprises: In response to completion of processing the execution result, enabling a subprocess of a second target subsystem among the one or more subsystems to execute a third subtask among the plurality of subtasks; and The parent process and child processes of subsystems of the one or more subsystems except the second target subsystem are disabled.

4. The method for performing a task according to claim 1, characterized in that: The method further comprises: In response to the target task being completed, the parent system terminates the corresponding child process.

5. The method for performing a task according to claim 1, characterized in that: The number of corresponding parent processes of the multiple clients of the parent system is the same as the total number of corresponding child processes of the multiple clients of the child system.

6. The method for performing a task according to claim 1, characterized in that: The parent system has a plurality of application programming interfaces (APIs) configured to add or delete subsystems.

7. The method for performing a task according to claim 1, characterized in that: The target tasks include tasks related to electronic design automation (EDA).

8. An electronic device, characterized in that: include: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 7 when executed by the at least one processing unit.

9. A computer-readable storage medium, characterized in that: A computer program is stored thereon, characterized in that the computer program can be executed by a processor to implement the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method, device and system for executing EDA task and storage medium

    CN114327861A

  • Method and system for collaboration of multiple sub-processes

    CN115964149A