CN103838631B - 一种面向片上网络的多线程调度实现方法 - Google Patents

一种面向片上网络的多线程调度实现方法 Download PDF

Info

Publication number
CN103838631B
CN103838631B CN201410087648.7A CN201410087648A CN103838631B CN 103838631 B CN103838631 B CN 103838631B CN 201410087648 A CN201410087648 A CN 201410087648A CN 103838631 B CN103838631 B CN 103838631B
Authority
CN
China
Prior art keywords
network
chip
thread
processor core
multithreading
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
CN201410087648.7A
Other languages
English (en)
Other versions
CN103838631A (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.)
Jiangsu runyun Digital Technology Co., Ltd
Original Assignee
Wuhan University of Science and Engineering WUSE
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 Wuhan University of Science and Engineering WUSE filed Critical Wuhan University of Science and Engineering WUSE
Priority to CN201410087648.7A priority Critical patent/CN103838631B/zh
Publication of CN103838631A publication Critical patent/CN103838631A/zh
Application granted granted Critical
Publication of CN103838631B publication Critical patent/CN103838631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种面向片上网络的多线程调度实现方法,包括以下步骤:建立多线程模型;建立片上网络拓扑模型;对多线程集合进行划分;对片上网络进行分区;将多线程分配到片上网络。本发明的技术方案适用于面向片上网络的多线程调度的实现,利用多线程之间的关系,对多线程进行分组,并以此为基础对片上网络进行分区,并进行调度,减少了调度的复杂性,具有动态调度的可扩展性,提高了调度的效率。

Description

