CN112416539B - 面向异构众核处理器的多任务并行调度方法 - Google Patents

面向异构众核处理器的多任务并行调度方法 Download PDF

Info

Publication number
CN112416539B
CN112416539B CN201910771643.9A CN201910771643A CN112416539B CN 112416539 B CN112416539 B CN 112416539B CN 201910771643 A CN201910771643 A CN 201910771643A CN 112416539 B CN112416539 B CN 112416539B
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.)
Active
Application number
CN201910771643.9A
Other languages
English (en)
Other versions
CN112416539A (zh
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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910771643.9A priority Critical patent/CN112416539B/zh
Publication of CN112416539A publication Critical patent/CN112416539A/zh
Application granted granted Critical
Publication of CN112416539B publication Critical patent/CN112416539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F9/505Allocation 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
    • 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)
  • 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中主核中记录的已完成任务的编号,检查此任务所依赖的任务是否完成,若没有完成,则从核等待此任务所依赖的任务完成,再根据此任务中的设定执行分配给该组从核的此任务中的部分任务。
CN201910771643.9A 2019-08-21 2019-08-21 面向异构众核处理器的多任务并行调度方法 Active CN112416539B (zh)

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 CN112416539A (zh) 2021-02-26
CN112416539B true 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331923A (zh) * 2011-10-13 2012-01-25 西安电子科技大学 一种基于多核多线程处理器的功能宏流水线实现方法
CN109144720A (zh) * 2018-07-13 2019-01-04 哈尔滨工程大学 一种基于共享资源敏感的多核处理器任务调度选择方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
CN112416539A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
US11455189B2 (en) Task scheduling simulation system
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN109992407B (zh) 一种yarn集群gpu资源调度方法、装置和介质
CN114741207B (zh) 一种基于多维度组合并行的gpu资源调度方法和***
CN109257399B (zh) 云平台应用程序管理方法及管理平台、存储介质
CN104156264A (zh) 一种基于多gpu的基带信号处理任务并行实时调度方法
CN111078394B (zh) 一种gpu线程负载均衡方法与装置
CN104199739A (zh) 一种基于负载均衡的推测式Hadoop调度方法
CN113986534A (zh) 任务调度方法、装置、计算机设备和计算机可读存储介质
CN105022668A (zh) 一种作业调度方法及***
CN115827250A (zh) 一种数据存储方法、装置及设备
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
CN112463340A (zh) 基于tensorflow的多任务弹性调度方法及***
CN106844024B (zh) 一种自学习运行时间预测模型的gpu/cpu调度方法及***
CN116974994A (zh) 一种基于集群的高效能文件协作***
CN112416539B (zh) 面向异构众核处理器的多任务并行调度方法
CN110502337B (zh) 针对Hadoop MapReduce中混洗阶段的优化***
CN116795503A (zh) 任务调度方法、任务调度装置、图形处理器及电子设备
CN115809126A (zh) 混合部署场景下的作业调度方法、装置及电子设备
CN112052087B (zh) 动态资源调整与迁移的深度学习训练***及方法
CN114880101B (zh) 一种ai处理器、电子部件及电子设备
CN115689405B (zh) 数据处理方法、装置及***、计算机可存储介质
CN116149794B (zh) 一种基于容器架构的云仿真方法

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