一种利用数据拓扑信息的优先级分组调度方法及系统的制作方法_2

文档序号:9765845阅读:来源:国知局
所述的利用数据拓扑信息的优先级分组调度系统,分组的约束包括数据足迹要小 于最后一级cache的尺寸的一半;每个分组内的数据重用度大于预设阔值。
[0029] 所述的利用数据拓扑信息的优先级分组调度系统,还包括亲和性分配模块,用于 把每个任务亲和到固定线程,从而把每个分组的任务均匀地分散到各个线程,把任务调度 有效约束在当前分组内执行。
[0030] 由W上方案可知,本发明的优点在于:
[0031] 技术效果包括两个部分,其一是支持任务到四维时空域(紧缩任务图)的自动映 射;其二是支持优先级分组调度,且分组内部、相邻分组之间实现对共享缓存的重用。
[0032] 1.提供一组用户接口,支持任务图到四维时空域(紧缩任务图)的自动映射,且不 受程序复杂程度的限制。运组用户接口如表1所述:
[0033] 表1.新的一组用户接口
[0035] 本技术点带来有益效果的原因:1)根据用户提供的信息,调度系统能实现任务到 四维时空域(紧缩任务图)的映射。用户负责划分任务、描述任务的数据访问信息。任务到四 维时空域的映射中的最大难点是一一邻居依赖的表达,由于我们提供了最通用的函数指针 的描述方式,运个难点得W克服;2)本工作属于调度系统的优化,可W适应任意复杂的结构 网格应用。
[0036] 2.利用用户的指导信息,调度系统能自动选择一个好的分组形状、数据亲和方式、 优先级分组方式,并优化任务之间的缓存重用、提高应用性能,可W抽象地用表2描述:
[0037] 表2.优先级分组的两个算法(自然剖分算法、平面剖分算法)