一种面向片上网络的多线程调度实现方法
技术领域
本发明属于片上网络线程调度技术领域,特别是涉及一种面向片上网络的多线程调度实现方法。
背景技术
随着半导体技术的发展,标志着计算性能的处理器频率的提升已经逐步减缓,已经无法有效增强系统的整体计算能力。在这样的背景下,硬件厂商纷纷开始了多核处理器和片上系统的研发。多核处理器通过将多处理核封装在同一芯片上提高系统的集成度,而片上系统则在芯片上集成了负责计算外的其它器件,使芯片的功能可以满足各方面的需求。
多核处理器和片上系统都增加了芯片内部器件的数量。实验证明,应用在传统系统中的总线结构并不能满足这些器件之间的通讯需求。由于总线需要对所连接的各器件进行监听,而且在任何时间只有单一的数据传输可以进行,所以随着总线上所连接器件数量的增长,器件之间通讯需要等待更多时间。此外,在多核处理器和片上系统这样复杂的系统中,为了提高执行效率,任务往外会被分割成为多个部分在系统中同时运行。这些部分之间由于存在大量数据依赖和控制依赖关系,所以需要频繁进行数据传输,这更加剧了总线的负载,导致系统性能的下降。随着芯片规模的不断增大,各器件之间的距离也不断增大,因此数据传输对系统整体性能的影响也越来越重要。
片上网络的提出就是为了解决复杂系统中的数据传输问题。片上网络借鉴了成熟的网络传输思想,在芯片内部构造了数据的传输网络。在片上网络的研究中,系统内各器件都被抽象为网络中的节点,数据在打包后通过网络传递到目的节点。片上网络将系统的通讯分布化,避免了总线在传输过程中的瓶颈效应。
硬件结构的变化引起了通讯模式的改变。与传统的总线通讯结构相比,片上网络将通讯分布式化,减少了系统中不同信息交互之间的影响。然而,片上 网络在提高了系统的可扩展性的同时,也使得系统的通讯结构更加复杂,对具体通讯的性能会产生一定的影响。由于目前多核芯片内的计算单元数量还不是很巨大,所以总线架构与片上网络架构在性能上还是互有优劣,特别是层次化总线结构在某些应用领域可以取得很好的效果。因此,多核环境中的硬件对通讯模式的支持分析直接影响着多核系统中任务运行的效率。
片上网络已经开始影响软件设计。由于过去的软件大多是针对单处理器设计的,所以并行度不高,无法有效地利用片上网络环境中的系统资源。其中,多线程在片上网络中的调度非常重要。但是针对单核处理器的调度方法显然不能处理多线程在片上网络上的调度,而现有的一些映射方法是从IP核与片上网络之间的关系着手,如何从操作系统的角度出发,实现多线程在片上网络上的调度,已有的方法较少;而已有的方法则通常较为复杂,难以高效率的完成。本方法中,将多线程之间的连接关系和片上网络的处理器核心利用联系起来,来进行多线程在片上网络上的调度,从而提高调度的效率。
发明内容
本发明旨在克服现有技术缺陷,目的在于别供一种能够别高调度效率和具有可扩展性的面向片上网络的多线程调度实现方法。
为实现上述目的,本发明采用的技术方案是:
一种面向片上网络的多线程调度实现方法,包括如下步骤:
建立多线程模型,包括包含所有线程的多线程集合T,各线程间是否存在通信关系的线程通信关系集合,以及与各线程存在通信关系的任务数量集合;
建立片上网络拓扑模型,包括处理器核的集合和各处理器核之间通路的集合;
对多线程集合T按通信关系进行划分,其中划分后的分属于不同集合中的任务间不存在通信关系;
对片上网络进行分区:提取任务数小于或等于处理器核数的线程来构成新线程集合,将片上网络划分为u个区域,其中u为所述线程集合所包含的线程数,所述片上网络的u个区域分别与u个线程相对应且分别包含了线程中任务数相同的处理器核;
将多线程分配到片上网络:将新线程集合中的u个线程按对应关系分别分配到u个区域,完成多线程集合的调度。
进一还的,还包括下述步骤:在将所述新线程集合中的u个线程分配到对应区域上之后,再将所述线程分配到处理器核上。
进一步的,所述网络拓扑模型还包括:
从一处理器核到另一处理器核所经过的片上网络路由器的数量;
一处理器核在所有方向直接连接的其它处理器核的数量;
与一处理器核具有直接连接的其它处理器核的集合。
由于采用上述技术方案,本发明以多线程模型和片上网络模型的建立为基础,以多线程之间的连接关系为根据,对多线程进行分组,对片上网络进行分区,并进行多线程的调度。本发明与现有技术相比,具有如下积极效果:
(1)高效性。片上网络具有丰富的片上资源,多线程在片上网络的调度需要高效的进行。在本发明中,将多线程之间的连接关系作为中心,对多线程进行分组,将多线程以关联性分配到对应的片上网络区域中,提高了多线程调度的效率;
(2)可扩展性。由于片上网络的结构具有多样性,需要适应不同的片上网络体系结构,本发明中,对片上网络的结构没有进行严格的限定,提供了具有高度抽象的片上网络模型,从而使得多线程调度方法能够适应于多种不同的体系结构,具有很高的可扩展性。
因此,本发明适用于面向片上网络的多线程调度的实现,利用多线程之间的关系,对多线程进行分组,并以此为基础对片上网络进行分区,并进行调度,减少了调度的复杂性,具有动态调度的可扩展性,提高了调度的效率。
附图说明
图1是本发明实施例中的步骤示意图;
图2是本发明实施例中的多线程通信关系示意图;
图3是本发明实施例中的片上网络示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述,并非对其保护范围的限制。
如图1所示,一种面向片上网络的多线程调度实现方法,包括如下步骤:
S10:建立多线程模型,包括包含所有线程的多线程集合T,各线程间是否存在通信关系的线程通信关系集合,以及与各线程存在通信关系的任务数量集合。
对于多线程,建立多线程模型A(T,R),其中:
T为多线程的集合,T={t0,t1,…,tm};
R为rij的集合,rij=1表示线程ti与线程tj之间存在着通信关系,rij=0表示线程ti与线程tj之间不存在通信关系;
Li表示与线程ti存在通信关系的任务的数量;
对于具有8个线程的线程集合,按照多线程模型为A(T,R),其中
T={t0,t1,t2,t3,t4,t5,t6,t7};
R如图2所示。
L值如下表所示:
t0t1t2t3t4t5 t6 t7
Li422332 3 3
表1
S20:建立片上网络拓扑模型,包括处理器核的集合和各处理器核之间通路的集合,还包括:
从一处理器核到另一处理器核所经过的片上网络路由器的数量;
一处理器核在所有方向直接连接的其它处理器核的数量;
与一处理器核具有直接连接的其它处理器核的集合。
对于片上网络,用N(C,P)表示,其中C是处理器核Cn的集合,P是通路Pij的集合,其中,Pij表示从处理器核Ci到处理器核Cj的一条通路;
s=|Ci→Cj|,表示从处理器核Ci到处理器核Cj所经过的片上网络路由器的数量;
h(Ci)表示处理器核Ci在所有方向直接连接的处理器核的数量;
C(Cj)表示与处理器核Ci具有直接连接的处理器核的集合; 对于有9个处理器核的 片上网络,其结构如图3所示,其中s值如下表: j i
s C0 C1 C2 C3 C4 C5 C6 C7 C8
C0 / 0 1 0 1 2 1 2 3
C1 0 / 0 1 0 1 2 1 2
C2 1 0 / 2 1 0 3 2 1
C3 0 1 2 / 0 1 0 1 2
C4 1 0 1 0 / 0 1 0 1
C5 2 1 0 1 0 / 2 1 0
C6 1 2 3 0 1 2 / 0 1
C7 2 1 2 1 0 1 0 / 0
C8 3 2 1 2 1 0 1 0 /
表2
h值如下班所示:
C0 C1 C2 C3 C4 C5 C6 C7 C8
h(Cj) 2 3 2 2 4 3 2 3 2
表3
所有的C(Cj)如下表所示: j
C(Cx)
C0 C1,C3
C1 C0,C2,C4
C2 C1,C5
C3 C0,C4,C6
C4 C1,C3,C5,C7
C5 C2,C4,C8
C6 C3,C7
C7 C4,C6,C8
C8 C5,C7
表4
S30:对多线程集合T进行划分,划分结果为m个多线程集合T1,T2,…,Tm,其中从任意一个集合中任取一个任务,与任意另一个集合中任取一个任务,这两个任务之间均不存在通信关系;
对于多线程集合T={t0,t1,t2,t3,t4,t5,t6,t7},划分后的结果为:
T1={t0,t3,t4,t6,t7};
T2={t1,t2,t5};
T1中的所有任务与T2中的所有任务均不存在通信关系;
S40:对片上网络进行分区:提取任务数小于或等于处理器核数的线程来构成新线程集合,将片上网络划分为u个区域,其中u为所述新线程集合所包含的线程数,所述片上网络的u个区域分别与u个线程相对应且分别包含了线程中任务数相同的处理器核。
对于所有的Ti,计算每个Ti中任务的数量Num(Ti);如果ΣNum(Ti)大于处理器核的数量,则去掉c个Ti,直到满足ΣNum(Ti)小于或者等于处理器核的数量;后续的线程实际上仍然在多线程集合当中,相当于没有被挑选出来而已。
在满足ΣNum(Ti)小于或者等于处理器核的数量时,所有的Ti集合为:
T1,T2,…,Tm-c
此时所有的Ti的数量为u;然后将片上网络划分为u个区域,分别为:
U1,U2,…,Uu
片上网络的u个区域与m-c个集合Ti一一对应,其中U1与T1对应,包含了Num(T1)个处理器核;U2与T2对应,包含了Num(T2)个处理器核;Ux与Ty对应,包含了Num(Ty)个处理器核;Uu与Tm-c对应,包含了Num(Tm-c)个处理器核。
对于多线程集合T={t0,t1,t2,t3,t4,t5,t6,t7},与图3中的片上网络,划分后的结果为:
U1={C0,C1,C2,C3,C4};
U2={C5,C7,C8};
U1对应于T1,包含5个处理器核;U2对应于T2,包含3个处理器核。
S50:将多线程分配到片上网络:将新线程集合中的u个线程按对应关系分别分配到u个区域,完成多线程集合的调度。
(1)按照前述步骤中片上网络的区域与多线程集合之间的对应关系,将划分后的多线程集合Ti分配到片上网络对应的区域上,完成多线程集合的调度;
(2)在将Ti分配到Ui上之后,再将Ti中的线程分配到处理器核上,具体的分配方法可以根据根据线程之间的连接关系、线程间的通信量、线程间的通信延迟要求等来进行分配。
对于多线程集合T={t0,t1,t2,t3,t4,t5,t6,t7},与图3中的片上网络,按照线程之间的连接关系,分配过程如下:
(1)U1对应于T1,U2对应于T2,则将T1分配到U1,T2分配到U2
(2)根据线程之间的连接关系来对T1在U1和T2在U2进行区域内的线程分配。
对于T1在U1的分配,根据表1,线程t0具有最多的连接,将t0分配到U1区域中具有最多连接的C4上,其余线程具有相同的连接,将t3,t4,t6,t7分别分配到C=C0,C1,C2,C3
对于T2在U2的分配,根据表1,三个线程具有相同的连接,将t1,t2,t5分别分配到C=C5,C7,C8
对于多线程集合T={t0,t1,t2,t3,t4,t5,t6,t7},与图3中的片上网络,通信量如下表所示:
通信量 t0 t1 t2 t3 t4 t5 t6 t7
t0 / 0 0 80 100 0 20 10
t1 0 / 10 0 0 100 0 0
t2 0 10 / 0 0 100 0 0
t3 80 0 0 / 40 0 0 10
t4 100 0 0 40 / 0 100 0
t5 0 100 100 0 0 / 0 0
t6 20 0 0 0 100 0 / 60
t7 10 0 0 10 0 0 60 /
则每个线程的通信总量分别为:
t0:210;
t1:110;
t2:110;
t3;130;
t4:240;
t5:200;
t6:180;
t7:80。
按照线程之间的通信量,分配过程如下:
(1)U1对应于T1,U2对应于T2,则将T1分配到U1,T2分配到U2
(2)根据线程之间的通信量来对T1在U1和T2在U2进行区域内的线程分配。
对于T1,按照通信量大小,t4的通信量最大,将t4分配到具有最多连接的C4上,然后将与t4具有最大通信量的t0和t6分别分配到C1和C3,然后将t3分配到C0,最后将t7分配到C6;对于T2,首先将通信量最大的t5分配到C8,2个线程具有相同的连接,将t1,t2分别分配到C=C5和C7
以上说述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,任何不超过本发明实质精神范围的发明创造、修改,均落入本发明的保护范围。

