CN112379998B - 一种基于任务融合和任务调度的切换时延优化方法 - Google Patents
一种基于任务融合和任务调度的切换时延优化方法 Download PDFInfo
- Publication number
- CN112379998B CN112379998B CN202011122080.XA CN202011122080A CN112379998B CN 112379998 B CN112379998 B CN 112379998B CN 202011122080 A CN202011122080 A CN 202011122080A CN 112379998 B CN112379998 B CN 112379998B
- Authority
- CN
- China
- Prior art keywords
- task
- fusion
- graph
- tasks
- 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
Images
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/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
- 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
- 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
Abstract
本发明提供了一种基于任务融合和任务调度的切换时延优化方法,所述方法首先分析应用主函数的调用关系,构建初始任务图,并测量初始任务图中每个任务的计算时间及整个应用的完成时间;利用拓扑排序获得任务的可执行顺序,根据可执行顺序对任务进行调度,为任务选择完成时间最短的设备;计算任务融合效率决定当前任务与前驱任务是否合并,并记录融合策略;根据融合策略获得重构任务图,计算出任务调度融合后的完成时间;对比进行任务调度融合前后的应用完成时间,决定是否保留融合操作,确定出最终任务图;根据最终任务图将任务部署到相应设备上执行。本发明结合了任务调度和任务融合两种方法的优点,有效减少了任务上下文切换时延。
Description
技术领域
本发明涉及多任务计算领域,更具体地,涉及一种基于任务融合和任务调度的切换时延优化方法。
背景技术
在移动边缘计算场景中,深度学习应用的执行通常需要多个执行设备进行协同执行。因此,边缘服务器及云服务器上通常部署着一个多任务多设备的系统。终端用户在需要执行计算量较大的任务时,可以选择将其迁移到该任务系统中。深度学习应用作为一种典型的计算密集型应用,终端在执行此类应用的过程中会选择将任务迁移到边缘服务器及云服务器组成的多任务系统。深度学习可以通过转换为计算图的方式(tensorflow)将整个计算任务划分为细粒度更小的子任务执行。然而,数据密集导致任务计算过程中需要频繁的从内存及缓存中进行数据搬运,多任务系统从计算一个任务切换到计算另外一个任务的过程中,会产生较大的上下文切换时延。任务融合是指将两个任务融合成为一个任务。通过将两个计算任务的函数代码合并为一个函数,通过编译器自动优化可复用变量及内存使用,将两个计算任务编译成为一个计算任务。目前的技术一般通过将任务分配给不同的处理机进行处理(即任务调度),利用处理机的空闲时间,提高科任务执行的并行性,缩短任务的完成时间。
2017年8月4日公布的中国专利CN107015856A公开了一种云环境下科学工作流中的任务调度方案生成方法及装置,该方法包括如下步骤,步骤1,获取所有待被调度的任务;步骤2,通过带权值的有向无环图描述待被调度的任务;步骤3,在所述有向无环图中,自开始节点向结束节点遍历,获得所有路径;步骤4,计算各路径的时间消耗,根据所述时间消耗由大到小的顺序将所有路径降序排序、确定路径的优先级;步骤5,根据路径的优先级顺序生成任务调度方案;该发明通过任务分配的方法,利用处理机的空闲时间,提高处理机利用率,缩短了任务完成的总时间,没有针对任务切换时延提出解决方法。
发明内容
本发明为克服上述现有技术所述的任务上下文切换时延较大的缺陷,提供一种基于任务融合和任务调度的切换时延优化方法。
本发明的技术方案如下:
本发明提供一种基于任务融合和任务调度的切换时延优化方法,所述方法包括以下步骤:
S1:分析应用主函数的调用关系,构建初始任务图G(V,E),其中V表示存在依赖关系的任务节点集合,E代表边集合,边集合中的每条边代表任务之间的依赖性;
S3:获得任务的可执行顺序N;
S4:对任务进行调度:根据可执行顺序N,从第一任务开始遍历,为每个任务在M中选择完成时间最短的设备作为任务的执行设备,并将所述执行设备信息记录记为xj=1;
S5:对任务进行融合:合并当前任务与其前驱任务,计算任务的融合效益Qi,根据融合效益Qi决定是否融合;其中,前驱任务为当前任务的上个任务;
若Qi<0,当前任务与其前驱任务不融合;
若Qi≥0,当前任务与其前驱任务融合;
S6:若S5中当前任务与前驱任务进行融合,融合策略记为zi=1,则将融合后的任务作为新任务执行S4;若S5中当前任务与前驱任务不进行融合,融合策记为略zi=0,则撤销融合操作;直到遍历完所有任务;
S7:所有任务遍历完,根据融合策略zi获得重构任务图;根据重构任务图计算任务融合调度后的应用完成时间T′;
S8:对比任务融合调度前后的应用完成时间T和T′;
若T′>T,则舍弃记录的执行设备信息,撤销所有的融合操作和重构任务图,将初始任务图作为最终任务图;
若T′<T,用S7中的重构任务图更新初始任务图,作为最终任务图;
S9:将最终任务图保存在应用配置文件当中,根据配置文件对代码进行编译优化,并将任务根据最终任务图部署到相应设备上执行。
优选地,所述时钟周期Wi通过clock_gettime函数获得。
优选地,所述ci具体数值由以下方法求出:
利用一个线程轮流执行任务i和任务i的前驱任务,得到执行完成时间ti1,利用两个线程分别执行任务i和任务i的前驱任务,得到执行完成时间ti2,则:ci=ti1-ti2。
优选地,所述S3中的可执行顺序N由拓扑排序获得。
优选地,所述S5中的融合效益Qi由下面公式求出:Qi=α(H+ci)-(1-α)Γ,其中α为权重因子,H为任务融合后任务i的计算时间减少量,Γ为任务融合产生的额外任务的计算时间。
优选地,所述S7中的重构任务图包括可执行顺序N和任务执行设备信息xj。
优选地,所述S7中的T′有以下限制条件:
minT′
s.t.∑xj=1
zi∈{0,1}
其中,∑xj=1表示一个任务只能分配到一个执行设备上执行。
与现有技术相比,本发明技术方案的有益效果是:
本发明通过任务调度将任务分配到计算时间最短的设备上执行,减少任务计算时间;通过寻找可融合任务进行任务融合,减少任务上下文切换时间;本发明结合了任务调度和任务融合两种方法的优点,有效减少了任务上下文切换时延。
附图说明
图1为实施例1所述的一种基于任务融合和任务调度的切换时延优化方法的流程图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
本实施例提供一种基于任务融合和任务调度的切换时延优化方法,如图1所示,所述方法包括以下步骤:
S1:分析应用主函数的调用关系,构建初始任务图G(V,E),其中V表示存在依赖关系的任务节点集合,E代表边集合,边集合中的每条边代表任务之间的依赖性;
S3:获得任务的可执行顺序N;
S4:对任务进行调度:根据可执行顺序N,从第一任务开始遍历,为每个任务在M中选择完成时间最短的设备作为任务的执行设备,并记录所述执行设备信息xj=1;
S5:对任务进行融合:合并当前任务与其前驱任务,计算任务的融合效益Qi,根据融合效益Qi决定是否融合;其中,前驱任务为当前任务的上个任务;
若Qi<0,当前任务与其前驱任务不融合;
若Qi≥0,当前任务与其前驱任务融合;
S6:若S5中当前任务与前驱任务进行融合,融合策略记为zi=1,则将融合后的任务作为新任务执行S4;若S5中当前任务与前驱任务不进行融合,融合策略记为zi=0,则撤销融合操作,根据可执行顺序N对下一个任务重复S4;直到遍历完所有任务;
S7:所有任务遍历完,根据zi获得重构任务图;根据重构任务图计算任务融合调度后的应用完成时间T′;
S8:对比任务融合调度前后的应用完成时间T和T′;
若T′>T,则舍弃记录的执行设备信息,撤销所有的融合操作和重构任务图,将初始任务图作为最终任务图;
若T′<T,用S7中的重构任务图更新初始任务图,作为最终任务图;
S9:将最终任务图保存在应用配置文件当中,根据配置文件对代码进行编译优化,并将任务根据最终任务图部署到相应设备上执行。
所述时钟周期Wi通过clock_gettime函数获得。
所所述ci具体数值由以下方法求出:
利用一个线程轮流执行任务i和任务i的前驱任务,得到执行完成时间ti1,利用两个线程分别执行任务i和任务i的前驱任务,得到执行完成时间ti2,则:ci=ti1-ti2。
所述S3中的可执行顺序N由拓扑排序获得。
所述S5中的融合效益Qi由下面公式求出:Qi=α(H+ci)-(1-α)Γ,其中α为权重因子,H为任务融合后任务i的计算时间减少量,Γ为任务融合产生的额外任务的计算时间。
所述S7中的重构任务图包括可执行顺序N和任务执行设备信息xj。
所述S7中的T′有以下限制条件:
minT′
s.t.∑xj=1
zi∈{0,1}
其中,∑xj=1表示一个任务只能分配到一个执行设备上执行。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (6)
1.一种基于任务融合和任务调度的切换时延优化方法,其特征在于,所述方法包括以下步骤:
S1:分析应用主函数的调用关系,构建初始任务图G(V,E),其中V表示存在依赖关系的任务节点集合,E代表边集合,边集合中的每条边代表任务之间的依赖性;
其中,Wi为任务i的时钟周期,fj设备j的CPU频率,ci为任务i的上下文切换时延;
所述ci的具体数值由以下方法求出:
利用一个线程轮流执行任务i和任务i的前驱任务,得到执行完成时间ti1,利用两个线程分别执行任务i和任务i的前驱任务,得到执行完成时间ti2,则:ci=ti1-ti2;
S3:获得任务的可执行顺序N;
S4:对任务进行调度:根据可执行顺序N,从第一任务开始遍历,为每个任务在M中选择完成时间最短的设备作为任务的执行设备,并记录所述执行设备信息xj=1;
S5:对任务进行融合:合并当前任务与前驱任务,计算任务的融合效益Qi,根据融合效益Qi决定是否融合;其中,前驱任务为当前任务的上个任务;
若Qi<0,当前任务与前驱任务不融合;
若Qi≥0,当前任务与前驱任务融合;
融合效益Qi由下面公式求出:
Qi=α(H+ci)-(1-α)Γ
其中,α为权重因子,H为任务融合后任务i的计算时间减少量,Γ为任务融合产生的额外任务的计算时间;
S6:若S5中当前任务与前驱任务进行融合,融合策略记为zi=1,则将融合后的任务作为新任务执行S4;若S5中当前任务与前驱任务不进行融合,融合策略记为zi=0,则撤销融合操作;直到遍历完所有任务;
S7:所有任务遍历完,根据融合策略zi获得重构任务图;根据重构任务图计算任务融合调度后的应用完成时间T′;
S8:对比任务融合调度前后的应用完成时间T和T′;
若T′>T,则舍弃记录的执行设备信息,撤销所有的融合操作和重构任务图,将初始任务图作为最终任务图;
若T′<T,用S7中的重构任务图更新初始任务图,作为最终任务图;
S9:将最终任务图保存在应用配置文件当中,根据配置文件对代码进行编译优化,并将任务根据最终任务图部署到相应设备上执行。
2.根据权利要求1所述的一种基于任务融合和任务调度的切换时延优化方法,其特征在于,所述时钟周期Wi通过clock_gettime函数获得。
3.根据权利要求1所述的一种基于任务融合和任务调度的切换时延优化方法,其特征在于,所述S3中的可执行顺序N由拓扑排序获得。
5.根据权利要求1所述的一种基于任务融合和任务调度的切换时延优化方法,其特征在于,所述S7中的重构任务图包括可执行顺序N和任务执行设备信息xj。
6.根据权利要求5所述的一种基于任务融合和任务调度的切换时延优化方法,其特征在于,所述S7中的T′有以下限制条件:
min T′
s.t.∑xj=1
zi∈{0,1}。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122080.XA CN112379998B (zh) | 2020-10-20 | 2020-10-20 | 一种基于任务融合和任务调度的切换时延优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122080.XA CN112379998B (zh) | 2020-10-20 | 2020-10-20 | 一种基于任务融合和任务调度的切换时延优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112379998A CN112379998A (zh) | 2021-02-19 |
CN112379998B true CN112379998B (zh) | 2022-11-15 |
Family
ID=74581670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011122080.XA Active CN112379998B (zh) | 2020-10-20 | 2020-10-20 | 一种基于任务融合和任务调度的切换时延优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112379998B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN107943561A (zh) * | 2017-12-14 | 2018-04-20 | 长春工程学院 | 一种面向云计算平台的科学工作流任务调度方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213585A (zh) * | 2018-08-22 | 2019-01-15 | 广东工业大学 | 一种基于融合遗传算法和蚁群算法的云平台能耗优化管理方法 |
CN113127057A (zh) * | 2020-01-16 | 2021-07-16 | 北京京东振世信息技术有限公司 | 多任务并行执行的方法和装置 |
CN111274016B (zh) * | 2020-01-20 | 2022-09-09 | 中国人民解放军国防科技大学 | 基于模块融合的动态部分可重构系统应用划分与调度方法 |
CN111597031A (zh) * | 2020-05-22 | 2020-08-28 | 山东汇贸电子口岸有限公司 | 一种多云环境下科学工作流程的调度方法 |
-
2020
- 2020-10-20 CN CN202011122080.XA patent/CN112379998B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN107943561A (zh) * | 2017-12-14 | 2018-04-20 | 长春工程学院 | 一种面向云计算平台的科学工作流任务调度方法 |
Non-Patent Citations (1)
Title |
---|
Energy Efficient Cooperative Edge Computing with Multi-Source Multi-Relay Devices;Mianyang Yao et.al;《2019 IEEE 21st International Conference on High Performance Computing and Communications》;20191230;第865-870页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112379998A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427681B (zh) | 边缘计算中基于资源监控的实时任务匹配调度系统和方法 | |
CN111738434B (zh) | 在异构处理单元上执行深度神经网络的方法 | |
US11868890B2 (en) | Workflow optimization | |
US10031775B2 (en) | Backfill scheduling for embarrassingly parallel jobs | |
Casini et al. | Partitioned fixed-priority scheduling of parallel tasks without preemptions | |
Fonseca et al. | A multi-dag model for real-time parallel applications with conditional execution | |
CN105956021A (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
CN111861412A (zh) | 面向完成时间优化的科学工作流调度方法及系统 | |
CN111176637B (zh) | 基于缓存抢占延迟约束下aadl模型的可调度性分析方法 | |
US20230101571A1 (en) | Devices, methods, and media for efficient data dependency management for in-order issue processors | |
Niknafs et al. | Runtime resource management with workload prediction | |
CN108139929B (zh) | 用于调度多个任务的任务调度装置和方法 | |
Feljan et al. | Task allocation optimization for multicore embedded systems | |
Boucheneb et al. | Optimal reachability in cost time Petri nets | |
Liu et al. | A dual-mode scheduling approach for task graphs with data parallelism | |
CN112379998B (zh) | 一种基于任务融合和任务调度的切换时延优化方法 | |
CN115461718A (zh) | 神经网络中的内存分配 | |
Magdich et al. | A uml/marte-based design pattern for semi-partitioned scheduling analysis | |
Sevaux et al. | Tabu search for multiprocessor scheduling: application to high level synthesis | |
Zhao et al. | A hierarchical framework for composing nested web processes | |
Desnos et al. | Memory bounds for the distributed execution of a hierarchical synchronous data-flow graph | |
KR102022972B1 (ko) | 이종 멀티 프로세싱 시스템 환경 기반 런타임 관리장치 및 방법 | |
WO2018198745A1 (ja) | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 | |
Mouline et al. | Enabling temporal-aware contexts for adaptative distributed systems | |
Moon et al. | Nntrainer: Light-weight on-device training framework |
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 |