[0040]本技术点带来有益效果的原因:1)本发明可W选择出好的分组形状和尺寸,分组 的数据足迹可W用分割面的倾斜投影进行估算,其中要结合网格片的尺寸,对于满足共享 缓存容量的分组尺寸,本发明优选缓存重用度更好的分组尺寸;2)本发明能把调度约束在 一个分组内,本技术点负责确定数据亲和的映射,把同一分组内的任务尽量分散到各个线 程,从而能获得共享缓存上的数据重用;3)分组的时间轴高度与组内的数据重用度相关,本 发明会选重用度更高的分块形状,相邻分组之间的缓存重用则通过分组序号的精屯、分配来 实现。
【附图说明】
[0041 ] 图1为一维问题的多种不同的time skewing方法图;
[0042] 图2为化Olesky分解(5巧)的任务依赖图;
[0043] 图3为网格应用的任务依赖图;
[0044] 图4为一维网格空间下采用自然剖分方式得到的优先级分组图;
[0045] 图5为二维网格空间下,采用平面剖分方式获得的分组图;
[0046] 图6为平面剖分和自然剖分的差别。S角部分在自然剖分中从属于左邻的分组图;
[0047] 图7为本发明整体流程图。
[004引其中附图标记为:
[0049] 步骤 100/101/102/103/104/105。
【具体实施方式】
[0050] 为解决W上技术问题,本发明提出一种利用数据拓扑信息的优先级分组调度方法 及系统。
[0051] W下为本发明的整体步骤,如图7所示:
[0052] 获取所述数据拓扑信息的原始网格空间,设置所述原始网格空间的网格片的尺 寸与浮点精度,生成新网格空间。分片方法对应全局的任务划分,而网格片的尺寸和浮点精 度则用于指导数据足迹的计算,每个分片具有唯一的网格空间坐标;
[0053] 根据新网格空间和并行区的stencil格式,构建紧缩任务图,时间轴向上它只有一 个分组的高度;计算其中每个任务的优先级分组编号,计算规则为:按照行优先的顺序给各 个数据片分配初始优先级;所述紧缩任务图的拓扑第一层任务的优先级为该任务所访问的 各个数据片所对应优先级的最大值;其他任务的优先级编号是该任务的各个依赖源任务的 优先级编号的最大值;
[0054] 获取当前任务所访问的数据片,并通过格式抽象或函数指针与实参的形式来决定 是否设及邻居数据依赖,并生成相应标记;根据所述标记,识别出设及邻居数据依赖的循 环,所述循环为有效时间步;根据所述有效时间步把所述循环上的任务映射到所述紧缩任 务图,根据后者的优先级编号计算当前任务的优先级编号;
[0055] 用户(根据数据片的空间位置)给出任务在所述新网格空间中的网格空间坐标;
[0056] 获取邻居数据依赖。用户指定任务所访问的数据片,并用stencil格式抽象或(函 数指针,实参)的形式表示邻居数据依赖。
[0057] 网格应用中设及邻居数据依赖的有两类计算,一类是stencil计算,一类是近邻数 据交换(可能是同层网格的相邻数据片之间、或者相邻层的对应数据片之间),stencil计算 的格式是固定的,可W静态描述,但是近邻数据交换就不一定了,对于一些复杂的应用,比 如适应性网格应用,每个数据片在相应网格层上存在几个邻居是不确定的,而且数据片是 分离存储的,运时候调度系统无法计算出其近邻数据片,但用户可W提供一个函数指针W 及相应的实参来统计其邻居数据片。
[0058] 调度系统根据数据依赖的标记,识别出设及邻居依赖的循环,称其为有效时间步;
[0059] 在由有效时间步和网格空间组成的四维空间上,根据数据依赖的倾斜情况,进行 基于超平面划分的分组,分组的约束有两个:i)数据足迹要小于最后一级cache的尺寸的一 半;ii)组内的数据重用度要尽量大(大于预设阔值);
[0060] 按照行优先的顺序给各个分组分配优先级,W发掘分组之间的数据重用;
[0061] 调度系统把每个任务亲和到固定线程,从而把每个分组的任务均匀地分散到各个 线程,把任务调度有效约束在当前分组内执行。
[0062] 本发明还提出一种利用数据拓扑信息的优先级分组调度系统,包括:
[0063] 生成新网格空间模块,用于获取所述数据拓扑信息的原始网格空间,设置所述原 始网格空间的网格片的尺寸与浮点精度,生成新网格空间;
[0064] 紧缩任务图的优先级分组模块,根据新网格空间和并行区的stencil格式,构建紧 缩任务图,确定紧缩任务图的分组宽度;所述紧缩任务图上任务的优先级计算规则为:按照 行优先的顺序给各个数据片分配初始优先级;所述紧缩任务图的拓扑第一层任务的优先级 为该任务所访问的各个数据片所对应优先级编号的最大值;紧缩任务图上其他任务的优先 级是运个任务的各个依赖边的依赖源任务的优先级编号的最大值;
[0065] 动态分组模块,用于获取当前任务所访问的数据片,并通过格式抽象或函数指针 与实参的形式来决定是否设及邻居数据依赖,并生成相应标记;根据所述标记,识别出设及 邻居数据依赖的循环,所述循环为有效时间步;根据所述有效时间步把所述循环上的任务 映射到紧缩任务图上的某个任务,根据后者的的优先级编号计算当前任务的优先级编号。
[0066] 所述生成新网格空间模块中每个网格数据片具有唯一的网格空间坐标。
[0067] 获取坐标模块,用于根据当前任务所访问的数据片的空间位置,获取任务在所述 新网格空间中的坐标。
[0068] 分组的约束包括数据足迹要小于最后一级cache的尺寸的一半;每个分组内的数 据重用度大于预设阔值。
[0069] 亲和性分配模块,用于把每个任务亲和到固定线程,从而把每个分组的任务均匀 地分散到各个线程,把任务调度有效约束在当前分组内执行。
[0070] W下为本发明具体步骤,场景:本实施案例中网格空间上的数据是连续存储的,固 定网格;软件:在调度系统的用户接口和内部实现机制上;改进点:提出新的用户接口,提出 优先级分组的自动算法。因为空间网格最多有3维,为方便描述,下面的实施例就只考虑3维 的情况,为方便描述,本实施例假设优先级序号越小、级别越高,如下所示:
[0071 ] Sl在任务并行区开始前增加初始化阶段
[0072] SI. 1描述网格空间的全局分片信息。比如3维网格空间在3个轴向都做划分,划分 可W是均匀的,也可W是不均匀的,均匀的划分给出划分的间距即可,不均匀的划分则要 给出每个分片的形状,调度系统根据W上信息计算出分片后的网格空间。
[0073] SI.2描述每个分片的尺寸信息,W及浮点数据的精度信息。对于均匀的分片,尺寸 是明确的,而对于不均匀的分片,用户可W给出一个平均的分片尺寸,浮点数据的精度则表 示计算采用单精度、双精度或者128位精度。
[0074] SI.3描述该并行区域内的任务并行在哪些轴向有邻居依赖,并行区域内设及的网 格变量的个数。
[0075] SI.4用户选择优先级分组的方式:自然剖分、平面剖分。<
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1