Claims (3)

1.一种面向片上网络的多线程调度实现方法,其特征在于,包括如下步骤:
建立多线程模型,包括包含所有线程的多线程集合T,各线程间是否存在通信关系的线程通信关系集合,以及与各线程存在通信关系的任务数量集合;
建立片上网络拓扑模型,包括处理器核的集合和各处理器核之间通路的集合;
对多线程集合T按通信关系进行划分,其中划分后的分属于不同集合中的任务间不存在通信关系;
对片上网络进行分区:提取任务数小于或等于处理器核数的线程来构成新线程集合,将片上网络划分为u个区域,其中u为所述新线程集合所包含的线程数,所述片上网络的u个区域分别与u个线程相对应且分别包含了线程中任务数相同的处理器核;
将多线程分配到片上网络:将新线程集合中的u个线程按对应关系分别分配到u个区域,完成多线程集合的调度。
2.根据权利要求1所述的面向片上网络的多线程调度实现方法,其特征在于,还包括:在将所述新线程集合中的u个线程分配到对应区域上之后,再将所述线程分配到处理器核上。
3.根据权利要求2所述的面向片上网络的多线程调度实现方法,其特征在于,所述网络拓扑模型还包括:
从一处理器核到另一处理器核所经过的片上网络路由器的数量;
一处理器核在所有方向直接连接的其它处理器核的数量;
与一处理器核具有直接连接的其它处理器核的集合。
CN201410087648.7A 2014-03-11 2014-03-11 一种面向片上网络的多线程调度实现方法 Active CN103838631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410087648.7A CN103838631B (zh) 2014-03-11 2014-03-11 一种面向片上网络的多线程调度实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410087648.7A CN103838631B (zh) 2014-03-11 2014-03-11 一种面向片上网络的多线程调度实现方法

