CN101393530A - 基于超立方体结构的cmp任务分配方法 - Google Patents
基于超立方体结构的cmp任务分配方法 Download PDFInfo
- Publication number
- CN101393530A CN101393530A CNA2008101370176A CN200810137017A CN101393530A CN 101393530 A CN101393530 A CN 101393530A CN A2008101370176 A CNA2008101370176 A CN A2008101370176A CN 200810137017 A CN200810137017 A CN 200810137017A CN 101393530 A CN101393530 A CN 101393530A
- Authority
- CN
- China
- Prior art keywords
- task
- cube
- dimension
- cmp
- execution
- 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
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供的是一种基于超立方体结构的CMP任务分配方法。本发明的关键在于将超立方体结构数学模型(以超立方体结构的顶点来表示各个处理器的内核,边表示内核与内核之间的联系)引入到CMP任务分配算法中,根据待运行任务的特征属性,将占用不同资源的任务合理地分配到各个处理器内核中。通过引入基于超立方体结构的CMP任务分配算法,可以使得不同资源占用的任务合理地分配到适当的处理器内核中,从而提高了CMP中各个处理器内核的整体利用率,大大地缩短了完成全部任务所需的执行时间,从而改进了CMP的处理效率和使用效能。
Description
(一)技术领域
本发明涉及的是一种计算机CMP体系结构中处理器内核任务调度技术。
(二)背景技术
随着集成电路制造工艺的不断进步,微处理器性能得到了不断的提升。单个处理器芯片上集成10亿个晶体管即将实现,在此情况下,进一步利用程序本身所具有的并行性以提高处理器性能成为当前系统结构设计者所面对的一个关键问题。
传统的处理器设计中大多通过并发执行单个串行程序中的多条指令来提取并行性,为此,处理器设计采用了诸如乱序执行、猜测执行和硬件分支预测等技术来改进系统的并发执行。然而,随着越来越多复杂技术的应用,使得处理器的设计和验证变得越来越难以控制。为此,提出了CMP(片上多处理器)体系结构。
CMP是指在一个处理器芯片上集成多个微处理器内核(也称为处理单元),每个微处理器内核实质上都是一个相对简单的微处理器,各个微处理器都能够相对独立地执行程序代码。
CMP的基本架构主要结构包括:
(1)处理器内核:CMP中包括多个相对独立的处理器内核,内核往往具有中央处理单元、独立的Cache结构等。
(2)核间通信结构:主流的片上高效通信机制有两种,一种基于总线共享的Cache结构,以斯坦福大学的Hydra处理器为代表;另一种是基于片上的互连结构,以麻省理工学院的RAW处理器为代表。其中,前者是指每个处理器内核拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信,具有结构简单,容易实现与验证,且对系统程序员接口友好的优点,缺点是基于总线的结构可扩展性较差,适用于集成4个或4个以下CPU核心的CMP处理器;后者是指每个处理器内核拥有独立的处理单元和cache,各个CPU核心间通过交叉开关和片上互联网络等方式连接在一起,各个CPU核心之间通过消息进行通信,这种结构的优点是可扩展性好,适合于集成16个以上CPU核心的CMP处理器。
对于具有多个处理单元的多核处理器系统来讲,将大量的计算线程合理、高效地分配到相应的处理器单元上是CMP研究的重点问题。当前,CMP结构下操作系统任务调度算法主要包括:一是全局就绪队列调度;二是局部就绪队列调度。
全局队列调度是指操作系统维护一个全局的任务就绪队列,当系统中有一个CPU内核空闲时,操作系统就从全局任务就绪队列中选取一个就绪任务开始在此核心上执行。这种方法的优点是CPU内核利用率较高,逻辑设计也比较简单,但任务可能需要在各内核之间进行切换,因为当某一个任务已经分配给处理器的A内核,可是当任务运行的过程中因某种原因而被阻塞时,系统发现B内核为空闲,那么系统会把正在A内核执行的任务分配给B内核,这样会削弱A内核中的cache命中率。
局部就绪队列调度是指系统为每个CPU内核维护一个局部的任务就绪队列,当系统中有一个CPU内核空闲时,便从该内核的任务就绪队列中选取恰当的任务执行,这种方法的优点是任务基本上不需要在多个CPU内核之间进行切换,有利于提高CPU内核里的cache命中率,但CPU内核的利用率较低,因为当系统中的某个CPU内核A所维护的任务就绪队列中任务应经执行完毕,而其他CPU内核B的就绪队列中仍有任务需要执行,那么A内核只能等待,这样就浪费了宝贵的内核资源。
(三)发明内容
本发明的目的在于提供一种将CMP中处理器内核逻辑划分为具有不同维数的超立方体结构,根据任务资源分配表的功能需求,将不同任务分配到CMP中的立方体结构中,可以使任务能够较快的在各个处理器内核之中运行,大大地缩短任务的执行时间。
本发明的目的是这样实现的:
具有N个处理单元的单芯片多处理器CMP,将其逻辑划分为具有多维立方体结构,至多为k维立方体,其中k≤N,处理单元的个数与具有一维立方体结构的节点个数n1、具有二维立方体结构的节点个数n2、具有k维立方体结构的节点个数nk之间满足N=n1+n2+…+nk;
设单芯片多处理器CMP将要执行的任务队列为P1P2…Pp,每个任务Pi的资源使用参数表为(di,ti),其中,di表示执行该任务需要i维立方体运算资源、ti表示执行该任务i维立方体所需要的执行时间;
首先建立多维立方体结构的数据结构n1→n2→...→nk,其中:节点总数为N、n1,n2,…,nk构成了1维立方体、2维立方体、…、k维立方体的队列,每一个ni指向一个长度为j的指针队列mi1,mi2,…,mij,指针队列中每一个元素包含参数表(tact,ttotal),其中tact表示在该立方体上运行的任务的当前运行时间,ttotal表示在该立方体上为完成分配给它的任务、未来还需要的时间;每一个mik指向一个即将在该立方体上执行任务队列Pk1,…,Pkl,如果没有分配任务给该立方体,则mik指向空。
其具体方法步骤为:
1:输入任务队列P=P1P2…Pp及其资源使用参数表(di,ti);
2:建立n1→n2→...→nk多维立方体的数据结构,并对该数据结构初始化;
3:如果当前的任务队列为空,执行步骤10;
否则,执行步骤4;
4:从任务队列中取出第一个任务P1及其参数表(d1,t1);
5:如果d1>k,输出无法分配任务P1,执行步骤10;
否则,执行步骤6;
6:(6-8步骤把任务分配到相应的立方体中)
8:从任务队列中删除任务P1,并将任务P1插入到mik指向的任务队列的尾部;
9:tak=tak+t1;
10:遍历指针n1,n2,…,nk及其指向的后代指针队列将全部指针的参数ta1,ta2,…,tak值均加1,即tal=tal+1;
11:遍历全部的如果参数ta1,ta2,…,tak的值大于相对应指向执行任务队列中第一个任务P′的时间t′,则从该任务队列中删除第一个任务P′,并且将指向任务P′的指针mp′指向P′的后继,tbp′=tbp′-t′,tap′=0;
12:如果当前的任务队列P不为空,则执行步骤4;
否则,执行步骤13;
否则,执行步骤10。
本发明的关键在于如何进行对多个处理器内核之间的任务分配和调度,为此引入了超立方体结构数学模型,以超立方体结构的顶点表示来表示各个处理器的内核,边则表示内核与内核之间的联系。通过引入基于超立方体结构的CMP任务分配算法,可以使任务能够较快的在各个处理器内核之中运行,从而大大地缩短了任务的执行时间。
其主要创新点如下:
(1)根据CMP的空间结构,将具有N个处理单元的CMP中处理器单元以超立方体结构进行逻辑划分,划分为具有不同维数的超立方体结构(至多为k维立方体,其中k≤N),具有一维立方体结构的节点个数n1,具有二维立方体结构的节点个数n2,具有k维立方体结构的节点个数nk,即N=n1+n2+…+nk;
(2)根据任务所需要使用的资源参数表,将任务快速地分配到最先完成之前所分配到任务的超立方体中,从而、实现任务的快速分配、缩短系统运行时间。
(四)附图说明
图1:k个多维立方体构成的CMP数据结构;
图2:i维立方体的数据结构。
(五)具体实施方式
下面结合附图举例对本发明做更详细地描述:
本发明所述算法的特征在于:
具有N个处理单元的单芯片多处理器CMP,将其逻辑划分为具有多维立方体结构(至多为k维立方体,其中k≤N),具有一维立方体结构的节点个数n1,具有二维立方体结构的节点个数n2,具有k维立方体结构的节点个数nk,即N=n1+n2+…+nk。
设单芯片多处理器CMP将要执行的任务队列为P1P2…Pp,每个任务Pi的资源使用参数表为(di,ti),其中,di表示执行该任务需要i维立方体运算资源,ti表示执行该任务i维立方体所需要的执行时间。
首先建立多维立方体结构的数据结构如图1所示。其中,节点总数为N,n1,n2,…,nk构成了1维立方体、2维立方体、…、k维立方体的队列,每一个ni指向一个长度为j的指针队列mi1,mi2,…,mij,指针队列中每一个元素包含参数表(tact,ttotal),其中tact表示在该立方体上运行的任务的当前运行时间,ttotal表示在该立方体上为完成分配给它的任务、未来还需要的时间;每一个mik指向一个即将在该立方体上执行任务队列Pk1,…,Pkl,如果没有分配任务给该立方体,则mik指向空。
算法如下:
1:输入任务队列P=P1P2…Pp及其资源使用参数表(di,ti)
2:建立如图1所示多维立方体的数据结构,并对该数据结构初始化。
3:如果当前的任务队列为空,执行步骤10;
否则,执行步骤4
4:从任务队列中取出第一个任务P1及其参数表(d1,t1)
5:如果d1>k,输出无法分配任务P1,执行步骤10;
否则,执行步骤6
8:从任务队列中删除任务P1,并将任务P1插入到mik指向的任务队列的尾部
9:tak=tak+t1
10:遍历指针n1,n2,…,nk及其指向的后代指针队列将全部指针的参数ta1,ta2,…,tak值均加1,即tal=tal+1
11:遍历全部的如果参数ta1,ta2,…,tak的值大于相对应指向执行任务队列中第一个任务P′的时间t′,则从该任务队列中删除第一个任务P′(意味着第一个任务已经执行完毕),并且将指向任务P′的指针mp′指向P′的后继,tbp′=tbp′-t′,tap′=0
12:如果当前的任务队列P不为空,则执行步骤4;
否则,执行步骤13
否则,执行步骤10。
基于超立方体结构的CMP任务分配方法具体实施模式是这样的:
整个算法具体实施模式是分两个过程,第一个过程是如何把任务分配到最先完成的子立方体中,第二个过程是如何判断某个分配到子立方体中的任务已经完成。
第一个过程
先把需要执行的任务初始化成一个队列,每个任务Pi由两个参数表示,分别是di和ti其中,di表示执行该任务需要i维立方体,ti表示在i维立方体执行该任务所需要的时间。把立方体的维数从1维到k维建成一个队列,每一维又是一个指针队列,用来指向需要在此维数的立方体执行的任务队列,而每一个指针队列的每一项也包含两个参数tact和ttotal,其中tact表示在当前指针队列里任务的运行时间,ttotal表示在该立方体上为完成分配给它的任务、未来还需要的时间。从源任务队列中取出第一个任务,通过它的参数di确定应该把它插入到哪一个维数所对应的任务队列,假设被分配到第k维,第k维也是一个指针队列,它指向的是正在或将要执行的任务,通过比较第k维上所有指针队列中每一项的ttotal值,找出ttotal值最小的指针,不妨设mik,那么就可以判断第一个任务在第k维立方体上用时最少,把第一个任务插入到mik所指向的指针队列中,至此任务已经分配到最先完成它的某维的子立方体中,第一个过程结束。
第二个过程
假设第k维上的指针队列里有P1P2...Pj,通过拿第k维上所有指针队列中的每一个tact和该维指针队列指向的第一个任务P′完成的时间t′进行比较,如果t′比每一个tact都小的话,说明当前系统运行的时间已经超出了任务P′的执行时间,即任务P′已经完成,第二个过程结束。然后采取循环的办法,依次从源任务队列中取下一个任务进行判断,至此整个算法的实施模式结束。
Claims (2)
1、一种基于超立方体结构的CMP任务分配方法,其特征是:具有N个处理单元的单芯片多处理器CMP,将其逻辑划分为具有多维立方体结构,至多为k维立方体,其中k≤N,处理单元的个数与具有一维立方体结构的节点个数n1、具有二维立方体结构的节点个数n2、具有k维立方体结构的节点个数nk之间满足N=n1+n2+…+nk;
设单芯片多处理器CMP将要执行的任务队列为P1P2…Pp,每个任务Pi的资源使用参数表为(di,ti),其中,di表示执行该任务需要i维立方体运算资源、ti表示执行该任务i维立方体所需要的执行时间;
首先建立多维立方体结构的数据结构n1→n2→...→nk,其中:节点总数为N、n1,n2,…,nk构成了1维立方体、2维立方体、…、k维立方体的队列,每一个ni指向一个长度为j的指针队列mi1,mi2,…,mij,指针队列中每一个元素包含参数表(tact,ttotal),其中tact表示在该立方体上运行的任务的当前运行时间,ttotal表示在该立方体上为完成分配给它的任务、未来还需要的时间;每一个mik指向一个即将在该立方体上执行任务队列Pk1,…,Pkl,如果没有分配任务给该立方体,则mik指向空。
2、根据权利要求1所述的基于超立方体结构的CMP任务分配方法,其特征是:其具体方法步骤为:
(1)输入任务队列P=P1P2…Pp及其资源使用参数表(di,ti);
(2)建立n1→n2→...→nk多维立方体的数据结构,并对该数据结构初始化;
(3)如果当前的任务队列为空,执行步骤10;否则,执行步骤4;
(4)从任务队列中取出第一个任务P1及其参数表(d1,t1);
(5)如果d1>k,输出无法分配任务P1,执行步骤10;否则,执行步骤6;
(8)从任务队列中删除任务P1,并将任务P1插入到mik指向的任务队列的尾部;
(9)tak=tak+t1;
(10)遍历指针n1,n2,…,nk及其指向的后代指针队列m11,m12,…,m1i,…,mi1,mi2,…,mij,…,mk1,…,,将全部指针的参数ta1,ta2,…,tak值均加1,即 tal=tal+1
(11)遍历全部的m11,m12,…,m1i,…,mi1,mi2,…,mij,…,mk1,…,mkik,如果参数ta1,ta2,…,tak的值大于相对应指向执行任务队列中第一个任务P′的时间t′,
则从该任务队列中删除第一个任务P′,并且将指向任务P′的指针mp′指向P′的后继,tbp′=tbp′-t′,tap′=0;
(12)如果当前的任务队列P不为空,则执行步骤4;否则,执行步骤13;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810137017A CN100589080C (zh) | 2008-08-27 | 2008-08-27 | 基于超立方体结构的cmp任务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810137017A CN100589080C (zh) | 2008-08-27 | 2008-08-27 | 基于超立方体结构的cmp任务分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101393530A true CN101393530A (zh) | 2009-03-25 |
CN100589080C CN100589080C (zh) | 2010-02-10 |
Family
ID=40493836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810137017A Expired - Fee Related CN100589080C (zh) | 2008-08-27 | 2008-08-27 | 基于超立方体结构的cmp任务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100589080C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102105866A (zh) * | 2009-05-25 | 2011-06-22 | 松下电器产业株式会社 | 多处理器系统、多处理器控制方法、以及多处理器集成电路 |
CN103150219A (zh) * | 2013-04-03 | 2013-06-12 | 重庆大学 | 在异构资源系统上避免死锁的快速任务分配方法 |
CN104035818A (zh) * | 2013-03-04 | 2014-09-10 | 腾讯科技(深圳)有限公司 | 多任务调度的方法及装置 |
CN104090826A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
-
2008
- 2008-08-27 CN CN200810137017A patent/CN100589080C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102105866A (zh) * | 2009-05-25 | 2011-06-22 | 松下电器产业株式会社 | 多处理器系统、多处理器控制方法、以及多处理器集成电路 |
CN102105866B (zh) * | 2009-05-25 | 2014-02-26 | 松下电器产业株式会社 | 多处理器系统、多处理器控制方法、以及多处理器集成电路 |
US9032407B2 (en) | 2009-05-25 | 2015-05-12 | Panasonic Intellectual Property Corporation Of America | Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit |
CN104035818A (zh) * | 2013-03-04 | 2014-09-10 | 腾讯科技(深圳)有限公司 | 多任务调度的方法及装置 |
CN103150219A (zh) * | 2013-04-03 | 2013-06-12 | 重庆大学 | 在异构资源系统上避免死锁的快速任务分配方法 |
CN104090826A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
CN104090826B (zh) * | 2014-06-30 | 2017-07-11 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100589080C (zh) | 2010-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | Zena: Zero-aware neural network accelerator | |
CN102831011B (zh) | 一种基于众核系统的任务调度方法及装置 | |
Scarpazza et al. | Efficient breadth-first search on the cell/be processor | |
US9405538B2 (en) | Functional unit having tree structure to support vector sorting algorithm and other algorithms | |
CN102063336A (zh) | 一种分布式计算多应用功能异步并发调度方法 | |
CN101796484A (zh) | 线程优化的多处理器架构 | |
Bosilca et al. | Performance portability of a GPU enabled factorization with the DAGuE framework | |
CN107924327A (zh) | 用于多线程处理的系统和方法 | |
CN101833438A (zh) | 一种基于多重并行的数据通用处理方法 | |
CN104317751A (zh) | 一种gpu上数据流处理系统及其数据流处理方法 | |
CN100589080C (zh) | 基于超立方体结构的cmp任务分配方法 | |
CN101833439B (zh) | 基于分合思想的并行计算硬件结构 | |
CN103885826A (zh) | 一种多核嵌入式系统实时任务调度实现方法 | |
CN113407352A (zh) | 用于处理任务的方法、处理器、设备和可读存储介质 | |
Wang et al. | WooKong: A ubiquitous accelerator for recommendation algorithms with custom instruction sets on FPGA | |
CN101751373A (zh) | 基于单一指令集微处理器运算单元的可配置多核/众核系统 | |
Iserte et al. | An study of the effect of process malleability in the energy efficiency on GPU-based clusters | |
CN105528253A (zh) | 一种异构众核系统上的流水式通信并行方法 | |
Cheng et al. | Many-core needs fine-grained scheduling: A case study of query processing on Intel Xeon Phi processors | |
CN201274500Y (zh) | 基于mpi的并行文件传输服务器群系统 | |
CN105975434B (zh) | 面向异构系统的数据传输优化方法 | |
Aghapour et al. | Integrated ARM big. Little-Mali pipeline for high-throughput CNN inference | |
Lam et al. | Performance guarantee for online deadline scheduling in the presence of overload | |
CN104933110A (zh) | 一种基于MapReduce的数据预取方法 | |
CN104699520B (zh) | 一种基于虚拟机迁移调度的节能方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100210 Termination date: 20120827 |