研究文章|开放获取
Ananya Muddukrishna彼得·a·琼森垫Brorsson, ”位置感知的任务调度和数据分布OpenMP NUMA系统上的程序和冲击处理器”,科学的规划, 卷。2015年, 文章的ID981759年, 16 页面, 2015年。 https://doi.org/10.1155/2015/981759
位置感知的任务调度和数据分布OpenMP NUMA系统上的程序和冲击处理器
文摘
性能下降由于非均匀数据访问延迟NUMA系统已经恶化,现在可以感到冲击处理器芯片上。在NUMA节点分配数据和冲击处理器缓存减少非均匀延迟的影响是必要的。然而,技术分布数据容易出错和脆弱,需要低的建筑知识。现有的任务调度策略有利于快速负载平衡为代价的局部性和忽略NUMA节点/冲击缓存访问延迟时调度。位置感知的调度、结合或作为替代现有的调度,有必要减少NUMA效果和维持性能。提出了一种数据分布和位置感知的调度技术,基于任务的OpenMP NUMA系统程序执行和冲击处理器。我们的技术减轻程序员的思维NUMA系统/冲击处理器体系结构细节将通过数据分布到运行时系统和使用任务数据依赖信息来指导OpenMP的调度任务减少数据拖延时间。我们展示我们的技术四承AMD Opteron机八NUMA节点和TILEPro64处理器和识别,数据分布和位置感知的任务调度提高性能科学基准69%相比,默认的政策,但为程序员提供了一个architecture-oblivious方法。
1。介绍
NUMA系统由几个多核处理器连接到本地内存模块。可以访问本地内存速度和更高的带宽比远程内存内的核心处理器。差距本地和远程节点访问成本增加在大小和不均匀性随着NUMA系统生长。现代NUMA系统已达到这样的规模和复杂性,即使是简单的memory-oblivious并行执行,如基于任务的斐波那契程序与工作窃取调度已经开始遭受NUMA效应(1]。小心数据分布是至关重要的性能无论在现代NUMA系统内存占用。
数据分布也需要冲击处理器芯片上,exhibit NUMA影响由于库存共享缓存。核心可以访问他们的本地缓存银行比远程银行。访问遥远的远程缓存银行方法的延迟片外存储器访问延迟。另一个性能的考虑是,缓存一致性冲击处理器是软件可配置(2]。调度应适应远程缓存银行访问延迟,可以改变根据配置。
运行时系统的调度决策是基于任务的程序性能的关键。根据调度策略调度决策,直到现在主要关注load-balancing-distributing计算均匀跨线程。负载平衡是一个简单的决定要求程序员所使用的小任务抽象的信息,有效的多核处理器几代人。
然而,调度策略需要最小化内存访问成本除了NUMA系统负载平衡性能和冲击处理器。严格的负载平衡策略失去性能因为他们忽视数据位置的任务。忽视数据本地化违反复杂的内存子系统的设计原则,支持NUMA系统和冲击处理器。子系统要求调度保持核心运行不间断提供最高的性能,利用数据本地化。
尽管上升的数据分布和调度的重要性,OpenMP-a流行和广泛使用的基于任务的编程paradigm-neither指定数据分布机制的程序员也为NUMA系统提供调度准则和冲击处理器甚至在最新的4.0版本。
当前的数据分布实践NUMA系统要么使用第三方工具和api (3- - - - - -5)或重新OpenMP为来构建分配和数据分发给不同的NUMA节点。第三方工具是很脆弱的,可能并不适用于所有机器和聪明的使用平行的来构造(6)依赖于一个特定的操作系统页面管理政策和要求程序员知道NUMA节点拓扑在目标机器上。
类似的数据分布上都需要努力冲击处理器。例如,程序员可以直接使用系统API TILEPro64分发共享缓存数据银行。没有第三方工具来简化数据分布的努力。另外程序员必须匹配数据分布选择许多配置用于缓存层次结构的性能。
专家程序员仍然可以解决现有的数据分布问题,但即使是专家的过程可以被描述为脆弱和容易出错。普通程序员不设法应付所有的复杂性同时支付性能损失在运行他们的程序,一个点球,可能部分缓解从聪明的缓存由硬件。当前形势将对每个人都变得越来越糟,因为NUMA效应加剧了日益增长的网络直径和增加缓存一致性复杂性(7)不可避免地遵循增加大小的NUMA系统和冲击处理器。
我们提供一个运行时系统辅助数据分布方案,允许程序员来控制数据分布在一个没有迫使他们理解底层的便携时尚系统NUMA系统和冲击处理器的细节。计划依赖于程序员提供高层次的提示在调用数据的粒度分布malloc。项目没有暗示将工作和以前一样的性能,逐渐向项目添加提示可以获得部分的性能好处。我们的运行时系统辅助分配方案需要几乎相同的程序员工作定期调用malloc然而,双打NUMA系统上的一些科学的工作负载的性能。
我们也提出一个位置感知的OpenMP任务的调度算法,减少了内存访问时间利用位置信息获得的数据分布和任务数据从程序员足迹信息。我们在现有的调度器调度算法提高了性能50%测试NUMA系统和88%的项目在我们的测试冲击处理器NUMA降解影响程序性能和仍然是其他项目的竞争。性能的科学programs-blocked矩阵乘法和向量叉product-improves 14%和69%,分别位置感知的调度程序时使用。
本文是我们之前工作的扩展NUMA系统(8和冲击处理器。9]。我们提供了通用的数据分发机制(表1和2)和统一的表示位置感知的调度机制(算法1,2,3NUMA系统和处理器的冲击)。处理器的新实验装置的冲击使L1缓存(部分5.2对于一个更现实的场景。我们在以前的工作隔离残疾L1缓存位置感知的调度效果。我们提供新的测量冲击处理器与一个工作窃取的调度器公共基线(数字9和10)。以前的工作使用一个中央队列调度器的基线的冲击处理器。我们将演示附近的影响大小而窃取任务(图11),这是在以前的工作没有完成。
|
||||||||||||||||||
|
||||||||||||||||||
2。潜在的性能改进
我们从数据分布量化性能提高的一个实验一个eight-NUMA节点系统上进行了有四个AMD Opteron 6172处理器。系统的拓扑结构如图1。的最大距离NUMA系统根据操作系统是22岁,这是一个近似的两个节点之间的最大延迟。NUMA互联系统配置的最大性能平均NUMA 1.19倍(11]。延迟从不同NUMA节点访问4 MB的内存使用BenchIT工具测量图所示2。类似的系统的详细的内存延迟报道Molka et al。12]。
我们执行任务型OpenMP程序使用英特尔的OpenMP实现与两个不同的内存分配策略:第一个策略使用malloc的第一次触球策略,第二个将内存页均匀分布在NUMA节点使用numactl工具(5]。我们使用第一次触球作为malloc的短手与其他地区的第一次触球的政策。我们测量执行时间的每个程序的并行部分和量化的时间等待内存通过计算调度摊位周期包括加载/存储单元摊位周期(13]。
几个程序显示减少执行时间当数据分布在NUMA节点如图3。减少调度摊位周期有助于减少执行时间。性能是保持对所有剩余的项目除了Strassen数据分布。
我们可以解释为什么基准维护或失去与数据分布性能。对齐尺度线性这意味着较低的通信。数据分布不减轻FFT的内存子系统,健康,SparseLU, Strassen基准。执行时间的健康令人惊讶的提高虽然增加了调度摊位周期暗示带宽与数据分布的改进。Strassen从数据分布是一个相反的例子,它的性能会降低。Strassen分配内存里面的任务。分配的内存访问延迟带来高于第一次触球。
我们将演示如何使用位置感知的任务调度与数据分布可以进一步提高性能通过一个实验在TILEPro64冲击处理器。我们解释了实验后引入TILEPro64架构的关键的地方特性。
TILEPro64是64 -核心瓦架构处理器与一个可配置的基于目录的缓存一致性协议和拓扑如图4。加载和存储了从核心由一个特定的L2银行称家缓存。高速缓存线路由家里提供缓存可以有选择地分配在当地L2银行(包容)和L1缓存根据软件配置。商店在瓷砖总是直写式主缓存的存储更新如果线是在L1缓存中找到。高速缓存线路的负荷延迟取决于家庭缓存位置和非均匀,如图5。远程缓存回家花四到六倍的时间来访问比本地缓存。
TILEPro64系统软件还提供了数据分发机制。高速缓存线路在主内存页面可以分布均匀所有缓存缓存或者到一个家。缓存的另外一个分配线可以通过移民改变了在一个高成本(14]。数据分布对性能的影响在TILEPro64 NUMA系统相似。内存分配通过malloc均匀分布到所有缓存。
现在我们解释我们的实验演示位置感知的调度效率。考虑地图(15)——常见的并行模式如清单所示1。任务操作在不同的块中的数据映射模式。我们执行地图程序使用两种不同的策略。缓存数据是均匀地分布到所有家庭和工作窃取调度用于将任务分配给空闲的核心策略。数据分布per-allocation单独回家缓存和位置感知的调度是用于将任务分配给核心,本地家庭缓存提供的数据在第二个策略。
|
||||||||||||||||||||||
顶部和底部的第一列图表图10显示地图程序两种策略下的性能,分别。第二种策略优于前者。位置感知的调度下任务执行得更快因为数据提供的本地缓存。有选择地分配家里缓存来缓存线而非均匀分布有利于位置感知的调度。任务绩效受到非均匀家里缓存访问延迟由于统一的数据分布和工作窃取调度。
我们得出结论,管理费用从内存访问延迟OpenMP项目非常重要。适当的选择的数据分布和调度的性能是至关重要的。我们的目标是提供简单的和便携式的抽象,最小化内存访问开销通过执行数据分布,使调度,可以利用数据分布所产生的位置。
3所示。运行时系统辅助数据分布
运行时系统辅助数据分布是一个机制来提高性能的可移植性。处理特定的操作系统和硬件的细节可以委托给一个特定于体系结构的运行时系统程序执行的全局视图。
我们提出一个内存分配和分布机制由一个简单的数据分布策略,控制选择的程序员。分配政策的选择是故意保持简单的只有几个选择为了提供可预测的行为和对程序员是容易理解的,就像定义流程绑定提示OpenMP。有两个程序员可用不同的政策,如表所示1。单位和位置抽象策略描述解释在表中使用2。
我们将演示如何将数据分布策略并提出初步的接口工作策略选择使用一个示例程序清单2。程序使内存分配请求a e跨八单元的内存。请求A和B使用提出的接口调用omp_malloc类似是谁的签名malloc。用户选择的数据分布策略提出请求A和B通过设置环境变量称为OMP_DATA_DISTRIBUTION之一标准,很好,或粗程序调用之前。的标准数据分布策略选择是指机器default-first-touch TILEPro64 NUMA系统和均匀分布。内存要求使用omp_malloc分发到不同的位置是基于全球数据分布策略选择。请求汉英使用omp_malloc_specific——扩展的omp_malloc——覆盖全球政策和分配具体。机级别政策行动的结果如图所示6。
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
我们提供启发式在表3协助数据分布策略的选择。启发式是基于数据分配的数量malloc在原来的计划和任务操作这些分配的数量。项目与许多任务和一个malloc调用将受益于使用罚款政策因为核问题多个未完成请求到不同的节点/ home缓存。项目与单个任务和许多malloc调用可以使用粗政策提高带宽自记忆可能会从不同的网络链接。项目与许多malloc调用和操作分配数据的许多任务与粗政策可能会提高性能,由于减少了网络争用孤立地假设任务分配工作。
|
|||||||||||||||||||||||||||
我们已经建立了运行时系统协助分配方案使用现成的support-libnuma TILEPro64 NUMA系统和特殊配置接口。分配方案的开销很低因为我们实现包装系统API和一些额外的簿记指令。簿记指令跟踪循环节点选择计数器的粗分配政策和缓存位置关联的数据请求时部分中描述的位置感知的调度策略4。
程序员不需要担心NUMA节点缓存/家庭标识符和拓扑以使用我们的数据分布方案。分布策略的选择是保持简单的只有那些容易预测的选择和理解的程序员。程序员也可以增量分发数据,针对特定内存分配的网站。我们还提供精确控制专家程序员在我们的实现允许他们覆盖全球数据分布策略和请求细或粗数据分布为一个特定的分配。我们实现了两个简单的分配政策来演示我们的数据分布方案的潜力。运行时系统开发人员可以使用我们的方案的可扩展性提供更先进的分销政策是插件。程序员可以了解分销策略的方式类似于现有的教育为OpenMP规范内循环调度策略。
4所示。位置感知的任务调度
我们的实现位置感知的调度目标,进一步利用数据分布的性能优势。背后的主要思想我们的位置感知的调度程序调度任务最小化内存访问延迟。位置感知的调度程序使用一个特定于体系结构的任务队列组织和位置感知的决策在work-dealing和工作窃取。Work-dealing指行动的任务创建线程空闲的时候和工作窃取行动。
了解数据占用的任务调度器的关键我们预计数据足迹信息来自程序员通过任务定义条款OpenMP规范中尚不存在。我们目前估计每个任务的数据足迹通过提供的信息依赖OpenMP 4.0规范的条款。估计是脆弱当程序员指定一个不完整的条款取决于足够的调度决策但低估数据足迹。限制是可以克服的,如果程序员使用少量付出表达结构如array-sections表达很大一部分取决于数据占用的条款,以换取性能的改善。
位置感知的调度器任务队列绑定到建筑位置,可以分布式数据。有一个任务队列每NUMA节点在NUMA系统和家庭TILEPro64缓存。任务被添加在前面和移除的任务队列。每个核心调度程序绑定一个线程。
4.1。NUMA系统
我们描述了work-dealing算法的位置感知的调度算法1。调度器交易任务在任务创建的节点队列拥有最少的总内存访问延迟的页面不是最后一级缓存(LLC)。个人访问延迟计算加权NUMA节点距离node-wise分布数据的足迹的任务。
NUMA节点距离从操作系统获取表由调度程序缓存性能的原因。分布计算使用页面缓存的位置信息数据分发机制。访问成本计算的复杂性在哪里NUMA系统中节点的数量,通常是一个小数目。
任务时立即添加到本地队列调度成本大于性能优势决定由两个阈值。第一个阈值,确保任务有一个工作集大小超过LLC大小/核心。第二阈值,确保不会浪费在调度工作任务与一个完美的数据分布。
分布式任务队列可能导致load-imbalance和在我们的经验中受益于负载平衡性能往往胜过那些来自当地。因此,我们已经实现了一个工作窃取算法来平衡负载。偷仍优于虽然空闲线程用于处理任务的周期都是被浪费掉的。
我们展示了偷算法的调度算法2。线程试图窃取当没有在本地队列工作。候选队列抢断排名是基于NUMA节点的距离。算法包括一个阈值从而防止任务从被盗近空任务线程的队列将招致进一步的抢断受害者节点。有一个指数退下偷尝试时无法找到工作。
4.2。冲击处理器。
我们描述了work-dealing算法的位置感知的调度算法3。调度器交易至少家里缓存队列有一个任务总内存访问延迟的高速缓存线路不是私人L1缓存。个人访问延迟计算加权家里home-cache分布缓存访问延迟数据的足迹的任务。家缓存访问延迟计算了基准测试互连在运行时系统初始化。调度器可以避免重新计算通过保存在运行延迟。分布计算使用家里缓存位置信息由数据分布缓存机制。访问成本计算的复杂性在哪里是家里的数量缓存系统中。
任务是立即添加到本地队列如果调度成本大于性能优势。算法忽略了分配政策可能分发数据精细到所有缓存(条件)。只有任务工作集超过L1缓存数据分析(条件)。
另一个条件,存在一个最小化调度工作通过使用程序员的信息访问列表中的数据依赖性T.depend_list强度。该指数表示最强烈的依赖列表中访问数据。调度器队列任务强度信息包含密集的队列与国内相关缓存访问依赖。注意,我们依靠一个自定义的条款表明强度自现有任务定义条款OpenMP不支持这个概念。
我们实现了一个工作窃取任务队列的负载平衡算法。队列分成固定大小的燕国和空闲线程可以窃取任务从队列在同一个附近。Cross-vicinity抢断是禁止的。另外线程退出时无法找到工作。选择附近的大小由程序员之前执行。我们允许附近大小的1、4、8、16和63块在我们的实现中瓷砖集团在图所示4。附近大小为1只包括线程的任务队列成员;附近大小为63包括所有线程的任务队列。
5。实验装置
我们评估数据分布援助和位置感知的调度使用基准测试中描述表4。使用米尔执行基准测试,我们已经开发出的基于任务的运行时系统库。米尔支持OpenMP相关任务模型,并提供了挂钩添加自定义调度和数据分布策略,使我们能够比较不同政策在同一个系统。我们设定评价标准直接使用运行时系统接口自米尔目前没有source-to-source翻译前端。
|
|||||||||||||||||||||||||||||||||||||||||||||
我们每个基准隔离所有20倍有效调度和数据分布策略的组合。我们记录的执行时间收集的关键路径并行部分和执行跟踪和性能计数器数据一组额外的运行进行详细分析。
我们使用一个工作窃取调度器作为比较的基准位置感知的调度器。工作窃取调度器结合每个核心和一个线程使用一个任务队列/核心。任务队列是无锁出列追逐和列弗(16]。队列的实现是一个适应从格拉斯哥Haskell编译器版本7.8.3运行时系统。每个线程将新创建的任务添加到自己的任务队列。线程找工作在自己的任务队列的第一个。与空任务线程队列选择循环的方式窃取受害者。排队和窃取工作窃取调度器的决策都是迅速,但可能导致高端内存延迟任务执行期间由于调度是无视数据局部性和NUMA节点/远程缓存访问延迟。
5.1。NUMA系统
我们使用了Opteron 6172处理器eight-NUMA节点系统中描述部分2进行评估。运行时系统和基准测试都使用英特尔C编译器编译与o3 v13.1.1优化。我们使用每个核循环计数器和分派摊位循环计数器,分别测量任务的执行时间和内存访问延迟。
5.2。冲击处理器。
运行时系统和基准测试都使用Tilera公司与o3 GNU编译器编译优化。我们使用整数版本的评估基准排除缓慢software-emulated浮点操作的影响。基准输入选择最小化片外存储器存取。我们还的不利影响最小化驱逐当地家庭记忆通过禁用缓存条目L2(包容)缓存。我们使用每个核循环计数器和数据缓存摊位循环计数器,分别测量任务的执行时间和内存访问延迟。
位置感知的调度程序避免长家缓存访问延迟。L1缓存也减轻了长家缓存访问延迟的影响。我们分离的影响位置感知的调度通过禁用L1缓存在以前的工作9),但启用L1缓存当前设置为一个更现实的场景。
6。结果
我们展示的评价基准组合的性能数据分布和调度策略eight-node皓龙处理器系统图7。优良的分布是一个可行的替代numactl以来工作窃取调度程序的执行时间与page-wise使用numactl交错。性能降低分销政策违反了准则时在桌子上3工作窃取和位置感知的调度器。例如,Matmul降解性能好分配政策时使用。位置感知的调度程序加上适当的数据分布改善或保持性能相比工作窃取调度程序为每个基准。
我们使用线程的时间地图和Matmul图8说明减少内存页面访问时间最主要的原因是工作窃取任务执行时间的差异和位置感知的调度器。
线程线程时间表显示时间的不同状态和状态转换事件。线程上所示设在、时间的显示设在,和内存访问延迟设在。的设在表示使用线性绿色蓝色梯度编码内存访问延迟测量状态转换边界。绿色代表低内存访问延迟和蓝色代表更高。除了任务执行,我们过滤掉所有线程状态。时间的基准时间一致(相同设在跨度)和梯度对齐(相同设在跨度)。时间是另外放大关注任务执行和省略运行时系统初始化活动。
了解基准结构也是必要解释性能差异。基准尺度地图中的每个任务列表中的一个单独的向量。粗分布地方所有给定向量在单个节点的内存页面而细页均匀扩散到所有节点分布。
位置感知的调度程序结合粗分配最小化节点访问延迟通过确保每个任务访问其独立的向量从本地节点。这种行为可以被低内存访问延迟确认如图8(浅绿色)。工作窃取调度器与粗糙的分布失去性能由于增加远程内存访问延迟显示的内存访问延迟较高(黑暗的绿色和蓝色)。
我们也可以解释性能情况下违反准则的使用时间。精细分布的位置感知的调度程序检测到页面是均匀地分布在各个节点和相同的本地队列中的所有任务的地方。不平衡不能完全恢复由于偷了限制。工作窃取调度器和分布相比更有效地平衡负载。
Matmul基准更新块中的每一个任务的输出矩阵使用连锁块从两个输入矩阵。粗分布地方所有内存页的一个给定的块在单个节点而细页均匀扩散到所有节点分布。内存页感动任务位于粗和细分布在不同的节点上。精细分布的位置感知的调度程序检测到均匀分布和落回到工作窃取的数据在本地队列中排队任务。任务执行一个长时间调度器的类似内存访问延迟(类似强度的绿色和蓝色)。然而,与粗分布利用位置感知的调度程序局部性因分配块循环所表示的相对较低的内存访问延迟(绿色和蓝色的轻强度)相比,工作窃取调度器。
我们展示的性能评价指标的数据分布和调度策略的组合TILEPro64处理器在图9。结果类似于eight-node皓龙处理器系统。性能降低时选择分销策略对启发式准则表3工作窃取和位置感知的调度器。位置感知的调度程序加上适当的数据分布改善或保持性能相比工作窃取调度程序为每个基准。位置感知的调度性能也是敏感附近大小。
SparseLU是一个相反的例子,它的性能会降低heuristic-guided粗分布和工作窃取调度。性能也保持着与粗和细分布NUMA系统。SparseLU任务有复杂的数据访问模式,需要更先进的比细和粗数据分布方案。
减少使用一个单一的分配内存malloc调用。粗糙的分布是一个糟糕的选择,因为所有的高速缓存线路分配在一个缓存。位置感知的调度序列化执行调度任务的核心与单一缓存。偷大燕国平衡负载赢回性能。
线程的时间地图和Vecmul图10确认减少高速缓存线路访问时间最主要的原因是减少任务执行时间。工作窃取调度器失去性能被无视当地尽管平衡负载均匀。
我们可以解释附近灵敏度为地图和Vecmul基准图使用时间11。增加附近地图大小增加被盗的风险任务线程的缓存。偷来的任务体验大型和非均匀高速缓存线路访问延迟长蓝色酒吧所示。从自己的队列线程足够快接任务完成执行得更快。大附近大小促进Vecmul更好的负载平衡和提高性能。
位置感知的调度程序作为默认调度器可以安全地用于所有工作负载性能下降。有性能优势利用位置感知的调度程序与数据分布工作负载提供强有力的位置。位置感知的调度器落回类似工作窃取负载均衡调度器进行工作负载不改善与数据分布的位置。
7所示。相关工作
无数的方法如何分配数据编程NUMA系统已经在文献中提出。我们最近讨论的建议方法。
黄等。17]提出扩展OpenMP分发地点的数据在一个抽象的概念。初次分配方案是基于块的分布类似于我们的粗计划。数据分布的计划允许精确控制,但依赖于编译器支持,另外需要改变OpenMP规范。位置提供细粒度的控制数据分布的编程工作。
米纳斯框架(4)包含了一个复杂的数据分布API使精确控制内存页面在哪里结束。所使用的API的目的是成为一个自动代码转换在米纳斯使用分析信息寻找最好的分布对于一个给定的项目。精确控制是强大,但需要专家程序员能够编写代码,将决定所需的分布。
主要和总18)使用细粒度的数据分布API来分配内存页。执行分析用于数据访问模式的循环和用于指导代码转换和数据分布。数据分布之间的循环迭代执行,保证每个循环迭代在本地访问内存页。
运行时跟踪技术,提供自动页面迁移基于硬件监控通过性能计数器有同样的最终目标是:提供良好的性能和较低的编程工作。Nikolopoulos et al。19]首创页面迁移用户级的概念框架。页面访问背景和追踪热页面访问节点迁移靠近。Terboven et al。20.)提出了一个动态页面最后迁移在Linux上实现。页面迁移的另一种方法,这是昂贵的,相反,是将线程一个想法利用Broquedis et al。21)在一个框架决定迁移线程和数据是基于信息线程懒惰,可用节点内存和硬件性能计数器。家乐福是一个Linux内核的修改,目标交通拥堵NUMA系统通过交通管理页面复制和迁移(22]。这种方法的一个优点是,性能会提高,而无需修改应用程序。
动态页面迁移从程序员不需要努力,这是把双刃剑。得到良好的性能没有任何工作的好处是显而易见的,但当程序员的经历糟糕的性能很难分析问题的根源。性能也会受到输入变化的影响。尝试减少页面迁移的成本通过提供本地内核支持给有前景的结果对大型矩阵(矩阵乘法23]。
位置感知的调度的OpenMP已经被广泛的研究。我们专注于其他任务型方法由于我们的方法是基于任务。
位置域程序员手动地方任务提出了抽象的垃圾箱(1,24]。任务计划在其所在地领域减少远程内存访问。MTS [25)是一种调度策略机器的插座层次结构。MTS使用一个任务队列/套接字类似于我们的任务队列/ NUMA节点。每个套接字只有一个空闲的核心是允许窃取其他插座的大部分工作。魅力+ +使用NUMA拓扑信息和任务之间的通信信息,减少沟通成本任务(26]。陈等人。27)减少缓存污染性能下降和窃取任务在套接字multisocket系统内存访问了解任务图分区。
孟菲斯使用硬件监控技术,并提供方法来解决NUMA问题一般类的OpenMP计算(7]。监控横梁(QPI)相关和LLC缓存小姐相关的性能计数器是用来衡量网络活动。孟菲斯提供诊断为销线程时,程序员分配内存,并保持整个执行计算一致的形状。他们的建议,激发了我们的位置感知的调度程序和评价方法的设计。
刘和Mellor-Crummey [28)添加详细的NUMA HPCToolkit性能测量和数据分布指导能力。他们几个案例研究报告,粗(基于块)分布对违约政策提高了性能。multiarchitecture工具是一个很好的起点实现先进的数据分布策略。
Schmidl等人提出的关键词散射和紧凑指导线程放置使用SLIT-like距离矩阵(29日]。我们的名字的数据分布,细和粗,直接受他们的工作。
任务和数据关联机制讨论我们的工作由大量的研究极大地激发了NUMA OpenMP运行时系统的优化。隐式内存分配和基于建筑所在地的调度机制我们实现了在运行时系统受到类似的工作在NUMA系统Broquedis et al。30.]。
很少有作品冲击处理器处理数据分布和位置感知的调度。
Yoo et al。31日)提供一个深入的定量分析的冲击位置感知的调度方式来表述数据并行处理程序的处理器。他们的结论是,工作窃取调度不能捕获位置出现在方式来表述数据并行处理程序,我们也证明通过地图项目的调度结果。他们提出一个复杂的位置感知的调度和偷窃技术的概率最大化联合工作组的内存占用缓存能够适应足迹的最低水平。然而需要任务分组和排序信息技术通过分析读写套任务和离线图分析。
Vikranth et al。32]提出限制偷组核心基于处理器拓扑类似于我们vicinity-based偷窃的方法。
Tousimojarad和Vanderbauwhede33)巧妙地降低访问延迟均匀分布数据通过使用复制的家里访问线程本地的缓存TILEPro64处理器。周和Demsky [2)建立一个垃圾收集器NUMA-aware自适应迁移对象提高冲击处理器的位置。我们目标标准OpenMP用C编写的程序很难迁移对象。
技术来减少缓存访问延迟通过捕获访问模式和布局数据在编译时和运行时都提出了冲击处理器。陆et al。34)重新排列仿射for循环在编译过程中尽量减少数据访问延迟分布均匀的库存共享缓存的冲击处理器。Marongiu和Benini35与接口扩展OpenMP分区数组,然后由编译器后端分布式基于异形访问模式。他们的工作是使数据分布的动机在MPSoCs没有硬件支持的内存管理。李等人。36,37)使用编译时间信息指导数据放置的运行时系统。R-NUCA自动共享内存页面迁移到共享缓存内存使用操作系统支持缓存一致性(降低硬件成本38]。
8。结论
我们已经提出了一个数据分布和内存页面/缓存线位置感知的调度技术,提供良好的性能在我们的测试中在NUMA系统和冲击处理器。主要的好处是使用简单普通的程序员可以减少他们遭受NUMA伤害性能影响。我们的技术很容易使用标准组件构建的采用,因为它是由操作系统提供。位置感知的调度器可以用作默认调度程序,因为它将退回位置时表现得像一个工作窃取的调度器失踪,还表示的东西从我们的测量。
利益冲突
作者宣称没有利益冲突有关的出版。
确认
部分工作是由欧洲FP7安可项目赠款协议之下。248647年,阿尔忒弥斯PaPP项目没有。295440年。
引用
- s·l·奥利弗,b . r . de Supinski m·舒尔茨和j·f·普林斯“描述和减轻工作时间任务并行程序的通货膨胀”《24日为高性能计算国际会议,网络,存储和分析(SC的12),页1 - 12,犹他州,盐湖城美国,2012年11月。视图:出版商的网站|谷歌学术搜索
- j .周和b Demsky”,许多核心处理器的内存管理软件可配置的地方政策,”ACM SIGPLAN通知卷,47号11日,3 - 14,2012页。视图:出版商的网站|谷歌学术搜索
- f . Broquedis j . Clet-Ortega s Moreaud et al .,“Hwloc:一个通用的框架来管理硬件亲和力在HPC应用程序中,”18 Euromicro会议程序并行、分布式和基于网络的处理(PDP的10)2010年2月,页180 - 186。视图:出版商的网站|谷歌学术搜索
- c·p·里贝罗m·卡斯特罗肯尼迪。Mehaut, a . Carissimi”提高地球物理内存关联NUMA平台上的应用程序使用米纳斯,”2010年计算Science-VECPAR高性能计算卷,6449在计算机科学的课堂讲稿施普林格,页279 - 292年,柏林,德国,2011年。视图:出版商的网站|谷歌学术搜索
- a·克林Linux的NUMA API美国小说,科克兰德洗,2005。
- c . Terboven d Schmidl、t·克莱默和d最大经济产量,“评估OpenMP任务实现NUMA架构,”OpenMP在一个异构的世界卷,7312在计算机科学的课堂讲稿施普林格,页182 - 195年,柏林,德国,2012年。视图:出版商的网站|谷歌学术搜索
- c·麦柯迪和j·s .检查者,“孟菲斯:发现和修复NUMA-related多核平台上的性能问题,”《IEEE国际研讨会上的系统和软件性能分析(ISPASS 10)2010年3月,页87 - 96。视图:出版商的网站|谷歌学术搜索
- a . Muddukrishna p·a·琼森诉Vlassov和m . Brorsson”位置感知的任务调度和数据分布在NUMA系统上,”OpenMP时代的低功率设备和加速器卷,8122在计算机科学的课堂讲稿施普林格,页156 - 170年,柏林,德国,2013年。视图:出版商的网站|谷歌学术搜索
- a . Muddukrishna a . Podobas m . Brorsson诉Vlassov,“冲击处理器上的任务调度与缓存,”2012年Euro-Par:并行加工车间课堂讲稿,在计算机科学中,页357 - 367,施普林格,柏林,德国,2013年。视图:出版商的网站|谷歌学术搜索
- a·杜兰x前线,r·费雷尔x Martorell,大肠Ayguade,“巴塞罗那OpenMP任务套件:一组基准目标任务并行OpenMP的剥削,”程序的并行处理国际会议(ICPP ' 09),第131 - 124页,维也纳,奥地利,2009年9月。视图:出版商的网站|谷歌学术搜索
- p•康威n . Kalyanasundharam g .唐利k . Lepak和b·休斯“缓存层次和AMD opteron处理器的内存子系统,“IEEE微,30卷,不。2,16至29页,2010年。视图:出版商的网站|谷歌学术搜索
- d . Molka r . Schone d·哈肯伯格,m·穆勒“内存性能和规范OpenMP quad-socket x86_64系统上的可伸缩性,”并行处理算法和体系结构卷,7016在计算机科学的课堂讲稿施普林格,页170 - 181年,柏林,德国,2011年。视图:出版商的网站|谷歌学术搜索
- AMD, BIOS和内核开发人员指南为AMD的家庭10 h处理器,2010。
- Tilera公司,瓷砖处理器用户架构手册,2012,http://www.tilera.com/scm/docs/UG101-User-Architecture-Reference.pdf。
- m·迈克尔j . Reinders, a·罗宾逊结构化的并行编程:模式有效的计算,爱思唯尔,2012年。
- d .追逐和y列弗,”动态循环队列工作窃取,”17届ACM学报》研讨会在并行算法和架构(SPAA 05)第21至28页。ACM,拉斯维加斯,内华达州,美国,2005年7月。视图:出版商的网站|谷歌学术搜索
- l .黄h·金、l .易和b·查普曼”OpenMP启用位置感知计算”,科学的规划,18卷,不。3 - 4、169 - 181年,2010页。视图:出版商的网站|谷歌学术搜索
- z Majo和t·r·总值”匹配的内存访问模式和数据放置NUMA系统”学报第十届国际研讨会代码生成和优化(CGO的12)2012年4月,页230 - 241。视图:出版商的网站|谷歌学术搜索
- d . s . Nikolopoulos t . s . Papatheodorou c, d . Polychronopoulos j . Labarta和大肠Ayguade OpenMP数据分布是必要的吗?“在ACM和IEEE会议超级计算机学报》(CDROM ' 07)2000年11月,47岁的页。视图:谷歌学术搜索
- c . Terboven d最大经济产量,d . Schmidl h·金和t . Reichstein“数据和线程关联OpenMP项目,”程序的内存访问研讨会未来处理器:解决问题吗?(胃' 08)2008年5月,页377 - 384。视图:出版商的网站|谷歌学术搜索
- f . Broquedis n . Furmento b . Goglin r . Namyst和中国。Wacrenier,“动态任务和数据放置在NUMA架构:OpenMP运行时的角度来看,“进化OpenMP在一个极端的时代并行性卷,5568在计算机科学的课堂讲稿施普林格,页79 - 92年,柏林,德国,2009年。视图:出版商的网站|谷歌学术搜索
- m . Dashti a . Fedorova j . Funston et al .,“交通管理:内存位置NUMA系统的整体分析,”学报18建筑国际会议上支持的编程语言和操作系统(ASPLOS 13)ACM,页381 - 394年,2013年3月。视图:出版商的网站|谷歌学术搜索
- b . Goglin和n . Furmento”使高性能内存迁移对多线程应用程序在linux上,”学报》第23届IEEE国际并行和分布式处理研讨会(IPDPS ' 09)2009年5月,页1 - 9,。视图:出版商的网站|谷歌学术搜索
- m·维·g·海格,“优化ccNUMA位置下的任务并行执行OpenMP和TBB multicore-based系统,“计算研究库,http://arxiv.org/abs/1101.0093。视图:谷歌学术搜索
- s·l·奥利弗,a·k·波特菲尔德k·b·惠勒m .明镜和j·f·普林斯“OpenMP多核NUMA系统的任务调度策略,”国际期刊的高性能计算应用程序,26卷,不。2、110 - 124年,2012页。视图:出版商的网站|谷歌学术搜索
- l . l . Pilla c·p·里贝罗d . Cordeiro和肯尼迪。Mehaut”,魅力+ + NUMA平台:SMP的影响优化和NUMA-aware负载均衡器”诉讼的4号车间INRIA-Illinois联合实验室exascale计算机乌尔班纳,生病,美国,2010年。视图:谷歌学术搜索
- 问:陈,m .郭和z黄”自适应缓存敏感bitier工作窃取multisocket多核架构,”IEEE并行和分布式系统,24卷,不。12日,第2343 - 2334页,2013年。视图:出版商的网站|谷歌学术搜索
- 刘x和j . Mellor-Crummey”工具来分析多线程程序的性能在NUMA架构,”19 ACM SIGPLAN学报》研讨会上并行编程的原理和实践(PPoPP 14)ACM,页259 - 271年,奥兰多,佛罗里达州,美国,2014年2月。视图:出版商的网站|谷歌学术搜索
- d . Schmidl c . Terboven d最大经济产量,“向NUMA支持随着距离信息,”OpenMP在别的时代卷,6665在计算机科学的课堂讲稿施普林格,页69 - 79年,柏林,德国,2011年。视图:出版商的网站|谷歌学术搜索
- f . Broquedis n . Furmento b . Goglin r . Namyst和p . Wacrenier”动态任务和数据放置在numa架构:openmp运行时的角度来看,“进化OpenMP在一个极端的时代并行性卷,5568在计算机科学的课堂讲稿施普林格,页79 - 92年,柏林,德国,2009年。视图:出版商的网站|谷歌学术搜索
- r . m . Yoo c·j·休斯,c . Kim Y.-K。陈,c . Kozyrakis”位置感知的非结构化并行任务管理:定量限制研究”第25届ACM学报》研讨会上并行算法和架构(SPAA的13)ACM,页315 - 325年,波特兰,矿石,美国,2013年7月。视图:谷歌学术搜索
- b . Vikranth r . Wankar, c . r . Rao”为芯片上NUMA拓扑意识到任务偷多核处理器,”Procedia计算机科学18卷,第388 - 379页,2013年。视图:谷歌学术搜索
- A . Tousimojarad和w·Vanderbauwhede“并行任务型的线性代数方法,”IEEE学报》13日并行和分布式计算(ISPDC国际研讨会”14)IEEE,页59 - 66年,2014年。视图:谷歌学术搜索
- 问:陆,c .别名,Bondhugula et al .,“数据布局转换为增强数据局部性NUCA芯片多处理器”学报18并行体系结构和编译技术国际会议(协议' 09)IEEE,页348 - 357年,2009年9月。视图:出版商的网站|谷歌学术搜索
- a . Marongiu和l . Benini“OpenMP编译器为有效利用分布式MPSoCs暂时存储器,”IEEE计算机,卷61,不。2、222 - 236年,2012页。视图:出版商的网站|谷歌学术搜索|MathSciNet
- y, a . Abousamra r ., a·k·琼斯,“Compiler-assisted数据分布为芯片多处理器”19国际会议的程序并行体系结构和编译技术(协议”10)ACM,页501 - 512年,2010年9月。视图:出版商的网站|谷歌学术搜索
- r . y . Li,和a·k·琼斯,“实际上私人:使高性能CMPs通过compiler-assisted数据分类,”21国际会议的程序并行体系结构和编译技术(协议12)ACM,页231 - 240年,2012年9月。视图:出版商的网站|谷歌学术搜索
- n . Hardavellas m . Ferdman b Falsafi, a . Ailamaki“活性NUCA:算法块位置和复制在分布式缓存,”ACM SIGARCH计算机体系结构的消息,37卷,不。3、184 - 195年,2009页。视图:出版商的网站|谷歌学术搜索
版权
版权©2015 Ananya Muddukrishna等。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。