Publications (2)

Publication Number Publication Date
CN103838631A CN103838631A (zh) 2014-06-04
CN103838631B true CN103838631B (zh) 2017-04-19

Family

ID=50802162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410087648.7A Active CN103838631B (zh) 2014-03-11 2014-03-11 一种面向片上网络的多线程调度实现方法

Country Status (1)

Country Link
CN (1) CN103838631B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933663B (zh) * 2017-03-07 2019-07-23 武汉科技大学 一种面向众核系统的多线程调度方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556534A (zh) * 2009-04-21 2009-10-14 浪潮电子信息产业股份有限公司 一种众核结构的大规模数据并行计算方法
CN102193779A (zh) * 2011-05-16 2011-09-21 武汉科技大学 一种面向MPSoC的多线程调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020163B2 (en) * 2003-06-02 2011-09-13 Interuniversitair Microelektronica Centrum (Imec) Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
US20070150895A1 (en) * 2005-12-06 2007-06-28 Kurland Aaron S Methods and apparatus for multi-core processing with dedicated thread management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556534A (zh) * 2009-04-21 2009-10-14 浪潮电子信息产业股份有限公司 一种众核结构的大规模数据并行计算方法
CN102193779A (zh) * 2011-05-16 2011-09-21 武汉科技大学 一种面向MPSoC的多线程调度方法

