一种利用数据拓扑信息的优先级分组调度方法及系统技术方案

技术编号:14627881 阅读:82 留言:0更新日期:2017-02-12 18:21
本发明专利技术公开一种利用数据拓扑信息的优先级分组调度方法及系统,该方法包括:获取数据拓扑信息的原始网格空间,设置原始网格空间的网格片的尺寸与浮点精度,生成新网格空间;根据新网格空间和并行区的stencil格式,构建紧缩任务图(四维时空域),计算其中每个任务的优先级分组编号;获取当前任务所访问的数据片,并通过格式抽象或函数指针与实参的形式来决定是否涉及邻居数据依赖,并生成相应标记,根据标记识别出涉及邻居数据依赖的循环,这种循环为有效时间步,根据当前有效时间步把循环上的任务映射到紧缩任务图的某个任务,根据后者的优先级编号计算当前任务的优先级编号,支持任务的优先级分组调度。

【技术实现步骤摘要】

本专利技术涉及计算机及用户级的任务调度领域,特别涉及一种利用数据拓扑信息的优先级分组调度方法及系统
技术介绍
现代的微处理器结构中存在难以逾越的内存墙,如何优化程序中的数据局部性,提高其在处理器上的缓存性能,是应用优化的重要课题。结构网格方法的背景如下:在热扩散、电磁场和流体力学等领域中存在着大量的非线性方程求解,仅有极少数问题可以得到解析解或者摄动解,结构网格方法是解决这类问题的最重要的数值方法之一,其典型步骤为:离散化求解域,将连续的求解域化为有限的离散点集,比如固定的等距网格或自适应的结构网格,然后用差商代替微商,在求解域内求出网格节点的离散解,通过一定迭代步数使得差分方程的解收敛于微分方法的解。在结构(离散)网格中每个点进行的差分计算,常常需要邻近的一些点的值,这一类的计算被称为Stencil计算,Stencil计算是结构网格应用的核心,也是世界公认的7类高性能计算模式之一。相关技术1:用Timeskewing方法优化stencil计算中的数据重用,如图1所示:结构网格应用的计算访存比很低,如何优化cache的利用率成为提高这类程序在多核系统上性能的关键之一,学术界提出了各种Timeskewing的优化算法,以同时优化并行性和数据局部性,其主要思想是,对stencil计算的迭代步和空间网格组成的多维空间进行倾斜的分块——把原来很长的数据重用降低到分块内部,然后确定这些分块之间的依赖关系,实现一种准静态的任务调度,Timeskewing优化的本质是把外层的时间迭代循环与内部的空间网格的遍历计算进行统一的考虑,实施复杂的循环变换。Timeskewing方法需要把最外层的时间循环变换到内层才能实施,对于复杂应用而言实施的难度很高,甚至是不可实施的。适应性网格方法就是这样一种应用类型,该方法是求解复杂物理问题的一种有效方法,它根据误差动态地决定在每个时间点或者空间点是否需要适应性加密,以提高求解精度。首先,这类方法在实现上非常复杂——必须基于成熟的领域编程框架来进行应用开发,数据结构变得复杂而不再是简单的数组,计算步骤也出现C/Fortran混杂的情况,这导致编译很难对整个网格空间和各个计算步骤之间进行静态的依赖分析,从而无法实现timeskewing。第二,由于网格划分的动态性,网格点的邻居是不能静态确定的,这也限制了timeskewing优化的实施。相关技术2:任务并行和任务调度中的调度优化,如图2(图2中的英文描述对应的是choleskey分解中的四个基本操作,在代码实现中是调用的高性能数学库的库函数)、图3所示:任务并行编程模型是近年多核平台上广泛研究和使用的并行编程模型,旨在简化并行编程和提高多核利用率,产业界和学术界研发了很多这类的并行编程接口,比如有Cilk/Cilk++、OpenMP3.0、X10、Habanero-Java、TBB、TPL等,用这种接口写的程序,程序中的任务会形成一棵派生树,也即一个有向无环图,其运行时系统负责任务调度,每个核对应一个物理线程,每个物理线程会执行许多逻辑任务,这种在用户态空间进行的任务调度大大降低调度的开销,从而提高多线程程序的执行效率,运行时系统采用任务窃取调度算法,获得负载平衡,提高多核的使用效率。在提高任务调度中的数据局部性方面,UmutA.Acar,GuyE.Blelloch,RobertD.Blumofe.TheDataLocalityofWorkStealing.ACMSymposiumonParallelAlgorithmsandArchitectures.ProceedingsofthetwelfthannualACMsymposiumofParallelalgorithmsandarchitectures.Jul.2000,BarHarbor,Maine,UnitedStates.pp.1-12提出了计算和任务亲和的机制,并被一些实际的任务调度系统所采纳,这种方法对网格应用的优化更多地体现在集群的节点间存储优化上,对于cache的优化效果并不显著。优先级调度也是一种常见的调度优化,但是它一般被用于那些关键路径明显比其他路径更长的任务图,改善任务的负载平衡。比如图2展示的是基于分块结构的choleskey分解的任务图,其中蓝黑色的dpotrf是关键任务,需要给予更高的优先级。但是很多应用的任务图中并不存在明显的关键任务,比如结构网格应用的任务图一般呈现出图3的样子,各个任务之间耦合紧密,各个有向路径几乎都是一样长的,并不存在某个特别长的关键路径。(这里,任务的颜色表示其在哪个线程上执行。)目前没有人发现,优先级分组调度能用于改善结构网格应用的任务调度性能。
技术实现思路
本专利技术针对的是结构网格应用,目的是在传统的任务调度机制之上,通过语用户接口和调度系统的协同,实现一种利用数据拓扑信息的优先级分组调度方法及系统。本专利技术提出一种利用数据拓扑信息的优先级分组调度方法,包括:步骤1,获取所述数据拓扑信息的原始网格空间,设置所述原始网格空间的网格片的尺寸与浮点精度,生成新网格空间;步骤2,根据新网格空间和并行区的stencil格式,构建紧缩任务图,计算所述紧缩任务图中每个任务的优先级分组编号,其中优先级计算规则为:按照行优先的顺序给各个数据片分配初始优先级编号;所述紧缩任务图上拓扑第一层任务的优先级编号为其访问的各个数据片所对应优先级编号的最大值;其他任务的优先级编号是各个依赖边的依赖源任务的优先级编号的最大值;步骤3,获取当前任务所访问的数据片,并通过格式抽象或函数指针与实参的形式来决定是否涉及邻居数据依赖,并生成相应标记;根据所述标记,识别出涉及邻居数据依赖的循环,所述循环为有效时间步;根据所述有效时间步和任务的空间坐标,把当前任务映射到紧缩任务图上的某个任务,根据后者的优先级编号计算当前任务的优先级编号。所述的利用数据拓扑信息的优先级分组调度方法,所述步骤1中每个数据片具有唯一的网格空间坐标。所述的利用数据拓扑信息的优先级分组调度方法,所述步骤2与所述步骤3之间还包括根据每个任务所访问的数据片的空间位置,获取所述任务在所述新网格空间中的坐标。所述的利用数据拓扑信息的优先级分组调度方法,所述步骤2还包括分组的约束包括数据足迹要小于最后一级cache的尺寸的一半;每个分组内的数据重用度大于预设阈值。所述的利用数据拓扑信息的优先级分组调度方法,还包括把每个任务亲和到固定线程,从而把每个分组的任务均匀地分散到各个线程,把任务调度有效约束在当前分组内执行。本专利技术还提出一种利用数据拓扑信息的优先级分组调度系统,包括:生成新网格空间模块,用于获取所述数据拓扑信息的原始网格空间,设置所述原始网格空间的网格片的尺寸与浮点精度,生成新网格空间;紧缩任务图的优先级分组模块,根据新网格空间和并行区的stencil格式,构建紧缩任务图,确定紧缩任务图的分组宽度;所述紧缩任务图上任务的优先级计算规则为:按照行优先的顺序给各个数据片分配初始优先级;所本文档来自技高网
...

