CN117076095B - 一种基于dag的任务调度方法、***、电子设备及存储介质 - Google Patents
一种基于dag的任务调度方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117076095B CN117076095B CN202311336418.5A CN202311336418A CN117076095B CN 117076095 B CN117076095 B CN 117076095B CN 202311336418 A CN202311336418 A CN 202311336418A CN 117076095 B CN117076095 B CN 117076095B
- Authority
- CN
- China
- Prior art keywords
- execution
- command
- dag
- commands
- task scheduling
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000013515 script Methods 0.000 claims abstract description 107
- 238000012545 processing Methods 0.000 claims description 38
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 15
- 238000012216 screening Methods 0.000 claims description 5
- 238000000206 photolithography Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 125000002015 acyclic group Chemical group 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本发明涉及光刻技术领域,特别涉及一种基于DAG的任务调度方法、***、电子设备及存储介质。所述基于DAG的任务调度方法包括以下步骤:步骤S1:提供初始脚本,收集初始脚本里的所有执行命令的输入对象和输出对象;步骤S2:找出并删除初始脚本里的虚拟命令,生成有向无环图;步骤S3:基于有向无环图得到多个有先后依赖关系的执行阶段;步骤S4:对所述执行阶段的脚本进行运算,并清除内存。本发明所提供的基于DAG的任务调度方法通过并行就是无依赖关系的命令,清除脚本的虚拟命令及已执行完成的命令,进而达到了释放内存,提高运行速率的目的。
Description
技术领域
本发明涉及光刻技术领域,特别涉及一种基于DAG的任务调度方法、***、电子设备及存储介质。
背景技术
随着芯片技术的发展,芯片的尺寸不断缩小,小尺寸的芯片在硅片上的曝光图形会产生畸形,因而,在制造前需要对其进行OPC(光学邻近矫正)算法优化。
而尺寸越小的芯片进行OPC算法优化时的需要的计算量也越大,也即其算法脚本内的命令越多,现有的运行脚本的方法都是串行计算,即从脚本开头到脚本结尾顺次执行每一条命令。
然而,这种运行方式存在有一定的缺陷,脚本内存在有多种类型的命令指令,其中不乏有一些无用的虚拟指令,不加以分辨地串行执行所有命令,需要花费较长的运算时间,对机器资源也是一种浪费。
发明内容
为了解决现有脚本运行速率低下的问题,本发明提供一种基于DAG的任务调度方法、***、电子设备及存储介质。
本发明为解决上述技术问题,提供如下的技术方案:一种基于DAG的任务调度方法,其包括以下步骤:
步骤S1:提供初始脚本,收集初始脚本里的所有执行命令的输入对象和输出对象;
步骤S2:找出并删除初始脚本里的虚拟命令,生成有向无环图;
步骤S3:基于有向无环图得到多个有先后依赖关系的执行阶段;
步骤S4:对所述执行阶段的脚本进行运算,同时删除已执行完成且后续无需调用的输入对象。
优选地,步骤S2包括以下步骤:
步骤S21:对有向无环图进行遍历;
步骤S22:将不能输出预设结果的命令标记为虚拟命令;
步骤S23:删除虚拟命令。
优选地,删除已执行完成且后续无需调用的输入对象包括以下步骤:
步骤S41:标记已执行的命令,在有向无环图中将已执行的命令所对应的边标记为0;
步骤S43:筛选出执行命令全部被标记的输入对象,所述输入对象对应的节点所延伸的边均被标记为0;
步骤S43:删除执行命令全部被标记的输入对象。
优选地,每个执行阶段内包括至少一个执行命令。
优选地,同一执行阶段内的所有执行命令之间并无依赖关系。
优选地,不同执行阶段的脚本为串行运算,同一个执行阶段的脚本为并行运算。
本发明为解决上述技术问题,提供又一技术方案如下:一种基于DAG的任务调度***,其包括有收集模块、处理模块和执行模块;所述收集模块与所述处理模块信号连接,所述处理模块与所述执行模块信号连接;
所述收集模块用于收集初始脚本内所有命令的输入对象和输出对象;
所述处理模块对收集模块的数据进行处理,得到多个有先后依赖关系的执行阶段;
所述执行模块对所述执行阶段的脚本运行计算。
优选地,所述执行模块可对单个所述执行阶段内的命令进行多线程执行和/或分布式执行。
本发明为解决上述技术问题,提供又一技术方案如下:一种电子设备,其包括处理器及存储有计算机程序指令的存储器,所述处理器执行所述计算机程序指令时实现如上任一项所述的基于DAG的任务调度方法。
本发明为解决上述技术问题,提供又一技术方案如下:一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的基于DAG的任务调度方法。
与现有技术相比,本发明所提供的一种基于DAG的任务调度方法、***、电子设备及存储介质,具有如下的有益效果:
本发明实施例提供的一种基于DAG的任务调度方法,其包括以下步骤:
步骤S1:提供初始脚本,收集初始脚本里的所有执行命令的输入对象和输出对象;
步骤S2:找出并删除初始脚本里的虚拟命令,生成有向无环图;
步骤S3:基于有向无环图得到多个有先后依赖关系的执行阶段;
步骤S4:对所述执行阶段的脚本进行运算,并清除内存。
可以理解地,本实施例提供的基于DAG的任务调度方法,其核心内容为利用DAG原理打乱并重构初始脚本里的命令执行顺序,将没有依赖关系的命令重新整合并行执行计算,这样的设计,相比初始脚本从头到尾依次执行脚本里的每一条命令的做法,可以缩减脚本的运算时间,提高脚本的运行效率。
进一步的,本任务调度方法在开始执行命令前把脚本里不能输出预期目标的虚拟命令提前删除掉,避免后期运算时花费多余的时间和资源去执行无效的命令,造成时间、资源的浪费,拉低运行效率。
除此之外,本任务调度方法还可以实现及时清除内存,在执行命令的同时,删除掉后续命令不再需要的命令对象,释放内存,提升运行效率。
通过上述设计,可以降低设备的内存占用量和计算量,极大提升了脚本的运行效率。
本发明实施例提供的一种基于DAG的任务调度方法,步骤S2包括以下步骤:
步骤S21:对有向无环图进行遍历;
步骤S22:将不能输出预设结果的命令标记为虚拟命令;
步骤S23:删除虚拟命令。
可以理解的是,当有向无环图的某一个节点命令经过遍历后可以走到最终输出节点,则表示该命令为必须执行的命令,若不执行会影响版图的输出结果。
反之,若有向无环图的某一命令经过遍历后最终不能走到最终输出节点,则表明该命令的执行与否对版图的输出结果并无影响,属于虚拟命令,因此,为了节约资源,找到虚拟命令后将虚拟命令删除掉以降低内存占用量;虚拟命令删除后,在后续进行脚本运算时,将不再执行虚拟命令,如此减少了时间、资源的浪费,提高了整体运行速率。
通过此设计,可以精准找出对运算结果不产生影响的虚拟命令,删除虚拟命令既释放了内存,又避免后续浪费时间资源运行无用的虚拟命令,进而提升了初始脚本的整体运行效率。
本发明实施例提供的一种基于DAG的任务调度方法,清除内存包括以下步骤:
步骤S41:标记已执行的命令;
步骤S43:筛选出执行命令全部被标记的输入对象;
步骤S43:删除执行命令全部被标记的输入对象。
可以理解的是,本任务调度方法在进行并行计算的同时,会对已经执行过的命令进行标记,当某一输入对象对应的命令均已被标记,则说明与该输入对象关联的命令已全部执行完成,也即此输入对象在后续将不会被调用到,此时可以清除该输入对象及相关指令。
通过清除内存中已执行完全、后续不再需要的输入对象们,释放内存,减轻处理器的内存占用率,使得处理器运行更加流畅、提高运行速率。
本发明实施例提供的一种基于DAG的任务调度方法,每个执行阶段内包括至少一个执行命令,同一执行阶段内的所有执行命令之间并无依赖关系。
可以理解地,对于有着成千上万条命令的脚本来说,如果顺次执行每一条的话,需要运行计算成千上万次,总体的运行速度将会极慢;但是实际上对于一个脚本来说,并非每条命令之间都具备有前后的依赖关系,应理解,已经拥有执行条件,且没有依赖关系的两个命令是可以并行执行的。
基于每个命令之间的前后依赖关系,将初始脚本内的命令整合成多个执行阶段,把彼此之间没有依赖关系、满足执行条件的命令归为同一个执行阶段并行计算。
具体的,通过上述方法划分出的执行阶段内包括有一个或多个命令,执行阶段的划分使得脚本命令运行计算的方式从单个命令的顺次执行,改为执行阶段的顺次执行,而同一执行阶段内通常包括多个命令,也即运行计算一个执行阶段相当于同步计算了多个命令,大大提高了整体的运行速率。
本发明实施例还提供一种基于DAG的任务调度方法,其不同执行阶段的脚本为串行运算,同一个执行阶段的脚本为并行运算。
可以理解地,本方法根据初始脚本的命令相互之间的依赖关系,将没有前后依赖的多个命令归为同一个执行阶段,有依赖关系的命令则分配到不同的执行阶段以形成执行阶段之间的依赖关系。
对多个执行阶段的脚本按照其依赖关系依次串行运算,而对同一执行阶段的多个命令实行并行运算。通过此种运算方式,使得整体脚本的运算效率得以提高。
本发明实施例还提供一种基于DAG的任务调度***,其包括有收集模块、处理模块和执行模块;收集模块与处理模块信号连接,处理模块与执行模块信号连接;
收集模块用于收集初始脚本内所有命令的输入对象和输出对象;
处理模块对收集模块的数据进行处理,得到多个有先后依赖关系的执行阶段;
执行模块对执行阶段的脚本运行计算。
需要说明的是,本实施例所提供的基于DAG的任务调度***,首先通过收集模块收集初始脚本的命令信息,并将收集到的信息发送给处理模块,处理模块对脚本命令进行处理并将其划分为多个执行阶段,最后通过执行模块对执行阶段的脚本运行计算;应理解,执行模块对多个执行阶段进行的是串行计算,对单个执行阶段内的多个命令执行的是并行计算。
通过上述设计,可以大大提高初始脚本的运行速率。
本发明实施例提供的基于DAG的任务调度***,执行模块可对单个执行阶段内的命令进行多线程执行和/或分布式执行。
可以理解地,根据实际处理设备的不同,对单个执行阶段内多个命令的并行执行可以是多线程执行,即使用一个服务同时运行多个命令;也可以是分布式执行,即使用多个处理器,每个处理器运行该执行阶段中的一个或多个命令。
通过此设计,可以同步执行多条命令,降低了计算时间、提高了整体的运行速率;同时,多线程执行和分布式执行的设计,使得本实施例所提供的基于DAG的任务调度***可以适用单处理器或多处理器的机器设备,具有更高的兼容性,进一步提高了产品的市场竞争力。
进一步的,本发明提供的一种基于DAG的任务调度***,具有与本发明提供的一种基于DAG的任务调度方法相同的有益效果,在此不再赘述。
本发明还提供的一种电子设备,包括处理器及存储有计算机程序指令的存储器,处理器执行计算机程序指令时实现如上任一项的基于DAG的任务调度方法。所述电子设备具有与本发明提供的一种基于DAG的任务调度方法相同的有益效果,在此不再赘述。
9.本发明还提供的一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任一项所述的基于DAG的任务调度方法。所述存储介质具有与本发明提供的一种基于DAG的任务调度方法相同的有益效果,在此不再赘述。
附图说明
图1是本发明第一实施例提供的基于DAG的任务调度方法的总体流程图。
图2是第一实施例提供的基于DAG的任务调度方法的流程图。
图3是第一实施例提供的基于DAG的任务调度方法的步骤S2的细节流程图。
图4是第一实施例提供的基于DAG的任务调度方法的步骤S4的细节流程图。
图5是第一实施例提供的基于DAG的任务调度方法的有向无环图1。
图6是第一实施例提供的基于DAG的任务调度方法的有向无环图1A。
图7是第二实施例提供的基于DAG的任务调度***的结构框图。
图8是第三实施例提供的电子设备的结构框图。
附图标识说明
1、有向无环图;10、R节点;20、C节点;30、W节点;40、D节点;
100、基于DAG的任务调度***;101、收集模块;102、处理模块;103、执行模块;
200、电子设备;201、处理器;202、存储器。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明所提供的实施例中,应理解,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必需的。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明的附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方案中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行的执行,它们有时也可以按相反的顺序执行,在此基于涉及的功能而确定。需要特别注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
请参阅图1,本发明第一实施例提供一种基于DAG的任务调度方法,所述基于DAG的任务调度方法包括以下步骤:
步骤S1:提供初始脚本,收集初始脚本里的所有执行命令的输入对象和输出对象;
步骤S2:找出并删除初始脚本里的虚拟命令,生成有向无环图;
步骤S3:基于有向无环图得到多个有先后依赖关系的执行阶段;
步骤S4:对所述执行阶段的脚本进行运算,并清除内存。
可以理解的是,本实施例所提供的基于DAG的任务调度方法,主要用于提高对芯片进行OPC优化时算法的运行效率,其核心在于首先从初始脚本里抽取出一个有向无环图,基于抽取出的有向无环图理清各命令间的前后依赖关系。本实施例所提供的是一种基于DAG的任务调度方法通过理清各命令之间的依赖关系,筛选出可以并行执行、彼此间无依赖关系的命令,使得在初始脚本中处于后置位,但在前期就已经满足运行条件的命令得以提前运行,而不必等到前置位的命令完全执行完后才能执行后置位的命令,进而达到缩减脚本运行时间的目的。
需要说明的是,请一并参阅图5,在初始脚本抽取出的有向无环图中包括有两个对象:节点和边,图上的每个节点代表一个命令对象,每一条边表示一个命令的具体内容。具体的,一个节点到另一个节点的指向是单向的,其在图上表现为单向的箭头;有向无环图的节点对象可以为输入对象或输出对象,应理解,在有向无环图中某些节点的对象可以同时充当输入对象和输出对象,即一个节点相对于其前一个节点命令而言为输出对象,但相对于后一个节点命令而言则为输入对象。
特别地,在初始脚本内包括有成千上万条命令,但不是每条命令都可以走到最终的输出节点,本实施例将不能走到最终输出节点的命令,即不能输出预期目标对象的命令定义为虚拟命令,虚拟命令对于初始脚本运行的最终结果并不做任何贡献,也即其执行与否都不会影响脚本的输出结果。因此,为了避免浪费机器资源对无用的虚拟命令进行运算,本实施例所提供的基于DAG的任务调度方法在运行计算初始脚本前,会提前筛选出初始脚本内的虚拟命令,将其删除,使得实际运算的脚本内没有虚拟命令,也即无需浪费时间、资源去执行无用的虚拟命令,进而降低了机器的资源占用率和提升了脚本的整体运行效率。
进一步的,请一并参阅图2,步骤S1和步骤S2之间还包括有步骤S10:生成初始有向无环图。
在一种可能的实施方式中,在收集到初始脚本执行命令的输入对象和输出对象后,基于初始脚本的内容寻找并删除虚拟命令,之后再将已删除了所有虚拟命令的脚本转化为有向无环图,以进行下一步操作。
在另一种可行的实施方式中,在收集到初始脚本执行命令的输入对象和输出对象后,基于初始脚本成初始有向无环图,再通过初始有向无环图去寻找虚拟命令,即图中不能走到最终节点的无用节点和边,将这些无用节点和边删除,已得到更新的、没有虚拟命令的有向无环图,再以此进行下一步操作。
可以理解地,不论是先删除虚拟命令再生成有向无环图,还是先生成有向无环图再删除虚拟命令,都可以实现得到初始脚本内可无依赖关系、可并行执行的命令的目的。
进一步需要说明的是,在一种可选的实施方式中,有向无环图内的节点大致可以分为两类:普通型节点和写出型节点;有向无环图的边,即命令也可以分为两种类型,普通命令和读入、写出命令。具体的,写出型节点即通过写出命令产生的节点,在图中作为最终结果输出的节点,代表该节点被写入了输出文件,普通型节点是通过读入命令和普通命令得到的节点,在图中表现为需要被其他命令调用的节点。读入命令和写出命令的节点与边的结构比较特殊,读入命令A指的是普通节点A指向自己的边,写出命令A指的是指向写出型节点A的边。
请继续参阅图5,图5表示的是基于初始脚本抽取出的有向无环图1,其中W节点30为写出型节点,R节点10、C节点20和D节点40为普通型节点;指向W节点30的箭头表示写出命令,指向C节点20的箭头表示普通命令。特别地,写入命令在图中表现为指向R节点10自身的箭头(图中未示出);另外,指向D节点40的箭头表示虚拟命令。
进一步的,请一并参阅图3,步骤S2包括以下步骤:
步骤S21:对有向无环图进行遍历;
步骤S22:将不能输出预设结果的命令标记为虚拟命令;
步骤S23:删除虚拟命令。
需要说明的是,步骤S21中对有向无环图1进行遍历的具体方式可以是深度优先遍历或广度优先遍历或其他的图遍历方法,只要能对有向无环图1进行全面遍历,找出虚拟命令即可,具体的遍历方式在此不做过多限制。
在一种优选的实施方式中,对有向无环图1进行深度优先遍历,即首先从有向无环图的某个R节点10出发,先访问R节点10,然后从与其邻接节点中寻找未被访问过的C节点20,以该C节点20为新的出发节点继续深度优先遍历图,如果邻接节点未被访问过则继续向前遍历,反之则回退到前一个节点再继续向前访问未被访问过的邻接节点,若回退一步仍不能前进,则继续回退至可以前进的位置为止,重复此过程,直到图中所有节点都被访问过为止。
具体的,如果有向无环图上的一个节点能沿着图上的边最终能抵达写出型节点,即W节点30,也即图5中所示的W1、W2、W3、W4等节点,说明它是必须执行的,将其标记为1,否则就标记为0,比如图中的D节点40,即D1节点,其不能继续向前走到W节点30,表示其为虚拟命令,可以不被执行。当有向无环图1经过深度优先遍历完成后,将图上的被标记为0的节点和指向该种类型节点的边,也即D节点40和指向D节点40的箭头删除掉,具体展现于图5上则是删除图中的D1节点和指向D1节点的箭头,进而可得到一个没有虚拟命令的有向无环图。
进一步地,请一并参阅图4,清除内存包括以下步骤:
步骤S41:标记已执行的命令;
步骤S43:筛选出执行命令全部被标记的输入对象;
步骤S43:删除执行命令全部被标记的输入对象。
需要说明的是,对于已经执行完成且后续不再需要调用到的输入对象,其存储在处理器上不仅不能不对后续的运行结果产生帮助,而且还占用内存资源,进而拉低运行速率。因此,本实施例所提供的基于DAG的任务调度方法在计算并行命令的同时会删除已经执行完成且后续不再需要调用到的输入对象。
请继续参阅图5,由图5可看出,节点R1和节点R2均指向节点C1和节点C3,那么当我们执行完节点C1对应的命令后,就可以将节点R1指向节点C1的边和节点R2指向节点C1的边标记为0,但此时还不能在内存里删除节点R1和节点R2,因为生成节点C3时还需要用到节点R1和节点R2。当节点C3也被执行结束后,将节点R1和节点R2指向节点C3的边也标记为0,此时所有从节点R1和节点R2出去的边均被标记为0,也即证明没有其他命令需要用到它们了,所以此时可以在内存里清除掉节点R1和节点R2,也即删除节点R1和节点R2的条件为:节点C1和节点C3均被执行。
进一步地,每个执行阶段内包括至少一个执行命令,同一执行阶段内的所有执行命令之间并无依赖关系。
具体的,不同执行阶段的脚本为串行运算,同一个执行阶段的脚本为并行运算。
可以理解地,基于有向无环图可以找到多条任务线,定义图中从起始节点沿箭头方向走到终止节点为一条任务线。具体的,每条任务线上包括有两个以上的节点,也即运行一条任务线需要执行至少两个命令。将任务线以节点为界限划分成多个执行阶段。
例如,第一条任务线有2个节点,即其第一个节点为第一执行阶段,第二节点为第二执行阶段;同理,第一条任务线有3个节点,即其第一个节点为第一执行阶段,第二节点为第二执行阶段,第三节点则为第三执行阶段。
在实际运行过程中,每一条任务线相同水平的执行阶段可以并行执行,即第一条任务线的第一阶段和第二条任务线的第一阶段,两者实质上并未依赖关系,因此可以并行执行。而同一条任务线的不同执行阶段之间具备依赖关系,因此采用串行计算。
具体的,请一并参阅图6,图6为以删除虚拟命令的有向无环图1A,有向无环图1A各执行阶段的具体运行过程如下所示:
第一执行阶段:执行两个命令,通过写入命令产生节点R1和节点R2。
第二执行阶段:执行两个命令,由节点R1和节点R2产生节点C1和节点C3,而后在内存中清除节点R1和节点R2。
第三执行阶段:执行两个命令,由节点C1和节点C3产生节点C2和节点C4,而后在内存中清除节点C1。
第四执行阶段:执行四个命令,由节点C2、节点C3和节点C4产生节点W1、节点W2、节点W3和节点W4,而后在内存中清除节点C2、节点C3和节点C4。
需要说明的是,第二执行阶段执行的两个命令分别为产生节点C1和节点C3,且这两个命令可以并行执行,需要注意的是,“在内存中清除节点R1和节点R2”这一步骤,需要在“产生节点C1和节点C3”这两个命令执行结束之后才可进行,应理解,清除节点在本实施例中不将其当成命令。
进一步地,请参阅图7,本发明的第二实施例还提供了一种基于DAG的任务调度***100,其包括有收集模块101、处理模块102和执行模块103;收集模块101与处理模块102信号连接,处理模块102与执行模块103信号连接;
收集模块101用于收集初始脚本内所有命令的输入对象和输出对象;
处理模块102对收集模块101的数据进行处理,得到多个有先后依赖关系的执行阶段;
执行模块103对执行阶段的脚本运行计算。
需要说明的是,收集模块101通过用户输入、网络获取、信号接收或扫描录入等方式收集初始脚本内的数据信息,所述数据信息包括但不限于初始脚本的全部命令信息,即输入对象、输出对象、命令内容或其他脚本运行过程中需要用到的数据信息。
进一步的,收集模块101与处理模块102信号连接,收集模块101将其收集到的脚本数据发送给处理模块102,处理模块102对接收到的数据信息进行处理。
具体的,处理模块102对接收到的数据信息进行处理操作包括有:划分命令类型,也即划分出必须执行的命令和虚拟命令;删除虚拟命令;根据各命令之间的前后依赖关系,将筛选出来的必须执行的命令整合成多个可并行执行的执行阶段。
进一步地,执行模块103可对单个执行阶段内的命令进行多线程执行和/或分布式执行。
需要说明的是,根据处理设备上配置的处理器数量多少,可以自行选择多线程或分布式的执行方式。当处理设备只设有一个处理器时,可以对执行阶段内的多个可并行运算的命令采用多线程模式进行计算处理,即在一个处理器内同时运行多个命令;当处理设备上设有两个或两个以上的处理器时,则可以优选采用分布式执行的方式进行运算,即同时在多台处理器上运行,具体的,可以根据需要执行的命令数量、处理器的数量以及处理器的实际运算能力分配每个处理器需要执行的命令数量。
通过并行执行的多条命令的方式,可以降低整体运算的时间,提高运行数量;本实施例提供的多种并行计算方式使得所述基于DAG的任务调度***100可应用在多种机器设备上,使其具有更高的兼容性,进一步提高了产品的市场竞争力。
需要说明的是,本申请中基于DAG的任务调度***100实施例与前述基于DAG的任务调度方法实施例相互对应,基于DAG的任务调度***100实施例中具体的原理及其产生的有益效果可以参见前述基于DAG的任务调度方法实施例中的内容,此处不再赘述。
在本实施例提供的几个实施例中,各模块互相之间的耦合可以是电性,机械或其他形式的耦合。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
进一步地,请一并参阅图8,本发明的第三实施例还提供了一种电子设备200,包括处理器201及存储有计算机程序指令的存储器202,处理器201执行计算机程序指令时实现如上任一项的基于DAG的任务调度方法。
具体的,该电子设备200可以是智能手机、平板电脑、计算机或者便携式计算机等设备。
可以理解地,处理器201可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器201利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行储存在存储器202内的指令、程序、代码集或指令集,以及调用存储在存储器202内的数据,执行电子设备200的各种功能和处理数据。
可选地,处理器201可以采用数字信号处理、现场可编程门阵列、可编辑逻辑阵列中的至少一种硬件形式来实现。处理器201可集成中央处理器、图像处理器和调制解码器等中的一种或几种的组合。其中,调制解码器也可以不集成到处理器中,单独通过一块通信芯片进行实现。
存储器202可以包括随机存储器,也可以包括只读存储器,存储器202可用于储存指令、程序、代码、代码集或指令集。存储器202可包括存储程序区和存储数据区,其中存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区还可以存储终端在使用中所创建的数据等。
进一步地,本发明的第四实施例还提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任一项所述的基于DAG的任务调度方法。
在具体实施中,所述存储介质可以是诸如闪存、随机存取存储器、只读存储器、硬盘、光盘、磁盘等。可选地,计算机可读储存介质包括非易失性计算机可读介质。存储介质具有执行上述基于DAG的任务调度方法中的任意方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
在一种可能的实施方式中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在所述存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中描述的基于DAG的任务调度方法。
与现有技术相比,本发明所提供的一种基于DAG的任务调度方法、***、电子设备及存储介质,具有如下的有益效果:
本发明实施例提供的一种基于DAG的任务调度方法,其包括以下步骤:
步骤S1:提供初始脚本,收集初始脚本里的所有执行命令的输入对象和输出对象;
步骤S2:找出并删除初始脚本里的虚拟命令,生成有向无环图;
步骤S3:基于有向无环图得到多个有先后依赖关系的执行阶段;
步骤S4:对所述执行阶段的脚本进行运算,并清除内存。
可以理解地,本实施例提供的基于DAG的任务调度方法,其核心内容为利用DAG原理打乱并重构初始脚本里的命令执行顺序,将没有依赖关系的命令重新整合并行执行计算,这样的设计,相比初始脚本从头到尾依次执行脚本里的每一条命令的做法,可以缩减脚本的运算时间,提高脚本的运行效率。
进一步的,本任务调度方法在开始执行命令前把脚本里不能输出预期目标的虚拟命令提前删除掉,避免后期运算时花费多余的时间和资源去执行无效的命令,造成时间、资源的浪费,拉低运行效率。
除此之外,本任务调度方法还可以实现及时清除内存,在执行命令的同时,删除掉后续命令不再需要的命令对象,释放内存,提升运行效率。
通过上述设计,可以降低设备的内存占用量和计算量,极大提升了脚本的运行效率。
本发明实施例提供的一种基于DAG的任务调度方法,步骤S2包括以下步骤:
步骤S21:对有向无环图进行遍历;
步骤S22:将不能输出预设结果的命令标记为虚拟命令;
步骤S23:删除虚拟命令。
可以理解的是,当有向无环图的某一个节点命令经过遍历后可以走到最终输出节点,则表示该命令为必须执行的命令,若不执行会影响版图的输出结果。
反之,若有向无环图的某一命令经过遍历后最终不能走到最终输出节点,则表明该命令的执行与否对版图的输出结果并无影响,属于虚拟命令,因此,为了节约资源,找到虚拟命令后将虚拟命令删除掉以降低内存占用量;虚拟命令删除后,在后续进行脚本运算时,将不再执行虚拟命令,如此减少了时间、资源的浪费,提高了整体运行速率。
通过此设计,可以精准找出对运算结果不产生影响的虚拟命令,删除虚拟命令既释放了内存,又避免后续浪费时间资源运行无用的虚拟命令,进而提升了初始脚本的整体运行效率。
本发明实施例提供的一种基于DAG的任务调度方法,清除内存包括以下步骤:
步骤S41:标记已执行的命令;
步骤S43:筛选出执行命令全部被标记的输入对象;
步骤S43:删除执行命令全部被标记的输入对象。
可以理解的是,本任务调度方法在进行并行计算的同时,会对已经执行过的命令进行标记,当某一输入对象对应的命令均已被标记,则说明与该输入对象关联的命令已全部执行完成,也即此输入对象在后续将不会被调用到,此时可以清除该输入对象及相关指令。
通过清除内存中已执行完全、后续不再需要的输入对象们,释放内存,减轻处理器的内存占用率,使得处理器运行更加流畅、提高运行速率。
本发明实施例提供的一种基于DAG的任务调度方法,每个执行阶段内包括至少一个执行命令,同一执行阶段内的所有执行命令之间并无依赖关系。
可以理解地,对于有着成千上万条命令的脚本来说,如果顺次执行每一条的话,需要运行计算成千上万次,总体的运行速度将会极慢;但是实际上对于一个脚本来说,并非每条命令之间都具备有前后的依赖关系,应理解,已经拥有执行条件,且没有依赖关系的两个命令是可以并行执行的。
基于每个命令之间的前后依赖关系,将初始脚本内的命令整合成多个执行阶段,把彼此之间没有依赖关系、满足执行条件的命令归为同一个执行阶段并行计算。
具体的,通过上述方法划分出的执行阶段内包括有一个或多个命令,执行阶段的划分使得脚本命令运行计算的方式从单个命令的顺次执行,改为执行阶段的顺次执行,而同一执行阶段内通常包括多个命令,也即运行计算一个执行阶段相当于同步计算了多个命令,大大提高了整体的运行速率。
本发明实施例还提供一种基于DAG的任务调度方法,其不同执行阶段的脚本为串行运算,同一个执行阶段的脚本为并行运算。
可以理解地,本方法根据初始脚本的命令相互之间的依赖关系,将没有前后依赖的多个命令归为同一个执行阶段,有依赖关系的命令则分配到不同的执行阶段以形成执行阶段之间的依赖关系。
对多个执行阶段的脚本按照其依赖关系依次串行运算,而对同一执行阶段的多个命令实行并行运算。通过此种运算方式,使得整体脚本的运算效率得以提高。
本发明实施例还提供一种基于DAG的任务调度***,其包括有收集模块、处理模块和执行模块;收集模块与处理模块信号连接,处理模块与执行模块信号连接;
收集模块用于收集初始脚本内所有命令的输入对象和输出对象;
处理模块对收集模块的数据进行处理,得到多个有先后依赖关系的执行阶段;
执行模块对执行阶段的脚本运行计算。
需要说明的是,本实施例所提供的基于DAG的任务调度***,首先通过收集模块收集初始脚本的命令信息,并将收集到的信息发送给处理模块,处理模块对脚本命令进行处理并将其划分为多个执行阶段,最后通过执行模块对执行阶段的脚本运行计算;应理解,执行模块对多个执行阶段进行的是串行计算,对单个执行阶段内的多个命令执行的是并行计算。
通过上述设计,可以大大提高初始脚本的运行速率。
本发明实施例提供的基于DAG的任务调度***,执行模块可对单个执行阶段内的命令进行多线程执行和/或分布式执行。
可以理解地,根据实际处理设备的不同,对单个执行阶段内多个命令的并行执行可以是多线程执行,即使用一个服务同时运行多个命令;也可以是分布式执行,即使用多个处理器,每个处理器运行该执行阶段中的一个或多个命令。
通过此设计,可以同步执行多条命令,降低了计算时间、提高了整体的运行速率;同时,多线程执行和分布式执行的设计,使得本实施例所提供的基于DAG的任务调度***可以适用单处理器或多处理器的机器设备,具有更高的兼容性,进一步提高了产品的市场竞争力。
进一步的,本发明提供的一种基于DAG的任务调度***,具有与本发明提供的一种基于DAG的任务调度方法相同的有益效果,在此不再赘述。
本发明还提供的一种电子设备,包括处理器及存储有计算机程序指令的存储器,处理器执行计算机程序指令时实现如上任一项的基于DAG的任务调度方法。所述电子设备具有与本发明提供的一种基于DAG的任务调度方法相同的有益效果,在此不再赘述。
本发明还提供的一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任一项所述的基于DAG的任务调度方法。所述存储介质具有与本发明提供的一种基于DAG的任务调度方法相同的有益效果,在此不再赘述。
以上对本发明实施例公开的一种基于DAG的任务调度方法、***、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制,凡在本发明的原则之内所做的任何修改,等同替换和改进等均应包含本发明的保护范围之内。
Claims (7)
1.一种基于DAG的任务调度方法,其特征在于,包括以下步骤:
步骤S1:提供初始脚本,收集初始脚本里的所有执行命令的输入对象和输出对象;
步骤S2:找出并删除初始脚本里的虚拟命令,生成有向无环图;
步骤S3:基于有向无环图得到多个有先后依赖关系的执行阶段,同一执行阶段内的所有执行命令之间并无依赖关系,不同执行阶段的脚本为串行运算,同一个执行阶段的脚本为并行运算;
步骤S4:对所述执行阶段的脚本进行运算,同时删除已执行完成且后续无需调用的输入对象;
删除已执行完成且后续无需调用的输入对象包括以下步骤:
标记已执行的命令,在有向无环图中将已执行的命令所对应的边标记为0;筛选出执行命令全部被标记的输入对象,所述输入对象对应的节点所延伸的边均被标记为0;删除执行命令全部被标记的输入对象。
2.如权利要求1所述的基于DAG的任务调度方法,其特征在于,步骤S2包括以下步骤:
步骤S21:对有向无环图进行遍历;
步骤S22:将不能输出预设结果的命令标记为虚拟命令;
步骤S23:删除虚拟命令。
3.如权利要求1所述的基于DAG的任务调度方法,其特征在于:每个执行阶段内包括至少一个执行命令。
4.一种基于DAG的任务调度***,用于实现如权利要求1-3任一项所述的基于DAG的任务调度方法,其特征在于:包括有收集模块、处理模块和执行模块;所述收集模块与所述处理模块信号连接,所述处理模块与所述执行模块信号连接;
所述收集模块用于收集初始脚本内所有命令的输入对象和输出对象;所述处理模块对收集模块的数据进行处理,得到多个有先后依赖关系的执行阶段;
所述执行模块对所述执行阶段的脚本运行计算。
5.如权利要求4所述的基于DAG的任务调度***,其特征在于:所述执行模块可对单个所述执行阶段内的命令进行多线程执行和/或分布式执行。
6.一种电子设备,其特征在于,包括处理器及存储有计算机程序指令的存储器,所述处理器执行所述计算机程序指令时实现如权利要求1-3任一项所述的基于DAG的任务调度方法。
7.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-3任一项所述的基于DAG的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311336418.5A CN117076095B (zh) | 2023-10-16 | 2023-10-16 | 一种基于dag的任务调度方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311336418.5A CN117076095B (zh) | 2023-10-16 | 2023-10-16 | 一种基于dag的任务调度方法、***、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117076095A CN117076095A (zh) | 2023-11-17 |
CN117076095B true CN117076095B (zh) | 2024-02-09 |
Family
ID=88715660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311336418.5A Active CN117076095B (zh) | 2023-10-16 | 2023-10-16 | 一种基于dag的任务调度方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076095B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006081084A2 (en) * | 2005-01-31 | 2006-08-03 | Northrop Grumman Corporation | Remote component and connection architecture |
CN107315581A (zh) * | 2017-05-23 | 2017-11-03 | 努比亚技术有限公司 | 任务脚本生成装置及方法、任务调度***及方法 |
CN110018817A (zh) * | 2018-01-05 | 2019-07-16 | 中兴通讯股份有限公司 | 数据的分布式运行方法及装置、存储介质及处理器 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN112764907A (zh) * | 2021-01-26 | 2021-05-07 | 网易(杭州)网络有限公司 | 一种任务处理方法、装置、电子设备和存储介质 |
WO2021174945A1 (zh) * | 2020-10-21 | 2021-09-10 | 平安科技(深圳)有限公司 | 数据成本计算方法、***、计算机设备和存储介质 |
CN116775039A (zh) * | 2023-06-29 | 2023-09-19 | 东方晶源微电子科技(上海)有限公司 | 一种运算脚本的优化方法、***及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566823B2 (en) * | 2010-02-05 | 2013-10-22 | 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 |
-
2023
- 2023-10-16 CN CN202311336418.5A patent/CN117076095B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006081084A2 (en) * | 2005-01-31 | 2006-08-03 | Northrop Grumman Corporation | Remote component and connection architecture |
CN107315581A (zh) * | 2017-05-23 | 2017-11-03 | 努比亚技术有限公司 | 任务脚本生成装置及方法、任务调度***及方法 |
CN110018817A (zh) * | 2018-01-05 | 2019-07-16 | 中兴通讯股份有限公司 | 数据的分布式运行方法及装置、存储介质及处理器 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
WO2021174945A1 (zh) * | 2020-10-21 | 2021-09-10 | 平安科技(深圳)有限公司 | 数据成本计算方法、***、计算机设备和存储介质 |
CN112764907A (zh) * | 2021-01-26 | 2021-05-07 | 网易(杭州)网络有限公司 | 一种任务处理方法、装置、电子设备和存储介质 |
CN116775039A (zh) * | 2023-06-29 | 2023-09-19 | 东方晶源微电子科技(上海)有限公司 | 一种运算脚本的优化方法、***及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于数据依赖和触发器的简单子任务调度算法;孙伟东;马宗民;;辽宁大学学报(自然科学版)(第02期);全文 * |
基于有向无环图的时间―费用优化调度算法;王樱;李琳;王杰;;衡阳师范学院学报(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117076095A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058883B (zh) | 一种基于opu的cnn加速方法及*** | |
US20210089355A1 (en) | Memory Allocation Method and Apparatus for Neural Network | |
US9996394B2 (en) | Scheduling accelerator tasks on accelerators using graphs | |
US8473934B2 (en) | Method for mapping applications on a multiprocessor platform/system | |
US11132294B2 (en) | Real-time replicating garbage collection | |
US9152389B2 (en) | Trace generating unit, system, and program of the same | |
EP3816867A1 (en) | Data reading/writing method and system in 3d image processing, storage medium, and terminal | |
CN116483319A (zh) | 用于软件定义芯片的算子处理方法、装置、设备及介质 | |
CN110069284B (zh) | 一种基于opu指令集的编译方法及编译器 | |
US10599638B2 (en) | System and method for identifying maximal independent sets in parallel | |
CN114648105A (zh) | 多输出神经网络的切片方法、装置、芯片及存储介质 | |
JP3877002B2 (ja) | 情報処理システムおよび情報処理方法 | |
CN112667593B (zh) | 一种ETL流程执行hbase快速装载的方法与装置 | |
CN117076095B (zh) | 一种基于dag的任务调度方法、***、电子设备及存储介质 | |
CN116775039A (zh) | 一种运算脚本的优化方法、***及存储介质 | |
JP2002108958A (ja) | 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体 | |
EP4318211A1 (en) | Method for inspecting code under weak memory order architecture, and corresponding device | |
CN111538493A (zh) | 流式数据处理方法、***、存储介质及电子设备 | |
Bapty et al. | Uniform execution environment for dynamic reconfiguration | |
US10970056B2 (en) | Compiler and information processing method for deleting spill instructions | |
WO2023221626A1 (zh) | 一种内存分配的方法和装置 | |
CN114880273B (zh) | 用于粗粒度可重构架构的映射方法、装置、设备及介质 | |
CN111796806B (zh) | 生成对象的方法、装置、电子设备及可读存储介质 | |
CN115051980B (zh) | 一种HTCondor超算网格文件传输方法及*** | |
CN116501660A (zh) | 一种面向Spark的自动缓存方法及装置 |
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 |