Also Published As

Publication number Publication date
CN103838631A (zh) 2014-06-04

Similar Documents

Publication Publication Date Title
CN107066319B (zh) 一种面向异构资源的多维调度系统
US9584430B2 (en) Traffic scheduling device
CN105468435A (zh) Nfv动态资源分配方法
US8949847B2 (en) Apparatus and method for managing resources in cluster computing environment
WO2017080391A1 (zh) 一种网络服务部署方法和装置
CN103763174B (zh) 一种基于功能块的虚拟网络映射方法
CN105915470A (zh) 一种基于Linux流量控制的弹性带宽配置方法
CN104935628A (zh) 一种在多个数据中心之间迁移多个关联虚拟机的方法
Zhang et al. The real-time scheduling strategy based on traffic and load balancing in storm
WO2024021489A1 (zh) 一种任务调度方法、装置及Kubernetes调度器
Triviño et al. Virtualizing network-on-chip resources in chip-multiprocessors
CN104331332A (zh) 一种基于sla的虚拟资源预分配算法
CN115134371A (zh) 包含边缘网络算力资源的调度方法、系统、设备及介质
CN102104542A (zh) 转发和控制分离网络件架构下实现业务集群路由器的方法
CN104506669A (zh) 一种面向分布式网络仿真平台的ip地址分配系统及方法
CN106502790A (zh) 一种基于数据分布的任务分配优化方法
WO2020108337A1 (zh) 一种cpu资源调度方法及电子设备
CN105843995A (zh) 一种基于模型驱动的ima系统时间资源配置验证方法
CN105045761B (zh) 一种数据中心的高速并行处理架构
CN105049499B (zh) 一种基于多立方体映射的网络功能虚拟化资源分配方法
CN103838631B (zh) 一种面向片上网络的多线程调度实现方法
CN103684881B (zh) 一种网络建模方法及装置
Yang et al. Joint optimization of mapreduce scheduling and network policy in hierarchical clouds
CN107408058A (zh) 一种虚拟资源的部署方法、装置及系统
CN205071038U (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191220

Address after: 313000 1-C, building 1, No. 656, Qixing Road, high tech Zone, Wuxing District, Huzhou City, Zhejiang Province

Patentee after: Huzhou xinbeilian Network Technology Co., Ltd

Address before: 430081 No. 947 Heping Avenue, Hubei, Wuhan

Patentee before: Wuhan University of Science and Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201119

Address after: Room 310, building 2, Dongfang Weiye Plaza, Runzhou District, Zhenjiang City, Jiangsu Province, 212000

Patentee after: Jiangsu runyun Digital Technology Co., Ltd

Address before: 313000 1-C, building 1, No. 656, Qixing Road, high tech Zone, Wuxing District, Huzhou City, Zhejiang Province

Patentee before: Huzhou xinbeilian Network Technology Co.,Ltd.

TR01 Transfer of patent right