【技术保护点】
一种利用数据拓扑信息的优先级分组调度方法,其特征在于,包括:步骤1,获取所述数据拓扑信息的原始网格空间,设置所述原始网格空间的网格片的尺寸与浮点精度,生成新网格空间;步骤2,根据新网格空间和并行区的stencil格式,构建紧缩任务图,计算所述紧缩任务图中每个任务的优先级分组编号,其中优先级计算规则为:按照行优先的顺序给各个数据片分配初始优先级编号;所述紧缩任务图上拓扑第一层任务的优先级编号为其访问的各个数据片所对应优先级编号的最大值;其他任务的优先级编号是各个依赖边的依赖源任务的优先级编号的最大值;步骤3,获取当前任务所访问的数据片,并通过格式抽象或函数指针与实参的形式来决定是否涉及邻居数据依赖,并生成相应标记;根据所述标记,识别出涉及邻居数据依赖的循环,所述循环为有效时间步;根据所述有效时间步和任务的空间坐标,把当前任务映射到紧缩任务图上的某个任务,根据后者的优先级编号计算当前任务的优先级编号。

【技术特征摘要】
1.一种利用数据拓扑信息的优先级分组调度方法,其特征在于,包括:
步骤1,获取所述数据拓扑信息的原始网格空间,设置所述原始网格空间
的网格片的尺寸与浮点精度,生成新网格空间;
步骤2,根据新网格空间和并行区的stencil格式,构建紧缩任务图,计
算所述紧缩任务图中每个任务的优先级分组编号,其中优先级计算规则为:按
照行优先的顺序给各个数据片分配初始优先级编号;所述紧缩任务图上拓扑第
一层任务的优先级编号为其访问的各个数据片所对应优先级编号的最大值;其
他任务的优先级编号是各个依赖边的依赖源任务的优先级编号的最大值;
步骤3,获取当前任务所访问的数据片,并通过格式抽象或函数指针与实
参的形式来决定是否涉及邻居数据依赖,并生成相应标记;根据所述标记,识
别出涉及邻居数据依赖的循环,所述循环为有效时间步;根据所述有效时间步
和任务的空间坐标,把当前任务映射到紧缩任务图上的某个任务,根据后者的
优先级编号计算当前任务的优先级编号。
2.如权利要求1所述的利用数据拓扑信息的优先级分组调度方法,其特征
在于,所述步骤1中每个数据片具有唯一的网格空间坐标。
3.如权利要求1所述的利用数据拓扑信息的优先级分组调度方法,其特征
在于,所述步骤2与所述步骤3之间还包括根据每个任务所访问的数据片的空
间位置,获取所述任务在所述新网格空间中的坐标。
4.如权利要求1所述的利用数据拓扑信息的优先级分组调度方法,其特征
在于,所述步骤2还包括分组的约束包括数据足迹要小于最后一级cache的尺
寸的一半;每个分组内的数据重用度大于预设阈值。
5.如权利要求1所述的利用数据拓扑信息的优先级分组调度方法,其特征
在于,还包括把每个任务亲和到固定线程,从而把每个分组的任务均匀地分散
到各个线程,把任务调度有效约束在当前分组内执行。
6.一种利用数据拓扑信息的优先级分组调度...

【专利技术属性】
技术研发人员:陈莉韩冬妮侯雄辉
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1