CN117076095A - Task scheduling method, system, electronic equipment and storage medium based on DAG - Google Patents

Task scheduling method, system, electronic equipment and storage medium based on DAG Download PDF

Info

Publication number
CN117076095A
CN117076095A CN202311336418.5A CN202311336418A CN117076095A CN 117076095 A CN117076095 A CN 117076095A CN 202311336418 A CN202311336418 A CN 202311336418A CN 117076095 A CN117076095 A CN 117076095A
Authority
CN
China
Prior art keywords
execution
dag
task scheduling
command
commands
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311336418.5A
Other languages
Chinese (zh)
Other versions
CN117076095B (en
Inventor
郑思琪
吴联雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huaxin Giants Hangzhou Microelectronics Co ltd
Original Assignee
Huaxin Giants Hangzhou Microelectronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huaxin Giants Hangzhou Microelectronics Co ltd filed Critical Huaxin Giants Hangzhou Microelectronics Co ltd
Priority to CN202311336418.5A priority Critical patent/CN117076095B/en
Publication of CN117076095A publication Critical patent/CN117076095A/en
Application granted granted Critical
Publication of CN117076095B publication Critical patent/CN117076095B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to the field of photolithography, and in particular, to a task scheduling method, system, electronic device, and storage medium based on DAG. The DAG-based task scheduling method comprises the following steps: step S1: providing an initial script, and collecting all input objects and output objects of executing commands in the initial script; step S2: finding out and deleting a virtual command in the initial script to generate a directed acyclic graph; step S3: obtaining a plurality of execution stages with successive dependency relationships based on the directed acyclic graph; step S4: and operating the script of the execution stage and clearing the memory. The task scheduling method based on the DAG provided by the invention eliminates the virtual command and the executed command of the script through parallel commands without dependency relationship, thereby achieving the purposes of releasing the memory and improving the running rate.

Description

Task scheduling method, system, electronic equipment and storage medium based on DAG
Technical Field
The present invention relates to the field of photolithography, and in particular, to a task scheduling method, system, electronic device, and storage medium based on DAG.
Background
With the development of chip technology, the size of the chip is continuously reduced, and the exposure pattern of the small-size chip on the silicon wafer is deformed, so that OPC (optical proximity correction) algorithm optimization is required before manufacturing.
The smaller the size of the chip, the larger the calculation amount required for optimizing the OPC algorithm, i.e. the more commands in the algorithm script, the more commands are executed, and the existing method for running the script is serial calculation, i.e. each command is executed sequentially from the beginning of the script to the end of the script.
However, this operation mode has a certain defect that there are multiple types of command instructions in the script, some virtual instructions without any use are not available, all commands are executed in series without resolution, a long operation time is required, and machine resources are wasted.
Disclosure of Invention
In order to solve the problem of low running speed of the existing script, the invention provides a task scheduling method, a task scheduling system, electronic equipment and a storage medium based on DAG.
The invention provides the following technical scheme for solving the technical problems: a DAG-based task scheduling method, comprising the steps of:
step S1: providing an initial script, and collecting all input objects and output objects of executing commands in the initial script;
Step S2: finding out and deleting a virtual command in the initial script to generate a directed acyclic graph;
step S3: obtaining a plurality of execution stages with successive dependency relationships based on the directed acyclic graph;
step S4: and operating the script of the execution stage and clearing the memory.
Preferably, step S2 comprises the steps of:
step S21: traversing the directed acyclic graph;
step S22: marking a command incapable of outputting a preset result as a virtual command;
step S23: the virtual command is deleted.
Preferably, the clearing the memory includes the steps of:
step S41: marking the executed command;
step S43: screening out all marked input objects of the execution command;
step S43: the input objects whose execution commands are all marked are deleted.
Preferably, at least one execution command is included in each execution phase.
Preferably, there is no dependency between all execution commands within the same execution phase.
Preferably, the scripts of different execution phases are serial operations, and the scripts of the same execution phase are parallel operations.
The invention provides another technical scheme for solving the technical problems as follows: a task scheduling system based on DAG comprises a collecting module, a processing module and an executing module; the collecting module is in signal connection with the processing module, and the processing module is in signal connection with the executing module;
The collection module is used for collecting input objects and output objects of all commands in the initial script;
the processing module processes the data of the collecting module to obtain a plurality of execution stages with a sequential dependency relationship;
and the execution module runs calculation on the script of the execution stage.
Preferably, the execution module may perform multi-threaded execution and/or distributed execution of commands within a single of the execution phases.
The invention provides another technical scheme for solving the technical problems as follows: an electronic device comprising a processor and a memory storing computer program instructions that when executed implement the DAG-based task scheduling method of any one of the above.
The invention provides another technical scheme for solving the technical problems as follows: a storage medium having stored thereon a computer program which, when executed by a processor, implements a DAG-based task scheduling method as claimed in any one of the preceding claims.
Compared with the prior art, the task scheduling method, the task scheduling system, the electronic equipment and the storage medium based on the DAG have the following beneficial effects:
The task scheduling method based on the DAG provided by the embodiment of the invention comprises the following steps:
step S1: providing an initial script, and collecting all input objects and output objects of executing commands in the initial script;
step S2: finding out and deleting a virtual command in the initial script to generate a directed acyclic graph;
step S3: obtaining a plurality of execution stages with successive dependency relationships based on the directed acyclic graph;
step S4: and operating the script of the execution stage and clearing the memory.
It can be understood that, the task scheduling method based on DAG provided in this embodiment has the core content of disturbing and reconstructing the command execution sequence in the initial script by using the DAG principle, and re-integrating the commands without dependency relationship to execute the calculation in parallel.
Furthermore, the task scheduling method eliminates virtual commands which cannot output expected targets in the script in advance before starting to execute the commands, so that unnecessary time and resources are wasted to execute invalid commands in the later operation, time and resource waste is avoided, and the running efficiency is lowered.
In addition, the task scheduling method can also realize timely memory clearing, delete command objects which are not needed by subsequent commands when the commands are executed, release the memory and improve the operation efficiency.
Through the design, the memory occupation amount and the calculation amount of the equipment can be reduced, and the operation efficiency of the script is greatly improved.
The task scheduling method based on the DAG provided by the embodiment of the invention comprises the following steps of:
step S21: traversing the directed acyclic graph;
step S22: marking a command incapable of outputting a preset result as a virtual command;
step S23: the virtual command is deleted.
It can be understood that a certain node command of the directed acyclic graph can walk to a final output node after traversing, the command is a command which must be executed, and the output result of the layout is not affected if the command is not executed.
Otherwise, if a command of the directed acyclic graph cannot finally go to a final output node after traversing, whether the command is executed or not has no influence on the output result of the layout is indicated, and the command belongs to a virtual command, so that the virtual command is deleted after being found to reduce the memory occupation amount in order to save resources; after the virtual command is deleted, the virtual command is not executed any more when the script operation is carried out later, so that the waste of time and resources is reduced, and the overall operation rate is improved.
Through the design, the virtual command which does not affect the operation result can be accurately found, the memory is released by deleting the virtual command, the subsequent useless virtual command running wasting time resources is avoided, and the overall running efficiency of the initial script is further improved.
The task scheduling method based on the DAG provided by the embodiment of the invention, the memory clearing comprises the following steps:
step S41: marking the executed command;
step S43: screening out all marked input objects of the execution command;
step S43: the input objects whose execution commands are all marked are deleted.
It can be understood that the task scheduling method marks the executed command while performing parallel computation, and when the command corresponding to a certain input object is marked, it indicates that the command associated with the input object is completely executed, that is, the input object will not be invoked in the following step, and the input object and related instructions can be cleared.
The memory is released by clearing the input objects which are completely executed and are not needed later in the memory, so that the memory occupancy rate of the processor is reduced, the processor operates more smoothly, and the operating rate is improved.
The task scheduling method based on the DAG provided by the embodiment of the invention comprises at least one execution command in each execution stage, and all the execution commands in the same execution stage have no dependency relationship.
It will be appreciated that for scripts with thousands of commands, if each is executed in sequence, thousands of runs would be required, and the overall speed of operation would be extremely slow; however, in practice, for a script, there is not a dependency relationship between each command, and it should be understood that two commands that already have execution conditions and have no dependency relationship can be executed in parallel.
Based on the front-back dependency relationship between each command, the commands in the initial script are integrated into a plurality of execution phases, and the commands which have no dependency relationship with each other and meet the execution conditions are classified as the same execution phase for parallel calculation.
Specifically, the execution stages divided by the method include one or more commands, the division of the execution stages changes the mode of script command operation calculation from sequential execution of a single command to sequential execution of the execution stages, and the same execution stage generally includes a plurality of commands, i.e. the operation calculation of one execution stage is equivalent to synchronous calculation of a plurality of commands, thereby greatly improving the overall operation rate.
The embodiment of the invention also provides a task scheduling method based on the DAG, wherein the scripts of different execution stages are serial operation, and the scripts of the same execution stage are parallel operation.
It can be understood that, according to the mutual dependency relationship of the commands of the initial script, the method classifies a plurality of commands without front-back dependency into the same execution stage, and the commands with the dependency relationship are distributed to different execution stages to form the dependency relationship between the execution stages.
The scripts of the plurality of execution stages are serially operated in turn according to the dependency relationship, and parallel operation is carried out on a plurality of commands of the same execution stage. By the operation mode, the operation efficiency of the whole script is improved.
The embodiment of the invention also provides a task scheduling system based on the DAG, which comprises a collecting module, a processing module and an executing module; the collecting module is in signal connection with the processing module, and the processing module is in signal connection with the executing module;
the collection module is used for collecting input objects and output objects of all commands in the initial script;
the processing module processes the data of the collecting module to obtain a plurality of execution stages with a sequential dependency relationship;
the execution module performs computation on the script of the execution phase.
It should be noted that, in the task scheduling system based on DAG provided in this embodiment, first, the collecting module collects command information of an initial script, and sends the collected information to the processing module, the processing module processes a script command and divides the script command into a plurality of execution phases, and finally, the execution module calculates script running of the execution phases; it should be appreciated that the execution module performs serial computation for multiple execution phases and parallel computation for multiple commands within a single execution phase.
Through the design, the running speed of the initial script can be greatly improved.
The execution module of the DAG-based task scheduling system provided by the embodiment of the invention can perform multi-thread execution and/or distributed execution on commands in a single execution stage.
It will be appreciated that the parallel execution of multiple commands within a single execution phase may be multi-threaded, i.e., one service running multiple commands simultaneously, depending on the actual processing device; distributed execution is also possible, i.e., multiple processors are used, each running one or more commands in the execution phase.
Through the design, a plurality of commands can be synchronously executed, so that the calculation time is reduced, and the overall operation rate is improved; meanwhile, due to the design of multi-thread execution and distributed execution, the task scheduling system based on the DAG provided by the embodiment can be applicable to single-processor or multi-processor machine equipment, has higher compatibility, and further improves the market competitiveness of products.
Further, the task scheduling system based on the DAG provided by the invention has the same beneficial effects as the task scheduling method based on the DAG provided by the invention, and is not repeated here.
The invention also provides an electronic device comprising a processor and a memory storing computer program instructions, the processor implementing the DAG-based task scheduling method according to any one of the above when executing the computer program instructions. The electronic device has the same beneficial effects as the task scheduling method based on the DAG provided by the invention, and the detailed description is omitted here.
9. The present invention also provides a storage medium having stored thereon a computer program which, when executed by a processor, implements a DAG-based task scheduling method as defined in any one of the above. The storage medium has the same beneficial effects as the task scheduling method based on the DAG provided by the invention, and is not described herein.
Drawings
Fig. 1 is a general flow chart of a DAG-based task scheduling method provided in a first embodiment of the present invention.
Fig. 2 is a flowchart of a DAG-based task scheduling method provided in the first embodiment.
Fig. 3 is a detailed flowchart of step S2 of the DAG-based task scheduling method provided in the first embodiment.
Fig. 4 is a detailed flowchart of step S4 of the DAG-based task scheduling method provided in the first embodiment.
Fig. 5 is the directed acyclic fig. 1 of the DAG-based task scheduling method provided by the first embodiment.
Fig. 6 is the directed acyclic fig. 1A of the DAG-based task scheduling method provided by the first embodiment.
Fig. 7 is a block diagram of a task scheduling system based on DAG according to the second embodiment.
Fig. 8 is a block diagram of the structure of an electronic device provided in the third embodiment.
Description of the drawings
1. A directed acyclic graph; 10. r node; 20. a C node; 30. a W node; 40. a node D;
100. a DAG-based task scheduling system; 101. a collection module; 102. a processing module; 103. an execution module;
200. an electronic device; 201. a processor; 202. a memory.
Detailed Description
For the purpose of making the technical solution and advantages of the present invention more apparent, the present invention will be further described in detail below with reference to the accompanying drawings and examples of implementation. It should be understood that the specific embodiments described herein are for purposes of illustration only and are not intended to limit the scope of the invention.
In the embodiments provided herein, it should be understood that "B corresponding to a" means that B is associated with a, from which B can be determined. It should also be understood that determining B from a does not mean determining B from a alone, but may also determine B from a and/or other information.
It should be appreciated that reference throughout this specification to "one embodiment" or "an embodiment" means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present application. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. Those skilled in the art will also appreciate that the embodiments described in the specification are alternative embodiments and that the acts and modules referred to are not necessarily required for the present application.
In various embodiments of the present application, it should be understood that the sequence numbers of the foregoing processes do not imply that the execution sequences of the processes should be determined by the functions and internal logic of the processes, and should not be construed as limiting the implementation of the embodiments of the present application.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Referring to fig. 1, a first embodiment of the present invention provides a task scheduling method based on DAG, where the task scheduling method based on DAG includes the following steps:
step S1: providing an initial script, and collecting all input objects and output objects of executing commands in the initial script;
step S2: finding out and deleting a virtual command in the initial script to generate a directed acyclic graph;
step S3: obtaining a plurality of execution stages with successive dependency relationships based on the directed acyclic graph;
step S4: and operating the script of the execution stage and clearing the memory.
It can be understood that the task scheduling method based on DAG provided in this embodiment is mainly used for improving the operation efficiency of the algorithm when OPC optimization is performed on the chip, and the core is that firstly, a directed acyclic graph is extracted from the initial script, and the front-back dependency relationship between the commands is clarified based on the extracted directed acyclic graph. The task scheduling method based on the DAG screens out the commands which can be executed in parallel and have no dependency relationship with each other by clearing the dependency relationship among the commands, so that the commands which are in the post-setting in the initial script but meet the running conditions at the early stage can be run in advance, and the commands which are in the post-setting can be executed without waiting for the commands in the pre-setting to be completely executed, thereby achieving the purpose of shortening the running time of the script.
It should be noted that, referring to fig. 5, the directed acyclic graph extracted by the initial script includes two objects: nodes and edges, each node on the graph representing a command object, each edge representing the specific contents of a command. In particular, the direction of one node to another node is unidirectional, which is represented on the graph as unidirectional arrows; the node objects of the directed acyclic graph may be input objects or output objects, it being understood that the objects of certain nodes in the directed acyclic graph may act as both input objects and output objects, i.e., one node is an output object with respect to its previous node command, but is an input object with respect to the next node command.
In particular, thousands of commands are included in the initial script, but not every command can travel to the final output node, and the embodiment defines a command that cannot travel to the final output node, that is, a command that cannot output the expected target object, as a virtual command, and the virtual command does not contribute to the final result of the initial script operation, that is, whether the execution of the virtual command does not affect the output result of the script. Therefore, in order to avoid wasting machine resources to operate useless virtual commands, the task scheduling method based on DAG provided by the embodiment screens out virtual commands in the initial script in advance before running the calculation initial script, and deletes the virtual commands, so that virtual commands are not in the script for actual operation, that is, time and resources are not wasted to execute the useless virtual commands, thereby reducing the resource occupancy rate of the machine and improving the overall running efficiency of the script.
Further, referring to fig. 2, step S10 is further included between step S1 and step S2: an initial directed acyclic graph is generated.
In one possible implementation, after collecting the input object and the output object of the initial script execution command, the virtual commands are found and deleted based on the content of the initial script, and then the script with all the virtual commands deleted is converted into a directed acyclic graph for the next operation.
In another possible implementation, after collecting the input object and the output object of the initial script execution command, forming an initial directed acyclic graph based on the initial script, searching for virtual commands through the initial directed acyclic graph, namely, deleting useless nodes and edges which cannot go to a final node in the graph, and performing next operation according to the updated directed acyclic graph without the virtual commands.
It can be understood that the purpose of obtaining the command which can be executed in parallel without dependency relationship in the initial script can be achieved no matter whether the virtual command is deleted first and then the directed acyclic graph is generated or the directed acyclic graph is generated first and then the virtual command is deleted.
It should be further noted that in an alternative embodiment, nodes within the directed acyclic graph may be broadly divided into two categories: a normal node and a write-out node; the edges of the directed acyclic graph, i.e., commands, can also be divided into two types, ordinary commands and read-in and write-out commands. Specifically, the write-out node is a node generated by a write-out command, a node which is output as a final result in the graph, the node is written with an output file, and the normal node is a node obtained by a read-in command and a normal command, and is represented as a node which needs to be called by other commands in the graph. The structure of the nodes and edges of the read command and the write-out command is quite special, the read command A refers to the edge of the common node A, and the write-out command A refers to the edge of the write-out node A.
With continued reference to fig. 5, fig. 5 shows a directed acyclic graph 1 extracted based on an initial script, wherein a W node 30 is a writing-out node, and R nodes 10, C nodes 20, and D nodes 40 are normal nodes; the arrow to W node 30 represents a write-out command and the arrow to C node 20 represents a normal command. In particular, the write command is represented in the figure as an arrow (not shown in the figure) pointing to the R node 10 itself; in addition, an arrow pointing to the D node 40 represents a virtual command.
Further, referring to fig. 3, step S2 includes the following steps:
step S21: traversing the directed acyclic graph;
step S22: marking a command incapable of outputting a preset result as a virtual command;
step S23: the virtual command is deleted.
It should be noted that, in step S21, the specific way of traversing the directed acyclic graph 1 may be depth-first traversal, breadth-first traversal, or other graph traversal methods, as long as the directed acyclic graph 1 can be traversed comprehensively, and virtual commands are found, where the specific way of traversing is not limited too much.
In a preferred embodiment, the directed acyclic graph 1 is subjected to depth-first traversal, that is, starting from a certain R node 10 of the directed acyclic graph, accessing the R node 10 first, then searching for a C node 20 which is not accessed from adjacent nodes, continuing the depth-first traversal graph by taking the C node 20 as a new starting node, if the adjacent node is not accessed, continuing to traverse forward, otherwise, returning to the previous node and continuing to access the adjacent node which is not accessed forward, if the returning is not advanced, continuing to return to a position where the directed acyclic graph can be advanced, and repeating the process until all nodes in the graph are accessed.
Specifically, if a node on the directed acyclic graph can eventually reach a write-out node, i.e., W node 30, i.e., nodes W1, W2, W3, W4, etc., as shown in FIG. 5, along the edge of the graph, it is indicated that it is necessary to execute, marked as 1, otherwise marked as 0, such as D node 40, i.e., D1 node, of the graph, which cannot proceed forward to W node 30, indicating that it is a virtual command, may not be executed. After the depth-first traversal of the directed acyclic graph 1 is completed, the node marked as 0 and the edge pointing to the node of the type, namely the D node 40 and the arrow pointing to the D node 40, on the graph are deleted, and the specific representation on the graph 5 is to delete the D1 node and the arrow pointing to the D1 node in the graph, so that the directed acyclic graph without virtual command can be obtained.
Further, referring to fig. 4, the steps of clearing the memory include:
step S41: marking the executed command;
step S43: screening out all marked input objects of the execution command;
step S43: the input objects whose execution commands are all marked are deleted.
It should be noted that, for an input object that has been executed and is no longer required to be invoked later, its storage on the processor cannot not only help the subsequent running result, but also occupies memory resources, thereby reducing the running rate. Therefore, the DAG-based task scheduling method provided in this embodiment may delete the input objects that have already been executed and are no longer needed to be scheduled later while calculating the parallel command.
With continued reference to fig. 5, it can be seen from fig. 5 that the node R1 and the node R2 point to the node C1 and the node C3, and then when we have executed the command corresponding to the node C1, the edge of the node R1 pointing to the node C1 and the edge of the node R2 pointing to the node C1 can be marked as 0, but the node R1 and the node R2 cannot be deleted in the memory at this time, because the node R1 and the node R2 are still needed to be used when the node C3 is generated. When the execution of the node C3 is finished, the edges of the node R1 and the node R2 pointing to the node C3 are also marked as 0, and all the edges going out from the node R1 and the node R2 are marked as 0, that is, it proves that no other command needs to be used, so that the node R1 and the node R2 can be cleared in the memory at this time, that is, the condition of deleting the node R1 and the node R2 is: node C1 and node C3 are both executed.
Further, each execution stage comprises at least one execution command, and all the execution commands in the same execution stage have no dependency relationship.
Specifically, the scripts of different execution stages are serial operations, and the scripts of the same execution stage are parallel operations.
It will be appreciated that a plurality of task lines may be found based on the directed acyclic graph, with the graph defined as one task line going from a start node to an end node in the direction of the arrow. Specifically, each task line includes more than two nodes, i.e., at least two commands need to be executed to run one task line. The task line is divided into a plurality of execution phases with nodes as boundaries.
For example, the first task line has 2 nodes, i.e. the first node is the first execution stage, and the second node is the second execution stage; similarly, the first task line has 3 nodes, i.e. the first node is the first execution stage, the second node is the second execution stage, and the third node is the third execution stage.
In the actual running process, the execution phases of each task line with the same level can be executed in parallel, namely the first phase of the first task line and the first phase of the second task line are not in a dependency relationship, so that the execution phases can be executed in parallel. And the different execution stages of the same task line have dependency relations, so serial calculation is adopted.
Specifically, referring to fig. 6 together, fig. 6 is a directed acyclic graph 1A with virtual commands deleted, and the specific operation of each execution stage of the directed acyclic graph 1A is as follows:
a first execution phase: two commands are executed, node R1 and node R2 are generated by a write command.
A second execution stage: two commands are executed, node C1 and node C3 are generated by node R1 and node R2, and then node R1 and node R2 are cleared in memory.
And a third execution stage: two commands are executed, node C1 and node C3 generate node C2 and node C4, and node C1 is then cleared in memory.
A fourth execution phase: four commands are executed, node C2, node C3 and node C4 generate node W1, node W2, node W3 and node W4, and then node C2, node C3 and node C4 are cleared in memory.
It should be noted that, the two commands executed in the second execution stage are the generating node C1 and the node C3, and the two commands may be executed in parallel, and it should be noted that the step of "clearing the node R1 and the node R2 in the memory" may be performed after the execution of the two commands of "generating the node C1 and the node C3" is finished, which should be understood that the clearing node does not take the node as a command in this embodiment.
Further, referring to fig. 7, a second embodiment of the present invention further provides a DAG-based task scheduling system 100, which includes a collecting module 101, a processing module 102, and an executing module 103; the collection module 101 is in signal connection with the processing module 102, and the processing module 102 is in signal connection with the execution module 103;
the collection module 101 is used for collecting input objects and output objects of all commands in the initial script;
the processing module 102 processes the data of the collecting module 101 to obtain a plurality of execution stages with a sequential dependency relationship;
The execution module 103 runs calculations on the script for the execution phase.
It should be noted that, the collection module 101 collects data information in the initial script by means of user input, network acquisition, signal receiving or scanning input, and the like, where the data information includes, but is not limited to, all command information of the initial script, that is, input objects, output objects, command contents, or other data information needed in the script running process.
Further, the collecting module 101 is in signal connection with the processing module 102, the collecting module 101 sends the script data collected by the collecting module to the processing module 102, and the processing module 102 processes the received data information.
Specifically, the processing module 102 performs processing operations on the received data information, including: dividing command types, namely dividing commands and virtual commands which must be executed; deleting the virtual command; and integrating the screened commands which need to be executed into a plurality of execution stages which can be executed in parallel according to the front-back dependency relationship among the commands.
Further, the execution module 103 may perform multi-threaded execution and/or distributed execution of commands within a single execution phase.
It should be noted that, depending on the number of processors configured on the processing device, a multithreading or distributed execution manner may be selected. When the processing equipment is provided with only one processor, a plurality of commands which can be operated in parallel in the execution stage can be calculated and processed in a multithreading mode, namely, a plurality of commands are simultaneously operated in one processor; when two or more processors are provided on the processing device, the operation can be preferably performed in a distributed execution manner, that is, the operation can be performed on multiple processors at the same time, and specifically, the number of commands to be executed by each processor can be allocated according to the number of commands to be executed, the number of processors and the actual computing capability of the processors.
The time of integral operation can be reduced and the running number can be increased by a mode of executing a plurality of commands in parallel; the multiple parallel computing modes provided in the embodiment enable the task scheduling system 100 based on the DAG to be applied to multiple machine devices, so that the task scheduling system has higher compatibility, and the market competitiveness of the product is further improved.
It should be noted that, in the present application, the embodiment of the task scheduling system 100 based on the DAG and the foregoing embodiment of the task scheduling method based on the DAG correspond to each other, and the specific principle and the beneficial effects generated in the embodiment of the task scheduling system 100 based on the DAG may be referred to the content in the embodiment of the task scheduling method based on the DAG, which is not described herein again.
In several embodiments provided in this embodiment, the modules may be electrically, mechanically, or otherwise coupled to each other.
In addition, each functional module in each embodiment of the present application may be integrated into one processing module, or each module may exist alone physically, or two or more modules may be integrated into one module. The integrated modules may be implemented in hardware or in software functional modules.
Further, referring to fig. 8 together, a third embodiment of the present invention further provides an electronic device 200, including a processor 201 and a memory 202 storing computer program instructions, where the processor 201 implements the DAG-based task scheduling method according to any one of the above when executing the computer program instructions.
Specifically, the electronic device 200 may be a smart phone, a tablet computer, a computer, or a portable computer.
It will be appreciated that the processor 201 may include one or more cores for processing data and a message matrix unit. The processor 201 utilizes various interfaces and lines to connect various portions of the overall electronic device, perform various functions of the electronic device 200, and process data by executing or executing instructions, programs, code sets, or instruction sets stored in the memory 202, and invoking data stored in the memory 202.
Alternatively, the processor 201 may be implemented in at least one hardware form of digital signal processing, field programmable gate array, or editable logic array. The processor 201 may integrate one or a combination of several of a central processor, an image processor, a modem and the like. The modulation decoder may not be integrated into the processor, and may be implemented by a single communication chip.
Memory 202 may include random access memory or read only memory, and memory 202 may be used to store instructions, programs, code sets, or instruction sets. The memory 202 may include a stored program area and a stored data area, wherein the stored program area may store instructions for implementing an operating system, instructions for implementing at least one function, instructions for implementing the various method embodiments described above, and the like; the storage data area may also store data created by the terminal in use, etc.
Further, a fourth embodiment of the present invention also provides a storage medium having stored thereon a computer program which, when executed by a processor, implements a DAG-based task scheduling method as set forth in any one of the above.
In particular implementations, the storage medium may be, for example, flash memory, random access memory, read only memory, hard disk, optical disk, magnetic disk, and the like. Optionally, the computer readable storage medium comprises a non-volatile computer readable medium. The storage medium has a storage space for program code to perform any of the method steps in the DAG-based task scheduling method described above. The program code can be read from or written to one or more computer program products. The program code may be compressed, for example, in a suitable form.
In a possible embodiment, a computer program product or a computer program is also provided, which comprises computer instructions stored in the storage medium. The processor of the computer device reads the computer instructions from the storage medium and executes the computer instructions to cause the computer device to perform the DAG-based task scheduling method described in the various alternative implementations described above.
Compared with the prior art, the task scheduling method, the task scheduling system, the electronic equipment and the storage medium based on the DAG have the following beneficial effects:
the task scheduling method based on the DAG provided by the embodiment of the invention comprises the following steps:
step S1: providing an initial script, and collecting all input objects and output objects of executing commands in the initial script;
step S2: finding out and deleting a virtual command in the initial script to generate a directed acyclic graph;
step S3: obtaining a plurality of execution stages with successive dependency relationships based on the directed acyclic graph;
step S4: and operating the script of the execution stage and clearing the memory.
It can be understood that, the task scheduling method based on DAG provided in this embodiment has the core content of disturbing and reconstructing the command execution sequence in the initial script by using the DAG principle, and re-integrating the commands without dependency relationship to execute the calculation in parallel.
Furthermore, the task scheduling method eliminates virtual commands which cannot output expected targets in the script in advance before starting to execute the commands, so that unnecessary time and resources are wasted to execute invalid commands in the later operation, time and resource waste is avoided, and the running efficiency is lowered.
In addition, the task scheduling method can also realize timely memory clearing, delete command objects which are not needed by subsequent commands when the commands are executed, release the memory and improve the operation efficiency.
Through the design, the memory occupation amount and the calculation amount of the equipment can be reduced, and the operation efficiency of the script is greatly improved.
The task scheduling method based on the DAG provided by the embodiment of the invention comprises the following steps of:
step S21: traversing the directed acyclic graph;
step S22: marking a command incapable of outputting a preset result as a virtual command;
step S23: the virtual command is deleted.
It can be understood that a certain node command of the directed acyclic graph can walk to a final output node after traversing, the command is a command which must be executed, and the output result of the layout is not affected if the command is not executed.
Otherwise, if a command of the directed acyclic graph cannot finally go to a final output node after traversing, whether the command is executed or not has no influence on the output result of the layout is indicated, and the command belongs to a virtual command, so that the virtual command is deleted after being found to reduce the memory occupation amount in order to save resources; after the virtual command is deleted, the virtual command is not executed any more when the script operation is carried out later, so that the waste of time and resources is reduced, and the overall operation rate is improved.
Through the design, the virtual command which does not affect the operation result can be accurately found, the memory is released by deleting the virtual command, the subsequent useless virtual command running wasting time resources is avoided, and the overall running efficiency of the initial script is further improved.
The task scheduling method based on the DAG provided by the embodiment of the invention, the memory clearing comprises the following steps:
step S41: marking the executed command;
step S43: screening out all marked input objects of the execution command;
step S43: the input objects whose execution commands are all marked are deleted.
It can be understood that the task scheduling method marks the executed command while performing parallel computation, and when the command corresponding to a certain input object is marked, it indicates that the command associated with the input object is completely executed, that is, the input object will not be invoked in the following step, and the input object and related instructions can be cleared.
The memory is released by clearing the input objects which are completely executed and are not needed later in the memory, so that the memory occupancy rate of the processor is reduced, the processor operates more smoothly, and the operating rate is improved.
The task scheduling method based on the DAG provided by the embodiment of the invention comprises at least one execution command in each execution stage, and all the execution commands in the same execution stage have no dependency relationship.
It will be appreciated that for scripts with thousands of commands, if each is executed in sequence, thousands of runs would be required, and the overall speed of operation would be extremely slow; however, in practice, for a script, there is not a dependency relationship between each command, and it should be understood that two commands that already have execution conditions and have no dependency relationship can be executed in parallel.
Based on the front-back dependency relationship between each command, the commands in the initial script are integrated into a plurality of execution phases, and the commands which have no dependency relationship with each other and meet the execution conditions are classified as the same execution phase for parallel calculation.
Specifically, the execution stages divided by the method include one or more commands, the division of the execution stages changes the mode of script command operation calculation from sequential execution of a single command to sequential execution of the execution stages, and the same execution stage generally includes a plurality of commands, i.e. the operation calculation of one execution stage is equivalent to synchronous calculation of a plurality of commands, thereby greatly improving the overall operation rate.
The embodiment of the invention also provides a task scheduling method based on the DAG, wherein the scripts of different execution stages are serial operation, and the scripts of the same execution stage are parallel operation.
It can be understood that, according to the mutual dependency relationship of the commands of the initial script, the method classifies a plurality of commands without front-back dependency into the same execution stage, and the commands with the dependency relationship are distributed to different execution stages to form the dependency relationship between the execution stages.
The scripts of the plurality of execution stages are serially operated in turn according to the dependency relationship, and parallel operation is carried out on a plurality of commands of the same execution stage. By the operation mode, the operation efficiency of the whole script is improved.
The embodiment of the invention also provides a task scheduling system based on the DAG, which comprises a collecting module, a processing module and an executing module; the collecting module is in signal connection with the processing module, and the processing module is in signal connection with the executing module;
the collection module is used for collecting input objects and output objects of all commands in the initial script;
the processing module processes the data of the collecting module to obtain a plurality of execution stages with a sequential dependency relationship;
the execution module performs computation on the script of the execution phase.
It should be noted that, in the task scheduling system based on DAG provided in this embodiment, first, the collecting module collects command information of an initial script, and sends the collected information to the processing module, the processing module processes a script command and divides the script command into a plurality of execution phases, and finally, the execution module calculates script running of the execution phases; it should be appreciated that the execution module performs serial computation for multiple execution phases and parallel computation for multiple commands within a single execution phase.
Through the design, the running speed of the initial script can be greatly improved.
The execution module of the DAG-based task scheduling system provided by the embodiment of the invention can perform multi-thread execution and/or distributed execution on commands in a single execution stage.
It will be appreciated that the parallel execution of multiple commands within a single execution phase may be multi-threaded, i.e., one service running multiple commands simultaneously, depending on the actual processing device; distributed execution is also possible, i.e., multiple processors are used, each running one or more commands in the execution phase.
Through the design, a plurality of commands can be synchronously executed, so that the calculation time is reduced, and the overall operation rate is improved; meanwhile, due to the design of multi-thread execution and distributed execution, the task scheduling system based on the DAG provided by the embodiment can be applicable to single-processor or multi-processor machine equipment, has higher compatibility, and further improves the market competitiveness of products.
Further, the task scheduling system based on the DAG provided by the invention has the same beneficial effects as the task scheduling method based on the DAG provided by the invention, and is not repeated here.
The invention also provides an electronic device comprising a processor and a memory storing computer program instructions, the processor implementing the DAG-based task scheduling method according to any one of the above when executing the computer program instructions. The electronic device has the same beneficial effects as the task scheduling method based on the DAG provided by the invention, and the detailed description is omitted here.
The present invention also provides a storage medium having stored thereon a computer program which, when executed by a processor, implements a DAG-based task scheduling method as defined in any one of the above. The storage medium has the same beneficial effects as the task scheduling method based on the DAG provided by the invention, and is not described herein.
The task scheduling method, system, electronic device and storage medium based on DAG disclosed in the embodiments of the present invention are described in detail, and specific examples are applied to illustrate the principles and embodiments of the present invention, where the descriptions of the above embodiments are only used to help understand the method and core ideas of the present invention; meanwhile, as for those skilled in the art, according to the idea of the present invention, there are changes in the specific embodiments and the application scope, and in summary, the present disclosure should not be construed as limiting the present invention, and any modifications, equivalent substitutions and improvements made within the principle of the present invention should be included in the protection scope of the present invention.

Claims (10)

1. The task scheduling method based on the DAG is characterized by comprising the following steps of:
step S1: providing an initial script, and collecting all input objects and output objects of executing commands in the initial script;
step S2: finding out and deleting a virtual command in the initial script to generate a directed acyclic graph;
step S3: obtaining a plurality of execution stages with successive dependency relationships based on the directed acyclic graph;
step S4: and operating the script of the execution stage and clearing the memory.
2. The DAG-based task scheduling method of claim 1, wherein step S2 comprises the steps of:
step S21: traversing the directed acyclic graph;
step S22: marking a command incapable of outputting a preset result as a virtual command;
step S23: the virtual command is deleted.
3. The DAG-based task scheduling method of claim 1, wherein: the memory clearing comprises the following steps:
step S41: marking the executed command;
step S43: screening out all marked input objects of the execution command;
step S43: the input objects whose execution commands are all marked are deleted.
4. The DAG-based task scheduling method of claim 1, wherein: at least one execution command is included within each execution phase.
5. The DAG-based task scheduling method of claim 1, wherein: there is no dependency between all execution commands within the same execution phase.
6. The DAG-based task scheduling method of claim 1, wherein: the scripts of different execution stages are serial operation, and the scripts of the same execution stage are parallel operation.
7. A DAG-based task scheduling system, characterized by: the device comprises a collection module, a processing module and an execution module; the collecting module is in signal connection with the processing module, and the processing module is in signal connection with the executing module;
the collection module is used for collecting input objects and output objects of all commands in the initial script;
the processing module processes the data of the collecting module to obtain a plurality of execution stages with a sequential dependency relationship;
and the execution module runs calculation on the script of the execution stage.
8. The DAG-based task scheduling system of claim 7, wherein: the execution module may perform multi-threaded execution and/or distributed execution of commands within a single of the execution phases.
9. An electronic device comprising a processor and a memory storing computer program instructions that when executed implement the DAG-based task scheduling method of any one of claims 1-6.
10. A storage medium having a computer program stored thereon, characterized by: the computer program, when executed by a processor, implements a DAG-based task scheduling method according to any one of claims 1-6.
CN202311336418.5A 2023-10-16 2023-10-16 Task scheduling method, system, electronic equipment and storage medium based on DAG Active CN117076095B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311336418.5A CN117076095B (en) 2023-10-16 2023-10-16 Task scheduling method, system, electronic equipment and storage medium based on DAG

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311336418.5A CN117076095B (en) 2023-10-16 2023-10-16 Task scheduling method, system, electronic equipment and storage medium based on DAG

Publications (2)

Publication Number Publication Date
CN117076095A true CN117076095A (en) 2023-11-17
CN117076095B CN117076095B (en) 2024-02-09

Family

ID=88715660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311336418.5A Active CN117076095B (en) 2023-10-16 2023-10-16 Task scheduling method, system, electronic equipment and storage medium based on DAG

Country Status (1)

Country Link
CN (1) CN117076095B (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006081084A2 (en) * 2005-01-31 2006-08-03 Northrop Grumman Corporation Remote component and connection architecture
US20110197189A1 (en) * 2010-02-05 2011-08-11 Tripwire, Inc. Systems and methods for triggering scripts based upon an alert within a virtual infrastructure
US20140053056A1 (en) * 2012-08-16 2014-02-20 Qualcomm Incorporated Pre-processing of scripts in web browsers
CN107315581A (en) * 2017-05-23 2017-11-03 努比亚技术有限公司 Mission script generating means and method, task scheduling system and method
CN110018817A (en) * 2018-01-05 2019-07-16 中兴通讯股份有限公司 The distributed operation method and device of data, storage medium and processor
CN110554909A (en) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 task scheduling processing method and device and computer equipment
CN112764907A (en) * 2021-01-26 2021-05-07 网易(杭州)网络有限公司 Task processing method and device, electronic equipment and storage medium
WO2021174945A1 (en) * 2020-10-21 2021-09-10 平安科技(深圳)有限公司 Data cost calculation method, system, computer device, and storage medium
CN116775039A (en) * 2023-06-29 2023-09-19 东方晶源微电子科技(上海)有限公司 Operation script optimization method, system and storage medium

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006081084A2 (en) * 2005-01-31 2006-08-03 Northrop Grumman Corporation Remote component and connection architecture
US20110197189A1 (en) * 2010-02-05 2011-08-11 Tripwire, Inc. Systems and methods for triggering scripts based upon an alert within a virtual infrastructure
US20140053056A1 (en) * 2012-08-16 2014-02-20 Qualcomm Incorporated Pre-processing of scripts in web browsers
CN107315581A (en) * 2017-05-23 2017-11-03 努比亚技术有限公司 Mission script generating means and method, task scheduling system and method
CN110018817A (en) * 2018-01-05 2019-07-16 中兴通讯股份有限公司 The distributed operation method and device of data, storage medium and processor
CN110554909A (en) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 task scheduling processing method and device and computer equipment
WO2021174945A1 (en) * 2020-10-21 2021-09-10 平安科技(深圳)有限公司 Data cost calculation method, system, computer device, and storage medium
CN112764907A (en) * 2021-01-26 2021-05-07 网易(杭州)网络有限公司 Task processing method and device, electronic equipment and storage medium
CN116775039A (en) * 2023-06-29 2023-09-19 东方晶源微电子科技(上海)有限公司 Operation script optimization method, system and storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙伟东;马宗民;: "基于数据依赖和触发器的简单子任务调度算法", 辽宁大学学报(自然科学版), no. 02 *
王樱;李琳;王杰;: "基于有向无环图的时间―费用优化调度算法", 衡阳师范学院学报, no. 03 *

Also Published As

Publication number Publication date
CN117076095B (en) 2024-02-09

Similar Documents

Publication Publication Date Title
CN110058883B (en) CNN acceleration method and system based on OPU
US20210089355A1 (en) Memory Allocation Method and Apparatus for Neural Network
US9996394B2 (en) Scheduling accelerator tasks on accelerators using graphs
EP1785875A2 (en) Method for mapping applications on a multiprocessor platform/system
US9152389B2 (en) Trace generating unit, system, and program of the same
US11132294B2 (en) Real-time replicating garbage collection
KR20110015439A (en) Local and global data share
CN111028360B (en) Data reading and writing method and system in 3D image processing, storage medium and terminal
CN116483319A (en) Operator processing method, device, equipment and medium for software defined chip
CN110069284B (en) Compiling method and compiler based on OPU instruction set
CN114648105A (en) Slicing method, device, chip and storage medium of multi-output neural network
JP3877002B2 (en) Information processing system and information processing method
CN117076095B (en) Task scheduling method, system, electronic equipment and storage medium based on DAG
US20240045787A1 (en) Code inspection method under weak memory ordering architecture and corresponding device
WO2018144030A1 (en) System and method for identifying maximal independent sets in parallel
CN112667593B (en) Method and device for ETL (extract transform and load) process to execute hbase fast loading
WO2023221626A1 (en) Memory allocation method and apparatus
CN116775039A (en) Operation script optimization method, system and storage medium
JP2002108958A (en) System and method for designing circuit and computer readable recording medium stored with circuit design program
US20170090882A1 (en) Program development support system and program development support software
CN115004150A (en) Method and apparatus for predicting and scheduling duplicate instructions in software pipelining loops
US9891955B2 (en) Heterogenous multicore processor configuration framework
Bapty et al. Uniform execution environment for dynamic reconfiguration
US10970056B2 (en) Compiler and information processing method for deleting spill instructions
CN111796806B (en) Method and device for generating object, electronic equipment and readable storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant