BDDT-SCC: A Task-parallel Runtime for Non Cache-Coherent Multicores
本文介绍了BDDT-SCC,一个非缓存一致性多核处理器的任务并行运行时系统,实现了英特尔单芯片云计算机。BDDT-SCC运行时包括动态依赖分析和自动同步,并在非缓存一致性架构上执行OpenMP-Ss任务。我们设计了一个运行时,使用快速的片上内核间通信与小消息。同时,我们使用非一致性共享内存来避免大量的核到核数据传输,这将导致大量不必要的复制。我们评估BDDT-SCC的一组代表性的基准,在任务的粒度,局部性和通信。我们发现,内存的局部性和分配在性能中起着非常重要的作用,SCC内存控制器的体系结构可以产生强烈的竞争效应。我们建议的模式,提高内存局部性,从而提高应用程序的性能,并衡量其影响。
2016-06-14 cs.DC cs.PL
Efficient cache oblivious algorithms for randomized divide-and-conquer on the multicore model
在本文中,我们提出了随机算法的排序和凸包,实现最佳性能(加速和缓存未命中)的多核模型与私有缓存模型。我们的算法是高速缓存不经意和概括的随机划分和征服的策略,由Reischuk和Reif和Sen。虽然这种方法产生了最佳的速度在PRAM模型,我们需要额外的技术来优化高速缓存未命中在一个不经意的设置。在对输入和处理器数量的温和假设下,我们的算法将具有最佳的时间和高速缓存未命中的高概率。虽然类似的结果已经得到最近排序,我们觉得我们的方法是简单和一般的,我们应用它来获得一个最佳的并行算法的三维凸包具有类似的界限。我们还提出了一个简单的随机处理器分配技术,没有明确的知识的处理器的数量,很可能会发现额外的应用程序在资源遗忘的环境。
2012-05-27 cs.CG cs.DC cs.DS
PPT-Multicore: Performance Prediction of OpenMP applications using Reuse Profiles and Analytical Modeling
我们提出了PPT多核,分析模型嵌入在性能预测工具包(PPT)预测并行应用程序的性能运行在多核处理器。PPT-Multicore建立在我们以前的多核缓存模型的基础上。我们提取LLVM基本块标记的内存跟踪使用架构独立的基于LLVM的仪器工具,只有一次在应用程序的生命周期。该模型使用内存跟踪和其他参数从一个仪表顺序执行的二进制文件。我们使用一个概率和计算效率高的重用配置文件来预测高速缓存命中率和运行时间的OpenMP程序的并行部分。我们对英特尔的Broadwell、Haswell和AMD的Zen 2架构进行建模,并使用PolyBench和PARSEC基准测试套件中的不同应用程序验证我们的框架。结果表明,PPT-Multicore可以预测缓存命中率,总体平均出错率为1.23%,而预测运行时的出错率为9.08%。
2021-04-11 cs.DC cs.PF
Efficient Resource Oblivious Algorithms for Multicores
我们考虑设计一个多核计算环境的有效算法与全局共享内存和p个核心,每个有一个大小为M的高速缓存,并与数据组织在大小为B的块。我们描述了多核的“层次平衡并行(HBP)”多线程计算类。HBP计算类似于最近工作中考虑的分层分治算法,但具有一些额外的功能,即使在考虑由于错误共享导致的缓存未命中时也能保证良好的性能。我们的HBP算法大多来自已知的高速缓存不经意的算法具有高并行性,但我们采用了新的技术,减少假共享的影响。我们解决虚假共享成本(或者更一般地说,块未命中)的方法是确保任何可能被窃取的任务与其他任务共享O(1)块。我们使用一个缺口技术的计算,有大于O(1)块共享。我们还将在配套文件中分析的有限访问写入的属性,我们绑定的任务的执行堆栈上访问共享块的成本。我们提出了优先工作窃取(PWS)调度程序,我们建立,给定一个足够高的高速缓存,PWS确定性地调度几个高度并行的HBP算法,包括扫描,矩阵计算和FFT,与高速缓存未命中的顺序复杂性的限制,当占传统的高速缓存未命中和虚假共享。我们还提出了一个列表排序算法几乎最优的界限。PWS调度不使用缓存或块大小信息,并使用处理器的知识,仅在确定任务可能被窃取的可用位置的程度上,因此它调度资源遗忘。
2011-03-21 cs.DC cs.DS
Resource Oblivious Sorting on Multicores
我们提出了一个确定性排序算法,SPMS(样本,分区,合并排序),交错的样本排序与合并的分区。按顺序,它对$O(n \log n)$时间缓存中的$n$元素进行排序,并具有最佳的缓存未命中数量。该算法的并行复杂度(或关键路径长度)是$O(\log n \cdot \log\log n)$,它改进了以前的最佳缓存不经意排序的界限。该算法还具有较低的虚假共享成本。当在具有全局共享存储器和$p$核的多核计算环境中由工作窃取调度器调度时,由于该并行执行而导致的附加高速缓存未命中和假共享未命中的成本分别由$O(S\cdot M/B)$和$O(S \cdot B)$高速缓存未命中的成本限制,其中每个$p$核具有以大小为$B$的块组织的大小为$M$的高速缓存,其中,$S$是在执行期间执行的窃取次数。最后,SPMS算法是资源无关的,对机器参数的依赖性只出现在对算法性能的分析中,而不是算法本身。
2017-11-02 cs.DC cs.DS
Efficient multicore-aware parallelization strategies for iterative stencil computations
在许多科学仿真代码中,时间表计算消耗了运行时的主要部分。作为这类算法的原型,我们认为迭代雅可比和高斯-赛德尔平滑和高速缓存为基础的多核架构的高效并行实现的目标。临时缓存阻塞是一种已知的高级优化技术,其可以显著地减少存储器总线上的压力。我们应用和完善这种优化最近提出的时间阻塞策略,旨在明确利用多核特性。特别是对于高斯-赛德尔平滑的情况下,我们表明,同时多线程(SMT)可以产生显着的性能改进,我们的优化算法。
2010-04-10 cs.DC cs.PF
Multicore-optimized wavefront diamond blocking for optimizing stencil updates
基于模板的算法在计算科学中的重要性使得基于多级缓存的处理器的优化并行实现受到关注。时间阻塞方案利用高速缓存的大带宽和低延迟来加速模板更新并接近理论峰值性能。一个关键因素是减少了慢速数据路径上的数据流量,特别是主存储器接口。在这项工作中,我们结合了多核波前时间阻塞和钻石瓷砖的想法,达到模板更新计划,显示内存压力大幅减少相比,现有的方法。由此产生的方案在带宽不足的情况下表现出性能优势,这是加剧了高字节每格更新的情况下的可变系数。我们的线程组概念在并发和内存使用之间提供了一个可控的权衡,转移了内存接口和CPU之间的压力。我们展示了当代英特尔处理器上的性能结果。
2014-10-12 cs.DC
LIKWID: A lightweight performance-oriented tool suite for x86 multicore environments
要充分利用当今处理器的性能,需要深入了解微体系结构,并了解线程和缓存拓扑中不断增长的复杂性。LIKWID是一组命令行实用程序,解决了四个关键问题:探测共享内存节点的线程和缓存拓扑,在程序上强制执行线程-核心亲和性,测量性能计数器指标,以及切换硬件预取器。还包括一个用于从用户代码中使用性能计数功能的API。我们清楚地说明了与广泛使用的PAPI接口的差异。为了展示工具集的功能,我们使用著名的OpenMP STREAM triad基准测试来展示线程固定对性能的影响,并使用亲和性和硬件计数器工具来研究专门优化以利用多核芯片上的共享缓存的模板代码的性能。
2010-06-30 cs.DC cs.PF
LFOC: A Lightweight Fairness-Oriented Cache Clustering Policy for Commodity Multicores
提出LFOC,一种基于聚类的轻量级缓存分区方案,利用Intel CAT技术识别流式攻击程序和缓存敏感型应用并分配独立分区,在Linux内核和Intel Skylake上实现并评估,有效降低不公平性同时保持可接受的吞吐量。
2024-02-12 cs.AR cs.DC
Empirical Evaluation of the Parallel Distribution Sweeping Framework on Multicore Architectures
在本文中,我们进行了实证评估的并行外部存储器(PEM)模型的背景下,几何问题。特别是,我们实现了Ajwani,Sitchinava和Zeh的并行分布扫描框架来解决批量1维穿刺最大值问题。虽然现代处理器由复杂的内存系统(多级缓存,设置关联性,TLB,预取),我们经验表明,算法设计在简单的模型,专注于最大限度地减少共享内存和单级缓存之间的I/O传输,可以导致有效的软件在当前的多核架构。我们的实现具有显着减少访问缓慢的DRAM,因此,优于传统的方法,基于平面扫描和双向分而治之。
2013-06-19 cs.DC cs.DS
HALLS: An Energy-Efficient Highly Adaptable Last Level STT-RAM Cache for Multicore Systems
自旋转移力矩RAM(STT-RAM)由于其非易失性、低泄漏功率、高密度和快速读取速度而被广泛认为是存储层次结构中SRAM的有前途的替代品。STT-RAM的小特征尺寸对于通常消耗大面积硅管芯的末级高速缓存(LLC)是特别期望的。然而,长的写入延迟和高的写入能量仍然是在CPU高速缓存中实现STT-RAM的挑战。一种越来越流行的解决这一挑战的方法涉及通过放宽STT-RAM的数据保留时间来权衡非易失性以降低写入速度和写入能量。然而,为了最大限度地提高节能潜力,高速缓存配置,包括STT-RAM的保留时间,必须动态地适应执行应用程序的可变内存需求。在本文中,我们提出了一个高度适应性的最后一级STT-RAM缓存(HALLS),允许LLC的配置和保留时间,以适应应用程序的运行时执行要求。我们还提出了低开销的运行时调整算法,以动态地确定最佳(最低能量)的缓存配置和保留时间执行应用程序。与之前的工作相比,HALLS在四核系统中降低了60.57%的平均能耗,同时引入了边际延迟开销。
2019-05-18 cs.AR cs.DC cs.ET
Beyond Worst-case Analysis of Multicore Caching Strategies
每个具有多个核心共享缓存的处理器都需要实现缓存替换算法。以前的工作表明,竞争比的一大类在线算法,包括最近最少使用(LRU),随着输入的长度增长。此外,即使是像Furthest-In-Future这样的离线算法,单核缓存中的最佳算法,也无法在多核设置中竞争。这些负面的结果促使通过替代分析措施更深入地比较多核缓存算法。具体来说,对手适应在线算法的能力表明需要对在线算法进行直接比较。在本文中,我们介绍了循环分析,双射分析的推广介绍了Angelopoulos和Schweitzer [JACM'13]。循环分析抓住了双射分析的优势,同时提供了灵活性,使其更适用于各种在线问题的比较算法。特别是,我们采取的第一个步骤超出了最坏情况下的分析多核缓存算法的分析。我们使用循环分析来建立多核缓存算法之间的关系,包括LRU在引用局部性存在的情况下优于所有其他多核缓存算法的优势。
2020-11-03 cs.DC cs.DS
Cache Optimization for Sharing Intensive Workloads on Multi-socket Multi-core servers
主要的芯片制造商都推出了多核微处理器。从这些处理器构建的多插槽系统用于运行各种服务器应用程序。根据应用程序的不同,远程缓存到缓存传输可能会严重影响此类工作负载的性能。本文提出了一种缓存优化,可以减少远程缓存到缓存传输。通过跟踪从远程高速缓存加载到末级高速缓存中的远程高速缓存行,并通过将高速缓存替换策略偏向于这样的远程高速缓存行,我们可以减少高速缓存未命中的数量。这反过来又会提高整体性能。我在本文中提出的设计细节。我对远程缓存到缓存传输的性能影响问题的各种解决方案进行了定性比较。这项工作可以通过定量评估来扩展。
2019-09-19 cs.DC
Multicore-aware parallel temporal blocking of stencil codes for shared and distributed memory
需要新的算法和优化技术来平衡带宽匮乏的多核芯片的加速趋势。众所周知,模板代码的性能可以通过时间分块来改善,从而减轻对存储器接口的压力。我们介绍了一种新的流水线的方法,使显式使用共享缓存在多核环境中,最大限度地减少同步和边界开销。对于共享内存节点的集群,我们演示了如何在混合共享/分布式内存环境中成功地采用时间块。
2009-12-22 cs.DC cs.PF
Cache Optimization for Memory Intensive Workloads on Multi-socket Multi-core servers
主要的芯片制造商都推出了多核微处理器。从这些处理器构建的多插槽系统用于运行各种服务器应用程序。根据系统上运行的应用程序,远程内存访问可能会影响整体性能。本文提出了一种缓存优化,可以减少远程DRAM访问。通过保持跟踪从远程DRAM加载的远程高速缓存行并且通过将高速缓存替换策略偏向于这样的远程DRAM高速缓存行,减少了高速缓存未命中的数量。这反过来又会提高整体性能。我在本文中提出的设计细节。我对远程DRAM访问对性能影响的问题的各种解决方案进行了定性比较。这项工作可以通过进行定量评估和进一步改进缓存优化来扩展。
2019-08-12 cs.DC
Taxim: A Toolchain for Automated and Configurable Simulation for Embedded Multiprocessor Design
多核嵌入式系统一直在研究如何通过改变处理器、存储器、缓存层次结构及其缓存配置来提高系统的效率。结合使用Multi2Sim和McPAT仿真器,用户可以设计各种多处理架构,并评估性能、功耗、面积和时序指标。然而,模拟这些系统所需的设计时间是令人生畏的,并且容易出现人为错误。在本文中,我们介绍了Taxim,一个工具链,可以自动创建所需的多核片上拓扑结构,同时最大限度地减少由于架构功耗,能源和时序仿真之间的重复任务的仿真时间。Taxim的基于决策树的拓扑合成工具创建的处理器配置文件在手动生成时可能存在很大的错误。该工具链还通过运行自动化脚本并列出结果,自动执行从设计输入到输出报告提取的步骤。我们的实验表明,多处理架构与32个核心和不规则的缓存层次结构是超过1k行的代码在Multi2Sim的处理器配置格式和Taxim可以创建这样一个文件在不到10毫秒。源代码可在https://github.com/bouncaslab/TaXim/上免费获得。
2016-01-13 cs.DC
Multi-Objective Memory Bandwidth Regulation and Cache Partitioning for Multicore Real-Time Systems
本文针对多核实时系统任务-资源协同分配难题,提出0-1线性规划模型和多目标多层启发式算法,在保证EDF调度可调度性的同时最小化资源使用,实验验证其性能优于现有方法。
2025-05-15 cs.AR cs.DC cs.OS
A Migratory Near Memory Processing Architecture Applied to Big Data Problems
主流供应商生产的服务器在处理大数据查询时效率低下,因为这些系统的基本架构中存在固有的瓶颈。当前的服务器刀片包含通过互连芯片组连接到DRAM存储器和磁盘的多核处理器。多核处理器芯片执行所有计算,而DRAM和磁盘存储数据,但没有处理能力。要执行数据库查询,数据必须在DRAM和小型缓存之间以及DRAM和磁盘之间来回移动。对于大数据应用程序来说,这种数据移动是繁重的。迁移近内存服务器通过将大量轻量级处理器直接放置到内存系统中来解决这个瓶颈。这些处理器直接在大数据应用程序的关系、顶点和边缘上运行,而无需在DRAM、缓存和重量级多核处理器之间来回穿梭大量数据。本文讨论了这种体系结构在关系数据库SELECT和JOIN查询中的应用。初步结果表明,端到端的数量级加速。
2020-03-20 cs.DB cs.DC
MMStencil: Optimizing High-order Stencils on Multicore CPU using Matrix Unit
MMStencil针对多核CPU矩阵单元优化3D高阶模板计算,通过SIMD与矩阵单元算法优化、内存优化及多线程并行范式,结合DMA跨NUMA通信,在Nvidia A100 GPGPU上最高实现2.1倍性能提升,并使RTM应用加速1.8倍。
2025-07-15 cs.DC
Data Oblivious Algorithms for Multicores
随着诸如英特尔SGX(具有超线程)等安全处理器的广泛采用,对大数据的私人分析的需求越来越大。大多数数据不经意算法的工作采用经典的PRAM模型来捕获并行性。然而,人们普遍认为PRAM并不能最好地捕捉现实的多核处理器,也不能反映实际中采用的并行编程模型。在本文中,我们开始研究并行数据不经意算法在现实的多核,最好的捕获的二进制fork-join模型的计算。我们首先证明了数据无关排序可以通过具有最佳总工作和最佳(缓存无关)缓存复杂度的二进制fork-join算法来完成,并且在O(log n log log n)跨度(即,并行时间)匹配最著名的不安全算法。使用我们的排序算法作为核心原语,我们展示了如何在二进制fork-join模型中以非平凡的效率模拟一般PRAM算法。我们还提出了几个应用程序,包括列表排名,欧拉之旅,树收缩,连接组件,最小生成森林的结果。对于这些应用程序的一个子集,我们的数据无关算法渐近优于最知名的不安全算法。对于其他应用程序,我们展示了数据不经意的算法,其性能界限匹配最知名的不安全算法。补充这些渐近有效的结果,我们提出了一个实际的变种,我们的排序算法,是独立的和潜在的实现。它具有最佳的缓存成本,它是从最佳的工作和关于一个log n的因素关闭的跨度,而且,它实现了小的常数因子在其边界。
2021-06-29 cs.CR cs.DC cs.DS
Solving Batched Linear Programs on GPU and Multicore CPU
线性程序(LP)出现在大量应用程序中,将它们卸载到GPU可以提高性能。在GPU上卸载和求解LP的现有工作表明,从大尺寸LP(通常为500个约束、500个变量及以上)获得性能。为了从GPU获得性能的应用程序,涉及中小型LP,我们提出了批量解决大量的LP并行。在本文中,我们提出了我们的批处理LP求解器库的设计和CUDA实现,保持内存合并访问,减少CPU-GPU内存传输延迟和负载平衡的目标。批处理LP求解器的性能进行比较,在CPU中使用开源求解器GLPK(GNU线性编程工具包)顺序求解。三种类型的LP的性能进行评估。第一种类型是初始基本解为可行,第二种类型是初始基本解为不可行,第三种类型是可行域为超盒。对于第一种类型,当运行一批大小为$100$($100$变量,$100$约束)的$50k$ LP时,我们显示了$18.3\times$的最大加速比。对于第二种类型,使用一批大小为$200$的$10k$ LP获得$12\times$的最大加速比。对于第三种类型,我们显示出$63\times$在解决一批大小为5的近$4$百万LP时的显著加速,以及$34\times$在解决大小为$28$的6百万LP时的显著加速。此外,我们表明,开放源代码库求解线性规划-GLPK,可以很容易地扩展到解决多个LP并行多线程。线程并行GLPK实现在$12$核英特尔至强处理器上求解一批大小为$100$的$1e5$ LP时…
2016-09-26 cs.DC
Optimization of an electromagnetics code with multicore wavefront diamond blocking and multi-dimensional intra-tile parallelization
了解和优化太阳能电池的性能正在成为寻找核能和化石能源替代品的关键问题。通过数值模拟的理论分析涉及以离散形式求解麦克斯韦方程组,并且通常需要大量的计算工作。我们从一个混合并行(MPI+OpenMP)的生产代码,实现了时间谐波逆迭代法(THIIM)与频域差分(FDFD)离散化。虽然该算法具有强带宽约束的模板更新方案的特点,它是显着不同的流行的模板类型,已被详尽研究的高性能计算文献的日期。我们应用最近开发的模板优化技术,多核波前菱形平铺与多维缓存块共享,并详细描述了由于特殊的模板结构需要考虑的特点。更新电场和磁场的分量的并发性提供了额外的并行性水平。优化代码的缓存大小要求对阻塞参数的依赖性被精确地建模,并且自动调谐器在剩余的参数空间中搜索最优配置。我们能够将执行与内存带宽瓶颈完全分离,与在18核Intel Haswell CPU上使用纯空间阻塞的最佳实现相比,将实现速度提高了三到四倍。
2015-10-18 cs.CE cs.DC cs.PF
Architecture-Aware Configuration and Scheduling of Matrix Multiplication on Asymmetric Multicore Processors
Universidad Jaume I(豪梅一世大学);Universidad Complutense de Madrid(马德里康普顿斯大学)
本文设计了面向架构的矩阵乘法优化,通过缓存感知配置和异构静态动态调度策略,提升ARM big.LITTLE异构多核处理器的性能与能效。
2015-06-30 cs.DC cs.MS cs.NA
Cache-aware Parallel Programming for Manycore Processors
随着技术的快速发展,多核和众核处理器已经成为受益于晶体管数量增加的有前途的架构。向这些并行架构的过渡使今天成为研究并行计算挑战的激动人心的时刻。TILEPro64是一个众核加速器,由64个通过多个8x8网格网络互连的瓦片组成。默认情况下,它包含每瓦片缓存并支持缓存一致性共享内存。在本文中,我们提出了一种编程技术,以利用分布式缓存设施在众核处理器。然而,与这一领域的其他工作不同,我们的方法不使用特定于体系结构的库。相反,我们为程序员提供了一种新的技术,如何规划未来的非均匀缓存架构(NUCA)众核系统,铭记他们的缓存组织。我们表明,我们的本地化编程方法可以导致并行化效率(加速)的显着提高。
2014-03-31 cs.DC cs.PF
Multi-dimensional intra-tile parallelization for memory-starved stencil computations
优化模板算法的性能一直是过去二十年来深入研究的主题。由于许多模板方案具有较低的运算强度,因此大多数优化都集中在增加时态数据访问局部性上,从而减少通过主存接口的数据流量,最终目标是与此瓶颈解耦。然而,只有少数方法明确利用现代多核芯片的共享缓存功能。如果每个线程都在其私有的、单独的缓存块上工作,则可用的缓存空间可能变得太小,并且可能无法实现足够的时间局部性。我们提出了一种灵活的多维瓦片内并行化方法的模板算法在多核CPU与共享外层缓存。这种方法导致所需的高速缓存空间的显着减少,而不会受到硬件预取或TLB不足的不利影响。我们的\emph{Girih}框架包括一个自动调谐器,用于在目标硬件上选择最佳参数配置。我们在两个当代英特尔处理器上进行性能实验,并与最先进的模板框架PLUTO和Pochoir进行比较,使用四个角案例模板方案和各种各样的问题大小。\emph{Girih}在几乎所有的问题规模上都表现出显著的性能优势和最佳的算术强度,特别是在变系数的低强度stentleman上。我们详细研究了性能行为在不同的网格大小,使用现象学的性能建模。我们的能源消耗分析表明,我们的方法可以节省能源,减少DRAM的带宽使用,即使在边际性能增益。因此,它非常适合未来的架构,这些架构将受到数据移动成本的强烈挑战,无论是在性能还是能耗方面。
2015-10-16 cs.DC cs.PF
On the Performance and Energy Efficiency of the PGAS Programming Model on Multicore Architectures
使用大规模的多核系统来获得最大的性能和能源效率以及可管理的可编程性是一个重大挑战。分区全局地址空间(PGAS)编程模型通过在大规模计算系统上提供全局地址空间来增强可编程性。然而,到目前为止,性能和能源效率的PGAS模型上的多核并行架构还没有得到彻底的调查。在本文中,我们使用一组从著名的NAS并行基准测试中选择的内核来评估UPC程序设计语言的性能和能效,UPC编程语言是PGAS模型的广泛使用的实现。此外,MPI和OpenMP版本的相同的并行内核用于比较与他们的UPC同行。所研究的硬件平台基于多核CPU,既可以在单个16核节点内,也可以跨多个节点,涉及多达1024个物理核。在多节点平台上,我们使用称为高清晰度能效监测工具的硬件测量解决方案来测量能量。在单节点系统上,我们使用混合测量解决方案来努力了解观察到的性能差异,我们使用英特尔性能计数器监视器来详细量化通信时间、缓存命中/未命中率和内存使用情况。我们的实验表明,UPC是有竞争力的OpenMP和MPI在单个和多个节点上,在性能和能源效率方面。
2019-12-29 cs.DC cs.PF cs.PL
Cache Where you Want! Reconciling Predictability and Coherent Caching
实时和网络物理系统需要在可预测的时间内与其物理环境进行交互并做出响应。虽然多核平台提供了令人难以置信的计算能力和吞吐量,但它们也引入了新的不可预测性来源。访问多个核心之间共享的数据的延迟的大幅波动是整体执行时间可变性的重要贡献者。除了缓存所带来的时间不可预测性之外,具有跨多个核心共享的数据的并行应用程序还由于数据一致性而付出额外的延迟开销。分析数据一致性对实时应用程序的最坏情况执行时间的影响是具有挑战性的,因为制造商只透露了很少的实现细节。本文介绍了应用程序级控制缓存数据在不同级别的缓存层次结构。基本原理是,通过仅在共享缓存中缓存数据,可以绕过私有缓存。对高速缓存中存在的数据的访问延迟变得与其一致性状态无关。我们讨论现有的架构支持,以及所需的硬件和操作系统的修改,以支持建议的缓存控制。我们评估系统的建筑模拟器。我们表明,最坏情况下的执行时间为一个单一的内存写入请求减少了52%。基准测试结果表明,所提出的技术对平均性能的影响最小。
2021-06-27 cs.DC cs.OS
Efficient Architecture-Aware Acceleration of BWA-MEM for Multicore Systems
下一代测序技术的创新使DNA序列数据的生成速度更快,成本更低。大型测序中心通常使用数百个这样的系统。这种高通量和低成本的数据生成强调了在测序数据的下游计算分析中相应加速的需要。下游分析的基本步骤是将读数映射到长参考DNA序列,例如参考人类基因组。序列映射是一个计算密集型步骤,占GATK工作流程总时间的30%以上。BWA-MEM是最广泛使用的序列映射工具之一,拥有数万名用户。在这项工作中,我们专注于加速BWA-MEM通过一个高效的架构感知实现,同时保持相同的输出。大量的数据需要分布式计算环境,通常部署多核处理器。由于应用程序可以很容易地并行化的分布式内存系统,我们专注于单插槽多核处理器上的性能改进。BWA-MEM运行时间由三个内核控制,它们共同负责超过85%的总计算时间。我们通过以下方式提高了这些内核的性能:1)提高缓存重用,2)简化算法,3)用几个大的连续内存分配取代小的碎片内存分配,4)软件预取,5)在适用的情况下利用SIMD-以及大规模重组源代码以实现这些改进。因此,我们在三个内核上分别实现了近2倍、183倍和8倍的加速,与英特尔至强Skylake处理器的单线程和单插槽上的原始BWA-MEM相比,端到端计算时间的加速分别高达3.5倍和2.4倍。据我们所知,这是BWA-MEM上报告的最高加速比。
2019-07-27 cs.CE cs.DC cs.PF
Flexible Support for Fast Parallel Commutative Updates
私有化数据是增加共享内存多线程程序中并行性的一种有用策略。独立核可以独立地计算共享数据的副本,在计算结束时组合它们的结果。然而,私有化的常规方法依赖于针对重复状态的显式静态或动态存储器分配,从而增加存储器占用和对高速缓存资源的争用,特别是在共享高速缓存中。在这项工作中,我们描述了CCache,按需私有化的交换操作操作的数据系统。CCache获得了私有化的好处,而不会增加内存占用或缓存占用。CCache中的每个核心动态地私有化可交换操作的数据,对副本进行操作。核心会定期或在计算结束时将其值与内存中的值合并,当所有核心合并后,内存中的副本将包含最新值。我们描述了一个低复杂度的架构实现CCache,扩展了传统的多核,以支持按需私有化,而不使用额外的内存私有副本。我们在几个高价值的应用程序上评估了CCache,包括随机访问键值存储,聚类,广度优先搜索和图排名,显示加速高达3.2倍。
2017-09-26 cs.AR cs.DC
Graph500 from OCaml-Multicore Perspective
OCaml是一种工业级、多范式的程序设计语言,广泛应用于工业和学术界。OCaml是为解决涉及大规模数据密集型操作的数值和科学问题而开发的,其中一个经典的应用程序集是图形算法,它是大多数分析工作负载的核心部分。在本文中,我们的目标是实现图基准测试以及性能分析。Graph 500就是这样一个严肃的基准,旨在开发需要极高计算能力的数据密集型应用程序。我们尝试使用graph 500提出的所需规范和规则来实现图构造,BFS,最短路径问题。本文的目的是提供一个明确的方向,选择几个数据结构使用,算法开发和提出背后的每一步程序的原因。本文的前几部分讨论了一个正式的方法来解决这个问题,并为OCaml的初学者提供了一个小指南。后面的部分详细描述了算法,以及未来探索的可能性和我们在接近解决方案时犯下或遇到的几个错误。所有性能指标均在英特尔(R)至强(R)Gold 5120 CPU@2.20 GHz 24核机器上进行了测试。每个部分都讨论了遇到的初始性能故障,这将有助于从性能角度分析和优先考虑我们的首选实现。
2020-12-25 cs.DC cs.PF
Modern Multicore CPUs are not Energy Proportional: Opportunity for Bi-objective Optimization for Performance and Energy
能量均衡性是现代多核CPU架构师遵循的关键设计目标。其含义之一是,对应用程序进行性能优化也会对其进行能源优化。在这项工作中,我们表明,能源比例并不适用于多核CPU。这一发现为性能和能源应用的双目标优化创造了机会。我们提出并研究了多线程数据并行应用程序的性能和能源的双目标优化的第一个应用程序级的方法。该方法使用两个决策变量,执行应用程序的相同多线程内核(线程组)的数量和每个线程组中的线程数量,工作负载始终在线程组之间平均分配。我们通过实验证明了该方法的效率,使用四个高度优化的多线程数据并行应用程序,基于FFTW和英特尔MKL的二维快速傅立叶变换,以及使用OpenBLAS和英特尔MKL的密集矩阵矩阵乘法。实验中使用了四个现代多核CPU。实验表明,单独的性能优化的结果在动态能量消耗增加了高达89%,单独的动态能量优化的性能降低了高达49%。通过求解双目标优化问题,该方法确定了多达11个全局Pareto最优解。最后,我们提出了一个定性的动态能量模型,采用性能监测计数器作为参数,我们用它来解释发现的能量非比例性和帕累托最优解确定我们的方法。该模型表明,在我们的情况下,能量不成比例是由于活动的数据转换后备缓冲区(dTLB),这是不成比例的能源昂贵。
2019-10-15 cs.AR cs.DC cs.PF
SynCron: Efficient Synchronization Support for Near-Data-Processing Architectures
近数据处理(NDP)架构提出了一种很有前途的方式来减轻数据移动成本,并可以提供显着的性能和能源效益的并行应用程序。通常,NDP架构支持若干NDP单元,每个单元包括靠近存储器放置的多个简单核。为了充分利用NDP的优势并实现并行工作负载的高性能,系统的NDP核心之间的高效同步是必要的。然而,在许多NDP系统中支持同步是具有挑战性的,因为它们缺乏通常用于多核系统中的同步的共享高速缓存和硬件缓存一致性支持,并且跨不同NDP单元的通信可能是昂贵的。本文全面研究了NDP系统中的同步问题,并提出了一种端到端的NDP系统同步解决方案SynCron。Syncron在内存附近添加了低成本硬件支持,以实现同步加速,并避免了对硬件缓存一致性支持的需求。SynCron有三个组件:1)专用高速缓冲存储器结构,以避免用于同步的存储器访问并最小化等待时间开销,2)分层消息传递通信协议,以最小化跨系统的NDP单元的昂贵通信,以及3)仅硬件溢出管理方案,以避免当超过用于同步跟踪的硬件资源时的性能降级。我们使用各种并行工作负载评估Syncron,涵盖各种争用场景。与最先进的方法相比,SynCron在高争用情形下将性能平均提高1.27 $\times$(最高可达1.78 $\times$),在低争用实际应用程序下将性能平均提高1.35 $\times$(最高可达2.29 $\times$)。Syncron平均可将系统能耗…
2021-02-13 cs.AR cs.DC
Optimizing Graph Processing and Preprocessing with Hardware Assisted Propagation Blocking
广泛的先前研究集中在减轻图分析工作负载的特征性不良缓存局部性。然而,图形预处理任务仍然相对未被探索。在许多重要的场景中,图预处理任务可能与下游图分析内核一样昂贵。我们观察到,传播阻塞(PB),一种为SpMV内核设计的软件优化,推广到许多图形分析内核以及常见的预处理任务。在这项工作中,我们确定了挥之不去的效率低下的PB执行传统的多核,并提出架构支持,以消除PB的瓶颈,进一步提高性能收益PB。我们提出的架构- COBRA -优化了图形处理和预处理的PB执行,以提供高达4.6倍(平均3.5倍)的端到端加速。
2020-11-17 cs.AR cs.DC cs.PF
Calculation of Stochastic Heating and Emissivity of Cosmic Dust Grains with Optimization for the Intel Many Integrated Core Architecture
宇宙尘埃粒子有效地减弱了星光。它们对星光的吸收产生了从近红外到远红外的发射光谱,这取决于尘埃颗粒的大小和性质,以及加热辐射场的光谱。近红外到中红外由非常小的颗粒的发射主导。然而,模拟这些粒子对星光的吸收在计算上是昂贵的,并且是处理恒星对尘埃加热的自洽辐射输运代码的一个重要瓶颈。在本文中,我们总结了计算宇宙尘埃的随机发射率的形式主义,这是在早期的作品中开发的,并提出了一个新的库HEATCODE实现这种形式主义的计算任意颗粒的性质和加热辐射场。我们的库是高度优化的通用处理器与多个核心和向量指令,分层内存缓存结构。HEATCODE库还可以在实现英特尔多集成核心(英特尔MIC)架构的协处理器卡上高效运行。我们将详细讨论我们为优化英特尔MIC架构而采取的优化步骤,这些步骤也显著提高了通用处理器上代码的性能,并为每个步骤提供代码示例和性能基准测试。单个英特尔至强融核协处理器(英特尔MIC架构)上的HEATCODE库性能大约是通用双路多核处理器系统的2倍,而标称功耗大致相同。该库支持异构计算采用主处理器同时与多个协处理器,可以很容易地纳入现有的辐射传输代码。
2013-11-19 astro-ph.GA astro-ph.IM cs.DC