CN112416539A - 面向异构众核处理器的多任务并行调度方法 - Google Patents
面向异构众核处理器的多任务并行调度方法 Download PDFInfo
- Publication number
- CN112416539A CN112416539A CN201910771643.9A CN201910771643A CN112416539A CN 112416539 A CN112416539 A CN 112416539A CN 201910771643 A CN201910771643 A CN 201910771643A CN 112416539 A CN112416539 A CN 112416539A
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- core
- computing resources
- slave
- 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
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/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/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
- G06F9/505—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 considering the load
-
- 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)
- Multi Processors (AREA)
Abstract
本发明公开一种面向异构众核处理器的多任务并行调度方法,包括以下步骤:S1、创建一个任务队列,用于存储待加速计算的任务;S2、任务运行时,主核将从核上已完成的任务回收,将新任务添加到任务队列的尾部;S3、将从核以适当的粒度进行分组,以组为单位主动从任务队列的头部获取任务;S4、一组从核如果获取了当前任务的一部分计算,则要增加当前任务的已有计算资源的数量;S5、当任务的所需计算资源的数量等于已有计算资源的数量时,则该任务分配完毕。本发明提高了任务调度的效率,实现计算资源的精细管理,还解决了众核处理器计算核心多、而实际应用并行度不够、计算负载不均衡导致的计算资源的浪费问题,提高了资源的利用效率。
Description
技术领域
本发明涉及一种面向异构众核处理器的多任务并行调度方法,属于计算机技术领域。
背景技术
异构众核处理器一般分为运算控制部件(以下称为主核)和加速运算部件(以下称为从核),主核负责任务的产生和统一调度,将任务的代码和数据加载到从核上进行加速计算。在一个加速任务调度之前,主核要检查每个从核是否准备好接收新的任务;在加速任务完成之后,主核也要检查每个从核的计算是否完成。如果有多个任务需要加速计算,则主核按照任务的某种排队顺序依次调度。
然而,现有的任务调度方法存在着如下缺陷:一是任务产生和调度都是由主核控制,每次任务调度前后都要检查从核的状态,引起过多的任务调度开销;二是如果有多个并行度很小的任务需要加速计算,并且这些任务之间没有相关性,主核调度每次只能调度一个任务进行加速运算,不能充分利用加速部件计算资源,影响程序性能。
发明内容
本发明的目的是提供一种面向异构众核处理器的多任务并行调度方法,该面向异构众核处理器的多任务并行调度方法提高了任务调度的效率,实现计算资源的精细管理,还解决了众核处理器计算核心多、而实际应用并行度不够、计算负载不均衡导致的计算资源的浪费问题,提高了资源的利用效率。
为达到上述目的,本发明采用的技术方案是:一种面向异构众核处理器的多任务并行调度方法,包括以下步骤:
S1、在主存中创建循环任务队列,用于存储待加速计算的任务,所述循环任务队列中的每个任务均包含以下信息:任务编号、程序的入口函数地址、传入的参数地址、所需计算资源的数量和已有计算资源的数量,如果所述任务具有依赖的任务,则此任务包含的信息中还包括所依赖任务的编号,如果所述任务没有依赖的任务,则此任务包含的信息中还包括用于标识没有依赖的标记信息;
S21、主核根据S1中循环任务队列的头部和尾部指针的相对位置判断任务队列是否已满,若循环任务队列的头部和尾部指针指向相同的位置,则任务队列已满,否则,任务队列不满;
S22、若任务队列不满,主核将产生的新任务添加到循环任务队列的尾部,若任务队列已满,主核从任务队列的头部检查是否有任务完成,若有已完成的任务,主核在主存中记录该任务的任务编号以备从核查询,并通过移动任务队列的头部和尾部指针,回收该任务在任务队列中所占用的物理内存空间,便于主核将产生的新任务添加到任务队列的尾部;
S3、将从核按硬件耦合程度分成若干组,以组为单位主动从任务队列的头部获取任务,每组从核中的一个从核对头部指针指向任务中记录的已有计算资源的数量进行原子取并加操作,若取回的值小于或等于该任务中记录的所需计算资源的数量,则获取任务成功且已将本组从核的数量增加到此任务的已有计算资源的数量中,否则重复S3继续获取任务;
S4、当一个任务的所需计算资源的数量等于已有计算资源的数量时,则该任务分配完毕,当获取本任务的最后一组从核中的一个从核时,将获取任务的指针后移指向任务队列中的下一个任务,并将获取的任务发送给本组的其他从核;
S5、一组从核如果获取了任务队列中一个任务,则从核根据本任务中记录的依赖任务编号以及S22中主核中记录的已完成任务的编号,检查此任务所依赖的任务是否完成,若没有完成,则从核等待此任务所依赖的任务完成,再根据此任务中的设定执行分配给该组从核的此任务中的部分任务。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明面向异构众核处理器的多任务并行调度方法,其将众核计算核心以适当的粒度进行分组,从核以组为单位主动获取任务,减少和主核的交互,降低任务调度的开销,提高了任务调度的效率,实现计算资源的精细管理;还改变了传统的主核负责任务调度的模式,从核以组为单位执行独立的计算任务,或多组联合共同执行一个计算任务,实现了计算资源更小粒度的精细控制,解决众核处理器计算核心多、而实际应用并行度不够、计算负载不均衡导致的计算资源的浪费问题,提高了资源的利用效率,有效提升了程序的整体性能。
附图说明
附图1为本发明面向异构众核处理器的多任务并行调度方法原理示意图;
附图2为本发明面向异构众核处理器的多任务并行调度方法流程图。
具体实施方式
实施例:一种面向异构众核处理器的多任务并行调度方法,包括以下步骤:
S1、在主存中创建循环任务队列,用于存储待加速计算的任务,所述循环任务队列中的每个任务均包含以下信息:任务编号、程序的入口函数地址、传入的参数地址、所需计算资源的数量和已有计算资源的数量,如果所述任务具有依赖的任务,则此任务包含的信息中还包括所依赖任务的编号,如果所述任务没有依赖的任务,则此任务包含的信息中还包括用于标识没有依赖的标记信息;
S21、主核根据S1中循环任务队列的头部和尾部指针的相对位置判断任务队列是否已满,若循环任务队列的头部和尾部指针指向相同的位置,则任务队列已满,否则,任务队列不满;
S22、若任务队列不满,主核将产生的新任务添加到循环任务队列的尾部,若任务队列已满,主核从任务队列的头部检查是否有任务完成,若有已完成的任务,主核在主存中记录该任务的任务编号以备从核查询,并通过移动任务队列的头部和尾部指针,回收该任务在任务队列中所占用的物理内存空间,便于主核将产生的新任务添加到任务队列的尾部;
S3、将从核按硬件耦合程度分成若干组(例如耦合程度较高的几个从核分为1组 ),以组为单位主动从任务队列的头部获取任务,每组从核中的一个从核(例如0号从核)对头部指针指向任务中记录的已有计算资源的数量进行原子取并加操作,若取回的值小于或等于该任务中记录的所需计算资源的数量,则获取任务成功且已将本组从核的数量增加到此任务的已有计算资源的数量中,否则重复S3继续获取任务;
S4、当一个任务的所需计算资源的数量等于已有计算资源的数量时,则该任务分配完毕,当获取本任务的最后一组从核中的一个从核(例如0号从核)时,将获取任务的指针后移指向任务队列中的下一个任务,并将获取的任务发送给本组的其他从核;
S5、一组从核如果获取了任务队列中一个任务,则从核根据本任务中记录的依赖任务编号以及S22中主核中记录的已完成任务的编号,检查此任务所依赖的任务是否完成,若没有完成,则从核等待此任务所依赖的任务完成,再根据此任务中的设定执行分配给该组从核的此任务中的部分任务。
实施例进一步解释如下:
通过将众核计算核心以适当的粒度进行分组,从核以组为单位主动获取计算任务,从而实现任务的快速获取和计算资源的精细管理。
实现方案如下:
一、创建一个任务队列以存储待加速计算的任务,队列中每个任务需记录的信息包括:程序的入口函数地址、传入的参数地址、所需计算资源的数量、已有计算资源的数量等。队列中的任务之间没有相关性。
二、主核负责回收已完成的任务,并将新产生的任务添加到任务队列的尾部。如果当前产生的任务和任务队列中的任务有相关性,则暂缓添加,待相关任务完成之后再添加到任务队列。
三、从核以适当的粒度进行分组,以组为单位主动从任务队列的头部获取任务。如果多个组同时获取任务则要进行排队。
四、一组从核如果获取了当前任务的一部分计算,则要增加当前任务的已有计算资源的数量。当任务的所需计算资源的数量等于已有计算资源的数量,则该任务已分配完毕,获取任务的指针后移指向下一个计算任务。
采用上述面向异构众核处理器的多任务并行调度方法时,其将众核计算核心以适当的粒度进行分组,从核以组为单位主动获取任务,减少和主核的交互,降低任务调度的开销,提高了任务调度的效率,实现计算资源的精细管理;还改变了传统的主核负责任务调度的模式,从核以组为单位执行独立的计算任务,或多组联合共同执行一个计算任务,实现了计算资源更小粒度的精细控制,解决众核处理器计算核心多、而实际应用并行度不够、计算负载不均衡导致的计算资源的浪费问题,提高了资源的利用效率,有效提升了程序的整体性能。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种面向异构众核处理器的多任务并行调度方法,其特征在于:包括以下步骤:
S1、在主存中创建循环任务队列,用于存储待加速计算的任务,所述循环任务队列中的每个任务均包含以下信息:任务编号、程序的入口函数地址、传入的参数地址、所需计算资源的数量和已有计算资源的数量,如果所述任务具有依赖的任务,则此任务包含的信息中还包括所依赖任务的编号,如果所述任务没有依赖的任务,则此任务包含的信息中还包括用于标识没有依赖的标记信息;
S21、主核根据S1中循环任务队列的头部和尾部指针的相对位置判断任务队列是否已满,若循环任务队列的头部和尾部指针指向相同的位置,则任务队列已满,否则,任务队列不满;
S22、若任务队列不满,主核将产生的新任务添加到循环任务队列的尾部,若任务队列已满,主核从任务队列的头部检查是否有任务完成,若有已完成的任务,主核在主存中记录该任务的任务编号以备从核查询,并通过移动任务队列的头部和尾部指针,回收该任务在任务队列中所占用的物理内存空间,便于主核将产生的新任务添加到任务队列的尾部;
S3、将从核按硬件耦合程度分成若干组,以组为单位主动从任务队列的头部获取任务,每组从核中的一个从核对头部指针指向任务中记录的已有计算资源的数量进行原子取并加操作,若取回的值小于或等于该任务中记录的所需计算资源的数量,则获取任务成功且已将本组从核的数量增加到此任务的已有计算资源的数量中,否则重复S3继续获取任务;
S4、当一个任务的所需计算资源的数量等于已有计算资源的数量时,则该任务分配完毕,且当获取本任务的最后一组从核中的一个从核时,将获取任务的指针后移指向任务队列中的下一个任务,并将获取的任务发送给本组的其他从核;
S5、一组从核如果获取了任务队列中一个任务,则从核根据本任务中记录的依赖任务编号以及S22中主核中记录的已完成任务的编号,检查此任务所依赖的任务是否完成,若没有完成,则从核等待此任务所依赖的任务完成,再根据此任务中的设定执行分配给该组从核的此任务中的部分任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910771643.9A CN112416539B (zh) | 2019-08-21 | 2019-08-21 | 面向异构众核处理器的多任务并行调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910771643.9A CN112416539B (zh) | 2019-08-21 | 2019-08-21 | 面向异构众核处理器的多任务并行调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416539A true CN112416539A (zh) | 2021-02-26 |
CN112416539B CN112416539B (zh) | 2022-11-15 |
Family
ID=74779159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910771643.9A Active CN112416539B (zh) | 2019-08-21 | 2019-08-21 | 面向异构众核处理器的多任务并行调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416539B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331923A (zh) * | 2011-10-13 | 2012-01-25 | 西安电子科技大学 | 一种基于多核多线程处理器的功能宏流水线实现方法 |
CN109144720A (zh) * | 2018-07-13 | 2019-01-04 | 哈尔滨工程大学 | 一种基于共享资源敏感的多核处理器任务调度选择方法 |
-
2019
- 2019-08-21 CN CN201910771643.9A patent/CN112416539B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331923A (zh) * | 2011-10-13 | 2012-01-25 | 西安电子科技大学 | 一种基于多核多线程处理器的功能宏流水线实现方法 |
CN109144720A (zh) * | 2018-07-13 | 2019-01-04 | 哈尔滨工程大学 | 一种基于共享资源敏感的多核处理器任务调度选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112416539B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455189B2 (en) | Task scheduling simulation system | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和*** | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
CN104156264A (zh) | 一种基于多gpu的基带信号处理任务并行实时调度方法 | |
CN105187327A (zh) | 一种分布式消息队列中间件 | |
CN111078394B (zh) | 一种gpu线程负载均衡方法与装置 | |
CN104243617A (zh) | 一种异构集群中面向混合负载的任务调度方法及*** | |
CN102004664A (zh) | 一种空间飞行器嵌入式实时操作***调度方法 | |
CN104199739A (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
CN105022668A (zh) | 一种作业调度方法及*** | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
Shu-Jun et al. | Optimization and research of hadoop platform based on fifo scheduler | |
WO2024119930A1 (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN112463340A (zh) | 基于tensorflow的多任务弹性调度方法及*** | |
CN117234697A (zh) | 一种保守时间同步并行事件调度计算架构和方法 | |
CN116974994A (zh) | 一种基于集群的高效能文件协作*** | |
CN110502337B (zh) | 针对Hadoop MapReduce中混洗阶段的优化*** | |
CN112416539B (zh) | 面向异构众核处理器的多任务并行调度方法 | |
CN116795503A (zh) | 任务调度方法、任务调度装置、图形处理器及电子设备 | |
Jianchao et al. | Design and implementation of scheduling pool scheduling algorithm based on reuse of jobs in spark | |
CN111026809A (zh) | 一种调度流程分布式执行*** | |
KR101191530B1 (ko) | 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법 | |
CN116149794B (zh) | 一种基于容器架构的云仿真方法 | |
CN114880101B (zh) | 一种ai处理器、电子部件及电子设备 |
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 |