OpenMP Parallelization of Dynamic Programming and Greedy Algorithms
多核自出现以来就成为一种典型的体系结构模型,现在已经成为一种标准。趋势是增加核的数量和提高存储系统的性能。为一个重要的算法内核提供一个高效的多核实现是一个真正的贡献。从方法论的角度来看,这应该在基础范式(如果有的话)的级别上完成。在本文中,我们研究的情况下,{ \em动态规划}和{ \em贪心算法},这是两个主要的算法范例。我们专门考虑通过OpenMP基于方向的循环并行化,并研究必要的预转换,以达到一个定期的并行形式。我们评估我们的方法与选择知名的组合优化问题的INTEL Broadwell处理器。可扩展性的关键点之前和之后的实验结果进行了讨论。我们的直接观点是将我们的研究扩展到众核情况,特别关注NUMA配置。
2020-01-20 cs.DC
Enabling performance portability of data-parallel OpenMP applications on asymmetric multicore processors
针对非对称多核处理器上数据并行OpenMP应用的负载不平衡问题,提出新型循环调度方法AID,在libgomp中实现并使性能较传统策略最高提升56%。
2024-02-12 cs.DC cs.OS
Power Constrained Autotuning using Graph Neural Networks
Iowa State University(爱荷华州立大学);University of Oregon(俄勒冈大学)
多核和众核处理器的最新进展已经导致科学计算应用的性能的显著改善。然而,大量复杂内核的加入也增加了整体功耗,功耗已经成为现代处理器中的一阶设计约束。虽然我们可以通过简单地应用基于软件的功耗约束来限制功耗,但盲目地应用它们将导致严重的性能下降。为了解决在现代多核处理器上提高科学应用的性能、功耗和能源效率的挑战,我们提出了一种新的基于图神经网络的自动调整方法,该方法(i)在预定义的功耗约束下优化运行时性能,(ii)通过最小化能量延迟乘积同时优化运行时性能和能源效率。这种方法背后的关键思想在于将并行代码区域建模为流感知代码图,以捕获语义和结构化代码特征。我们证明了我们的方法的有效性进行了广泛的评估$30$基准和代理/迷你应用程序与$68$ OpenMP代码区域。我们的方法确定了在不同的功率约束,产生几何平均性能提高超过$25\%$和$13\%$在32核Skylake和$16$核Haswell处理器上的默认OpenMP配置。此外,当我们针对能量延迟乘积进行优化时,对于相同的Skylake和Haswell处理器,我们的自动调谐器所选择的OpenMP配置分别在Thermal Design Power下与默认的OpenMP配置相比,表现出$21\%$和$11\%$的性能提高以及$29\%$和$18\%$的能量降低。
2023-02-22 cs.DC cs.LG cs.PF
Fully Empirical Autotuned QR Factorization For Multicore Architectures
随着时间的推移,随着系统变得越来越复杂,调优数值库变得越来越困难。特别是,现代多核机器使得算法的行为难以预测和建模。在本文中,我们解决了在多核架构上调整密集QR分解的问题。我们表明,这是很难依赖于一个模型,这促使我们设计一个完全实证的方法。我们表现出一些强大的经验性质,使我们能够有效地修剪搜索空间。我们的方法是自动的,快速和可靠的。在七个平台中的五个平台上,调优过程在安装时不到一分钟和十分钟就完全完成了。根据平台的不同,我们实现的平均性能从97%到100%不等。这项工作是自动调优PLASMA库和实现跨硬件系统的轻松性能可移植性的基础。
2011-02-25 cs.DC
Auto-tuning of dynamic scheduling applied to 3D reverse time migration on multicore systems
逆时偏移(RTM)是一种广泛应用于石油和天然气工业的地震数据处理算法。这是一个计算密集型的任务,非常适合并行计算机。诸如RTM的方法可以通过将并行循环的迭代调度到线程而在共享存储器系统中并行化。然而,几个方面,如内存大小和层次结构,核心数量和输入大小,使最佳调度非常具有挑战性。在本文中,我们介绍了一种运行时策略,自动调整并行循环迭代的动态调度迭代应用程序,如RTM,在多核系统。所提出的方法旨在减少此类应用程序的执行时间。为了找到最佳的粒度,我们提出了一种基于耦合模拟退火(CSA)的自动调整策略,该策略可以调整OpenMP并行循环在3D RTM应用程序初始化过程中动态分配给工作线程的工作块大小。不同的计算系统和输入大小进行的实验表明,该方法始终优于默认的OpenMP编译器,静态,自动和引导,使应用程序的速度提高了33%。我们表明,这种性能的可能原因是减少高速缓存未命中,主要是L3级,和低开销,低于2%。已经证明对于3D RTM是鲁棒的和可扩展的,所提出的方法还可以提高类似的基于波的算法的性能,例如全波形反演(FWI)和其他迭代应用。
2020-07-05 cs.DC
Multithreaded Fine-Grained Asynchronous BSP for Integer Sorting with LCI and OpenMP
Advanced Micro Devices, Inc.(超威半导体公司)
针对BSP模型在非规则负载下的通信瓶颈,提出结合LCI和OpenMP的多线程细粒度异步BSP方法,通过细粒度零拷贝主动消息实现计算通信重叠,在NAS整数排序基准测试中显著优于传统同步MPI实现。
2026-05-25 cs.DC
Hybrid-parallel sparse matrix-vector multiplication with explicit communication overlap on current multicore-based systems
我们评估优化的并行稀疏矩阵向量运算的几个代表性的应用领域广泛的基于多核的集群配置。首先,单插槽的基线性能进行了分析和建模的基本架构属性的标准多核芯片。在单个节点之外,并行稀疏矩阵-向量运算的性能通常受到通信开销的限制。从观察到,非阻塞MPI是无法隐藏通信成本使用标准的MPI实现,我们证明了通信和计算的显式重叠可以通过使用专用的通信线程,它可以运行在一个虚拟的核心。此外,我们确定的混合MPI/OpenMP编程的性能优势,由于改进的负载均衡,即使没有明确的通信重叠。我们比较纯MPI的性能结果,广泛使用的“矢量”混合编程策略,并明确重叠的现代多核集群和Cray XE 6系统。
2011-06-29 cs.DC
Improving the scalabiliy of neutron cross-section lookup codes on multicore NUMA system
我们使用的XSBench代理应用程序,内存密集型的OpenMP程序,探索一个流行的蒙特卡罗(MC)反应堆物理基准的非均匀内存访问(NUMA)系统的节点上的可扩展性退化的来源。作为背景,我们介绍了XSBench的详细信息,这是一个用于完整MC模拟的性能抽象“代理应用程序”,以及Linux内核的内部设计。我们解释了内核内部的物理内存分配如何影响XSBench的多核可伸缩性。在一个16核双插槽NUMA测试平台上,扩展效率从未优化的70%提高到优化的95%,优化版本的能耗比未优化版本低25%。除了NUMA优化之外,我们还评估了XSBench的页面大小优化,并观察到与未优化的页面大小优化相比,性能提高了1.5倍。
2019-09-09 cs.DC
Cuttlefish: Library for Achieving Energy Efficiency in Multicore Parallel Programs
低容量的功率预算对于百亿亿次计算是具有挑战性的。动态电压和频率缩放(DVFS)和非核心频率缩放(UFS)是用于限制HPC应用的能量足迹的两种广泛使用的技术。然而,现有的方法未能提供一个统一的解决方案,可以与不同类型的并行编程模型和应用程序。本文提出了Cuttlefish,一个编程模型不经意的C/C++库,实现能源效率的多核并行程序运行在英特尔处理器上。在线分析器定期分析特定于模型的寄存器,以发现正在运行的应用程序的内存访问模式。通过结合使用DVFS和UFS,Cuttlefish可以动态调整处理器的核心和非核心频率,从而提高其能效。使用一组广泛使用的OpenMP基准测试对20核英特尔至强处理器进行评估,包括几个不规则任务和工作共享pragmas,实现了19.4%的几何平均节能,速度降低了3.6%。
2021-10-01 cs.DC
Programming Parallel Dense Matrix Factorizations with Look-Ahead and OpenMP
我们调查的密集矩阵分解(DMF)算法的并行化策略,使用OpenMP,从遗留(或传统)的解决方案,它只是简单地提取并发从多线程版本的BLAS。这种方法也不同于更复杂的运行时辅助实现,后者将操作分解为任务,并通过指令和运行时支持来识别依赖关系。相反,我们的策略达到高性能显式地嵌入到DMF代码的静态前瞻技术,以克服性能瓶颈的面板因式分解,并实现尾随更新通过缓存感知多线程实现的BLAS。虽然并行算法是用高级别的抽象来指定的,但实际的实现可以很容易地从它们中导出,从而为在任何具有类似OpenMP的运行时的多核平台上导出相当大一部分LAPACK功能的高性能实现铺平了道路。
2018-04-19 cs.DC cs.MS
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
LIKWID: A lightweight performance-oriented tool suite for x86 multicore environments
要充分利用当今处理器的性能,需要深入了解微体系结构,并了解线程和缓存拓扑中不断增长的复杂性。LIKWID是一组命令行实用程序,解决了四个关键问题:探测共享内存节点的线程和缓存拓扑,在程序上强制执行线程-核心亲和性,测量性能计数器指标,以及切换硬件预取器。还包括一个用于从用户代码中使用性能计数功能的API。我们清楚地说明了与广泛使用的PAPI接口的差异。为了展示工具集的功能,我们使用著名的OpenMP STREAM triad基准测试来展示线程固定对性能的影响,并使用亲和性和硬件计数器工具来研究专门优化以利用多核芯片上的共享缓存的模板代码的性能。
2010-06-30 cs.DC cs.PF
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
Compiler Enhanced Scheduling for OpenMP for Heterogeneous Multiprocessors
非对称多核处理器(AMP)调度是异构多核处理器的一种特殊情况,是一个广泛研究的课题。大多数调度技术是运行时的,通常不考虑并行编程框架(如OpenMP)中使用的并行编程模式。另一方面,这些并行编程平台的当前编译器是硬件无关的,这阻止了big.LITTLE等平台的任何编译时优化,并且必须完全依赖于运行时优化。在本文中,我们提出了一个硬件感知的编译器增强调度(CES),其中常见的编译器转换与编译器添加的调度命令,以利用硬件的不对称性,提高运行时的效率。我们实现了一个用于OpenMP的编译器,并在三星Exynos中使用big.LITTLE架构证明了其效率。平均而言,我们看到在标准NPB和FSU基准测试中,CES在big.LITTLE中跨多个频率和核心配置减少了18%的运行时间和14%的能耗。
2018-08-18 cs.DC cs.PF
Model Coupling between the Weather Research and Forecasting Model and the DPRI Large Eddy Simulator for Urban Flows on GPU-accelerated Multicore Systems
在这份报告中,我们提出了一种新的方法来模型耦合共享内存多核系统托管OpenCL兼容的加速器,我们称之为格拉斯哥模型耦合框架(GMCF)。我们讨论了GMCF的原型及其应用程序的实现耦合天气研究和预报模型和OpenCL加速版本的城市流(LES)在DPRI开发的大涡模拟器。这项工作的第一阶段涉及LES的OpenCL端口。用于OpenCL移植的方法是自动分析和代码生成以及基于规则的手动并行化的组合。为了进行评估,使用gfortran、fort和pgfortran}编译非OpenCL LES代码,在每种情况下都具有自动并行化和自动向量化。OpenCL加速版本的LES在NVIDIA GeForce GTX 480 GPGPU上实现了7倍的速度提升,而在12核Intel Xeon E5-2640上运行的原始代码的最快编译速度。在这项工作的第二阶段,我们构建了格拉斯哥模型耦合框架,并成功地使用它来耦合一个OpenMP并行WRF实例与OpenCL LES实例,该实例在GPGPI上运行LES代码。该系统只需要对原始代码进行非常小的更改。报告讨论了这项工作的理由、目标、方法和执行细节。
2015-04-09 cs.DC
OpenMP Meta-Lowering: A Declarative Approach to Performance Portable Parallel Code Generation
University of Bologna(博洛尼亚大学)
本文提出 OpenMP 元降级方法,利用 MLIR 和 DSL 将降级可编程化,在保持性能的同时减少代码量,实现跨目标的高效并行代码生成。
2026-10-05 cs.DC cs.PL
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
New Thread Migration Strategies for NUMA Systems
多核系统在执行共享存储器并行代码时呈现影响性能的板上存储层次结构和通信网络。描述这种影响是复杂的,理解特定硬件配置对不同代码的影响至关重要。在以前的作品中,在运行时从硬件计数器中提取的监控信息已被用来在并行代码中的每个线程的行为,在每秒的浮点操作的数量,操作强度,和存储器访问的延迟。我们建议使用这些信息来指导线程迁移策略,通过增加本地性和亲和力来提高执行效率。采用不同配置的多核NAS并行OpenMP基准测试来验证所提出的线程迁移策略的优势。我们提出的策略产生高达70%的改善的情况下,本地性和亲和力低,有一个小的性能退化代码具有高的本地性和亲和力。
2018-09-28 cs.DC cs.PF
Unified schemes for directive-based GPU offloading
针对OpenACC和OpenMP target在GPU卸载中的互补优缺点,开发仅含头文件的库Solomon,统一两者接口并提供三种符号以降低学习和实现成本,支持多厂商GPU,已开源且在N体模拟等场景验证。
2024-11-28 astro-ph.IM cs.DC cs.PF
Bridging the Architecture Gap: Abstracting Performance-Relevant Properties of Modern Server Processors
我们描述了一种通用的建模方法,用于预测服务器处理器上的稳定状态循环的单核和多核运行时间。为此,我们严格区分应用程序和机器模型:应用程序模型包括循环代码,问题大小和其他运行时参数,而机器模型是CPU所有性能相关属性的抽象。我们介绍了一个通用的方法来确定机器模型和相关的服务器处理器架构的英特尔,AMD,IBM和Marvell/Cavium目前的结果。考虑到如此广泛的体系结构,足够的性能建模所需的特性集出奇地少。为了验证我们的方法,我们比较性能预测的经验数据的OpenMP并行预处理CG算法,其中包括计算和内存绑定的内核。单核心和多核心分析表明,该模型具有5%和10%的平均和最大相对误差。偏离模型和获得的见解进行了详细讨论。
2019-07-01 cs.AR cs.DC cs.PF
Estimating the Potential Speedup of Computer Vision Applications on Embedded Multiprocessors
Univ. Grenoble Alpes(格勒诺布尔阿尔卑斯大学);CNRS(法国国家科学研究中心);STMicroelectronincs(意法半导体)
计算机视觉应用构成了嵌入式多核架构的关键驱动力之一。尽管新架构中可用内核的数量不断增加,但设计应用程序以最大限度地利用平台仍然是一项挑战。从这个意义上说,并行性能预测工具可以帮助开发人员了解应用程序的特性,并找到最合适的并行化策略。在这项工作中,我们提出了一种方法,早期并行性能估计嵌入式多处理器从顺序应用程序的痕迹。我们描述了它在Parana中的实现,Parana是一个快速跟踪驱动的模拟器,针对STMicroelectronics的STxP70专用多处理器(ASMP)上的OpenMP应用。FAST关键点检测器应用的结果显示,与参考循环近似模拟器相比,误差幅度小于10%,建模工作量更低,执行时间最多快20倍。
2015-02-26 cs.CV cs.DC cs.PF
A fully parallel, high precision, N-body code running on hybrid computing platforms
我们提出了一个新的实现的数值积分的经典,引力,N体问题的基础上的高阶厄米积分计划块时间步长,直接评估的粒子-粒子力。此代码(称为HiGPU)的主要创新是其完全并行化,在多核中央处理器的使用中利用了OpenMP和MPI,以及用于托管图形处理器的计算统一设备架构(CUDA)或OpenCL。我们在意大利超级计算联盟CINECA提供的超级计算机IBM iDataBase DX 360 M3 Linux Infiniband Cluster中使用多达256个GPU测试了代码的性能和准确性,N值高达800万。我们能够跟踪一个800万个物体的系统的进化,只需要几次交叉,这是以前直接求和代码无法完成的任务。科学界可免费获得该守则。
2012-07-11 astro-ph.IM cs.DC physics.comp-ph
A Study of Performance Portability in Plasma Physics Simulations
本研究通过场线追踪和粒子网格代码,在四种HPC平台上评估了Kokkos和OpenMP框架,证明二者能实现跨不同硬件架构的性能可移植性,其中Kokkos覆盖范围最广。
2024-10-19 cs.DC cs.PF physics.comp-ph