Popt4jlib: A Parallel/Distributed Optimization Library for Java
本文描述了开源popt 4jlib库(https://githhub.org/ioannislogou/popt4jlib)的架构设计以及关键实现细节,该库包含相当大量的元启发式和其他精确优化算法并行/分布式Java实现。虽然我们报告的加速和效率问题的一些算法在图书馆,我们主要关心的是详细的设计决策的关键并行/分布式基础设施内置到图书馆,使开发人员更容易开发自己的并行实现的算法,而不是简单地使用它作为一个关闭的自我应用程序库。
2019-08-01 cs.DC cs.NE
A Parallel and Distributed Rust Library for Core Decomposition on Large Graphs
University of Pisa(比萨大学);University of Calabria(卡拉布里亚大学)
本文提出了一种基于Rust语言的并行和分布式库,用于高效计算大规模图的核心分解,通过优化算法和并发机制实现了显著的速度提升。
2025-11-28 cs.DC
Study on performance improvement of oil paint image filter algorithm using parallel pattern library
Samsung R&D Institute, India - Bangalore(三星研发中心(印度班加罗尔))
本文详细研究了不同参数的油画图像滤波算法在RGB模型下的滤波性能。油画图像处理图像处理是一个性能要求很高的领域,目前的研究试图通过并行模式库来提高图像处理的性能。随着核的增大,油彩图像滤波算法的处理时间呈指数增长。
2014-03-19 cs.CV cs.DC
Massively Parallel Open Modification Spectral Library Searching with Hyperdimensional Computing
通常用于蛋白质鉴定的质谱法产生大量光谱,需要与大型数据库进行匹配。事实上,由于意想不到的翻译后修饰,它们中的大多数仍然未被识别或错配。开放修正搜索(OMS)是一种通过考虑光谱中每一种可能的变化来提高识别率的策略,但它以指数方式扩展了搜索空间。在这项工作中,我们提出了HyperOMS,它重新设计了基于超维计算的OMS,以应对这些挑战。与用浮点数表示光谱数据的现有算法不同,HyperOMS用高维二进制向量编码光谱数据,并在高维空间中执行高效的OMS。HyperOMS具有大量的并行性和简单的布尔运算,可以在并行计算平台上高效地处理。实验结果表明,与最先进的基于GPU的OMS工具相比,基于GPU的HyperOMS的速度快于$17\times$,并且$6.4\times$的能效更高,同时提供与竞争搜索工具相当的搜索质量。
2022-12-31 cs.DC
OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations
OpenRAND 是一个 C++17 仅头文件随机数库,面向 CPU/GPU 并行计算,以统计稳健、可复现且高性能为目标,在布朗行走等测试中比 cuRAND 最高快 1.8 倍。
2023-10-30 cs.DC
PetFMM--A dynamically load-balancing parallel fast multipole library
计算$N$ -体问题的快速算法可大致分为基于网格的插值方法和分层或多分辨率方法。最后一类属于著名的快速多极子方法(FMM),它提供了O(N)的复杂性。本文提出了一个可扩展的并行库$N$体相互作用,利用FMM算法,建立在PETSc的框架。该库的一个突出特点是它被设计为可扩展的,目的是统一涉及许多算法的工作,这些算法基于与FMM相同的原理,并使科学应用代码的开发变得容易。本文还详细介绍了一个详尽的模型,用于并行计算基于树的$N$体算法,包括工作估计和通信估计。有了这个模型,我们能够实现一种方法来提供自动的,先验的并行执行的负载均衡,实现最佳分配的处理器之间的计算工作和最小的处理器间的通信。使用执行$N$涡流颗粒诱导速度计算的客户端应用程序,对库进行了充分验证和测试。强大的缩放结果与近百万粒子在多达64个处理器,包括加速和并行效率。该库目前能够在64个处理器上实现85%以上的并行效率。该软件库在PETSc许可下是开源的;这保证了对科学界的最大影响,并鼓励扩展和应用程序的基于同行的协作。
2009-05-15 cs.DC cs.DS
PASGAL: Parallel And Scalable Graph Algorithm Library
本文提出并行图算法库PASGAL,通过垂直粒度控制技术隐藏同步开销并重新设计算法与数据结构,有效解决了大直径图上的并行处理瓶颈,在BFS等算法上显著优于现有并行实现。
2024-04-26 cs.DC cs.DS
Design and Development of a Java Parallel I/O Library
针对Java HPC应用缺乏标准并行I/O API的问题,本项目开发受MPI-IO启发的Java并行I/O库,并在现有消息库上实现参考版本,通过基准和真实应用与C/C++版本对比性能。
2023-05-12 cs.DC
Alpaka - An Abstraction Library for Parallel Kernel Acceleration
将应用程序移植到新的硬件或编程模型是一个繁琐且容易出错的过程。减轻这些负担的每一个帮助都节省了开发人员的时间,然后可以将这些时间投入到应用程序本身的发展中,而不是在新平台上保持现状。Alpaka库定义并实现了一个抽象的层次冗余并行模型。该模型利用并行性和存储层次结构在当前硬件中可用的所有级别上的节点上。通过这样做,它允许通过忽略特定的不支持级别并仅利用特定加速器上支持的级别来实现跨各种类型加速器的平台和性能可移植性。支持所有硬件类型(多核和众核CPU、GPU和其他加速器),并且可以以相同的方式进行编程。Alpaka C++模板接口允许直接扩展库以支持其他加速器和其内部优化的专门化。在新的(受支持的)平台上运行Alpaka应用程序只需要更改一行源代码,而不是大量的\#ifdef。
2016-02-26 cs.DC cs.MS
Intel Cilk Plus for Complex Parallel Algorithms: "Enormous Fast Fourier Transform" (EFFT) Library
在本文中,我们展示了并行计算的大型一维离散快速傅立叶变换(DFFT)的多核英特尔至强处理器的方法。基于递归Cooley-Tukey方法的DFFT必须控制高速缓存利用率、内存带宽和向量硬件使用率,并且同时跨多个线程或计算节点进行缩放。我们的方法基于DFFT的单线程英特尔数学内核库(MKL)实现,并使用英特尔Cilk Plus框架实现线程并行。我们演示了英特尔Cilk Plus处理以嵌套循环为中心的并行递归的能力,而无需根据内核数量或缓存指标调整代码。我们的工作成果是一个名为EFFT的库,它执行大小为2^N(N>=21)的1D DFT的速度比相应的英特尔MKL并行DFT实现快1.5倍,比FFTW快2.5倍。EFFT的代码可以在GPL v3许可证下免费下载。这项工作提供了一种新的高效DFFT实现,同时演示了如何使用英特尔Cilk Plus框架优化具有复杂并行模式的计算机科学问题以实现高性能的教育示例。
2014-09-19 cs.DC cs.DS cs.MS
Developing a High Performance Software Library with MPI and CUDA for Matrix Computations
如今,并行计算的范式正在发生变化。CUDA现在是GPU上通用计算的流行编程模型,大量应用程序被移植到CUDA,与优化的CPU实现相比,获得了数量级的加速。将消息传递模型与用于并行计算的共享内存模型相结合的混合方法是非常大型应用程序的解决方案。我们考虑了一个异构集群,它使用MPI和CUDA将CPU和GPU计算结合起来,以开发高性能线性代数库。我们的图书馆处理大型线性系统求解器,因为它们是科学和工程领域的常见问题。由于高存储器需求和计算成本,用于计算此类系统的解的直接方法可能非常昂贵。一种有效的替代方法是只计算解的近似值的迭代法。在本文中,我们提出了一个实现的库,使用MPI和CUDA实现直接和迭代线性系统求解器的混合计算模型。我们的库使用MPI/CUDA组合实现了基于LU和Cholesky分解的求解器和一些非平稳迭代法。我们比较了我们的MPI/CUDA实现的性能与经典的程序写在一个单一的CPU上运行。
2015-11-23 cs.DC cs.MS
A parallel pattern for iterative stencil + reduce
我们提倡使用Loop-of-Stencil-Reduce模式来简化异构多核平台上数据并行程序的实现。Loop-of-stencil-reduce足够通用,可以在数据并行和流应用程序中或两者的组合中使用map、reduce、map-reduce、stencil、stencil-reduce,以及更重要的是,它们在循环中的使用。该模式使得在不同的GPU上部署单个模板计算内核成为可能。我们讨论了在FastFlow中实现Loop-of-stencil-reduce,FastFlow是一个基于并行模式的应用程序实现框架。实验来说明使用环的模板减少在开发数据并行内核运行在异构系统上。
2016-09-15 cs.DC
FLUPS -- a flexible and performant massively parallel Fourier transform library
大规模并行傅立叶变换广泛应用于计算科学,特别是涉及无界泊松问题的计算流体动力学。在实践中,后者通常是最耗时的操作,因为其不可避免的所有对所有的通信模式。原始的flups库通过为无界泊松问题的连续解决方案量身定制的分布式傅立叶变换的实现来解决这个问题。然而,所提出的实现缺乏灵活性,因为它只支持以单元格为中心的数据布局,并具有一个普通的通信策略。这项工作沿着两个方向扩展了图书馆。首先,flups实现一般化,以支持以节点为中心的数据布局。其次,提供了三种不同的方法来处理通信:一种是所有对所有,两种是依赖于手动打包和MPI_Datatype通过网络进行通信的非阻塞实现。所提出的软件对无界,半无界和周期域的解析解进行了验证。的方法的性能进行比较,accFFT,另一个分布式FFT实现,使用周期性的情况下。最后,每个实现的性能指标进行了分析和详细的各种顶级欧洲设施高达49,152个核心。这项工作带来了一个完全生产就绪和高性能的分布式FFT库,具有所有可能类型的FFT和数据布局的灵活性。该代码可以在BSD-3许可证下在github.com/vortexlab-uclouvain/flups上获得。
2023-03-21 cs.DC physics.comp-ph
AccFFT: A library for distributed-memory FFT on CPU and GPU architectures
我们提出了一个新的库并行分布式快速傅立叶变换(FFT)。FFT在科学和工程中的重要性以及高性能计算的进步需要进一步改进。AccFFT将支持CUDA的图形处理单元(GPU)的现有FFT库扩展到分布式内存集群。我们使用重叠的通信方法来减少PCIe从/到GPU的传输开销。我们目前的数值计算结果小牛平台在得克萨斯州高级计算中心(TACC)和泰坦系统在橡树岭国家实验室(ORNL)。我们将库扩展到Titan的4,096个K20 GPU。
2016-05-25 cs.DC
Somoclu: An Efficient Parallel Library for Self-Organizing Maps
Somoclu是一个大规模并行工具,用于在用C++编写的大型数据集上训练自组织映射。它构建在用于多核执行的OpenMP和用于跨集群中的节点分配工作负载的MPI之上。如果图形处理单元可用,它还能够通过使用CUDA来促进培训。包含了一个稀疏内核,这对于高维但稀疏的数据很有用,比如文本挖掘工作流中常见的向量空间。Python、R和MATLAB接口便于交互式使用。除了快速执行之外,内存使用也得到了高度优化,即使在一台计算机上也可以训练大型紧急映射。
2017-06-09 cs.DC cs.MS cs.NE
Parallel Data Object Creation: Towards Scalable Metadata Management in High-Performance I/O Library
针对高层I/O库集体创建数据对象开销大的问题,本文提出基于PnetCDF的新文件头格式,支持独立创建,在4096进程下创建568万个对象时提速达582倍。
2025-06-18 cs.DC
Streami: An MPI Data-Parallel Library to Compute Field Lines on GPUs
University of Cologne(科隆大学);University of Ostrava(俄斯特拉发大学);NVIDIA(英伟达)
提出Streami,一个可扩展的GPU加速库,用于在高性能计算机上计算流体流场中的场线,支持后处理或原位分析,并与现有MPI应用交互。
2026-05-29 cs.CE cs.DC cs.GR
An asynchronous and task-based implementation of Peridynamics utilizing HPX -- the C++ standard library for parallelism and concurrency
在现代超级计算机上,异步多任务系统正在出现,以解决计算节点的新体系结构。通过增加每个节点的核心的这种转变,需要一种新的编程模型,其重点是处理每个计算节点的核心数量增加的细粒度并行性。异步多任务(AMT)运行时间系统代表了一个新兴的范例,用于解决细粒度并行,因为他们处理的线程数量不断增加,每个节点和并发。HPX是一个开放源码的C++并行标准库,是一个符合C++标准的先进制造技术。这意味着HPX的应用程序编程接口(API)与C++标准委员会的定义是一致的。例如,对于未来化的概念,hpx:future可以替换为std::future,而不会破坏API。周波理论是连续介质力学的一种非局部推广,适用于处理断裂力学中出现的不连续位移场。同许多非局部方法一样,周波方法需要大量的计算资源来解决实际问题。本文研究了一个基于异步任务的方式实现的peridemics动车组节点离散化。基于异步任务的实现的可扩展性与理论估计一致。此外,该代码的可扩展性是收敛的隐式时间积分和恢复的理论解。显式的时间积分,收敛的结果,展示与理论索赔在以前的作品中的结果的协议。
2020-10-28 cs.DC physics.comp-ph
A Virtual Frame Buffer Abstraction for Parallel Rendering of Large Tiled Display Walls
我们提出dw 2,一个灵活的和易于使用的软件基础设施的交互式渲染大型平铺显示墙。我们的库通过显示“服务”将平铺显示墙表示为单个虚拟屏幕,渲染器连接到该显示“服务”并从现场或远程集群发送要显示的图像平铺。显示服务可以很容易地配置为支持一系列典型的网络和显示硬件配置;客户端库提供了一个简单的接口,可以很容易地集成到现有的渲染器中。我们使用CPU和GPU光线跟踪器在不同配置下评估显示墙服务的性能,包括使用多个显示墙的现场和远程渲染场景
2020-09-07 cs.DC
Grid: A next generation data parallel C++ QCD library
在这篇文章中,我们讨论了一个新的物理代码库,称为网格的动机,实施细节和性能。它的目的是更高性能、更通用,但在精神上与QDP++ \cite{QDP}相似。我们的方法是将基本类型系统设计为始终快速,而不是在一些优化的例程上螺栓,我们试图直接在Grid框架中编写所有优化的例程。希望这将在下一代超级计算机中提供最佳的实践性能,这将为传统的标量代码提供编程挑战。我们说明了用于实现我们的目标的编程模式,以及通过使用C++11中的新功能而实现的生产力的进步。
2015-12-10 cs.DC cs.MS hep-lat
Using PHAST to port Caffe library: First experiences and lessons learned
性能一直是计算领域的热门话题。然而,实现它的可行方法在计算历史的不同时刻采取了许多形式。今天,技术限制推动了越来越多的并行多核和众核架构的采用,甚至使用高度特定的硬件(又名特定领域架构,或DSA)来解决非常特定的问题。在这种新的环境下,一个主要的问题是如何开发软件一次,并能够在多个加速器架构上无缝运行。理想情况下,目标是一个单一的编程模型,可以自动将代码定位到不同类型的并行架构,允许对源代码进行最小(如果有的话)的特定调优,以寻求性能可移植性。目前仍然缺乏一个全面的解决办法。在这项工作中,我们提出了使用PHAST库,它允许用户代码一次,在一个高层次的抽象,从而具有高生产力,并自动针对不同的并行设备通过改变编译过程。作为一个案例研究,我们致力于移植著名的深度学习Caffe框架。该框架已被分成不同的部分,其中一些已经被移植,获得了一个可以在CPU和GPU上运行的简单实现。最后,我们讨论了移植过程中吸取的经验教训,并分析了所获得的性能的角度完成移植和扩展到未来的后续工作。
2020-05-28 cs.DC
PyFAI: a Python library for high performance azimuthal integration on GPU
pyFAI软件包旨在将X射线衍射图像简化为粉末衍射曲线,供科学家进一步处理。本文描述了如何使用Numpy包将图像转换为径向轮廓,以及如何使用Cython加速该过程。该算法是并行的,需要完全重新设计,以受益于大规模并行设备,如图形处理单元或加速器,如使用PyOpenCL库的Intel Xeon Phi。
2014-12-19 astro-ph.IM cs.DC cs.MS
Parallel grid library for rapid and flexible simulation development
我们提出了一个易于使用和灵活的网格库开发高度可扩展的并行仿真。分布式CarbonaceCell-Refinable Grid(dccrg)支持自适应网格细化,并允许使用任意C++类作为单元数据。网格单元中的数据量可以在空间和时间上变化,从而允许dccrg用于非常不同类型的模拟,例如流体和粒子代码。Dccrg在不同进程上的相邻单元之间透明地、异步地传输数据,允许计算和通信重叠。这使得出色的可扩展性至少高达32 k核心的磁流体动力学测试取决于问题和硬件。在这里介绍的dccrg版本中,部分网格元数据在MPI进程之间复制,将自适应网格细化(AMR)的可扩展性减少到200到600个进程之间。Dccrg是自由软件,任何人都可以使用,学习和修改,并可在[https://gitorious.org/dccrg]。用户也请引用这项工作时发表的结果与dccrg。
2012-12-14 cs.DC physics.comp-ph physics.space-ph
Benchmarking mixed-mode PETSc performance on high-performance architectures
高度并行多处理的趋势在所有现代计算机体系结构中无处不在,从手持设备到大规模HPC系统;但许多应用程序正在努力充分利用现代高性能平台中暴露的多个并行级别。为了实现最新硬件进步的全部潜力,可以采用共享存储器编程技术和节点间消息传递之间的混合模式,其以最小的开销提供高水平的并行性。对于科学应用来说,这不仅意味着模拟代码本身,而且整个软件堆栈都需要发展。在本文中,我们评估的混合模式性能的PETSc,一个广泛使用的科学图书馆的可扩展的偏微分方程的解决方案。我们描述了在库中添加的OpenMP线程功能,重点是稀疏矩阵向量乘法。我们强调实现良好的并行性能,如显式通信重叠使用基于任务的并行性的关键挑战,并展示了如何进一步提高性能显式负载均衡线程MPI进程。使用一组从Fluidity中提取的矩阵,一个CFD应用程序代码,使用该库作为其线性求解器引擎,然后,我们在几个现代HPC架构的多个节点上对混合模式PETSc的并行性能进行基准测试。我们评估的并行可扩展性的统一内存访问(UMA)系统,如富士通PRIMEHPC FX 10和IBM BlueGene/Q,以及非统一内存访问(NUMA)Cray XE 6平台。一个详细的比较,突出了每个特定的架构的特点,在证明有效的强大的可扩展性的稀疏矩阵向量乘法显着的加速比纯MPI模式。
2013-07-17 cs.DC
CROFT: A scalable three-dimensional parallel Fast Fourier Transform (FFT) implementation for High Performance Clusters
三维(3D)输入数据的FFT是数值模拟的重要计算核心,并且广泛用于在大量处理器上运行的高性能计算(HPC)代码中。许多科学应用的性能,如分子动力学模拟,取决于所使用的底层3D并行FFT库。本文提出了一种C-DAC三维快速傅里叶变换库,它利用束分解实现了三维并行FFT。为了在不影响性能的情况下利用处理器内核的超线程功能,CROFT被设计为与MPI一起使用多线程。CROFT实现具有使用多线程将计算和内存I/O与MPI通信重叠的创新特性。与其他3D FFT实现相反,CROFT仅使用两个线程,其中一个线程专用于通信,以便它可以有效地与计算重叠。因此,根据所使用的进程的数量,CROFT与FFTW 3库相比实现了约51%至42%的性能改进。
2020-08-27 cs.DC cs.PF
votess: A multi-target, GPU-capable, parallel Voronoi tessellator
本研究提出了基于SYCL的并行3D Voronoi镶嵌库votess,采用逐单元计算算法,适配CPU、GPU等异构平台,性能优于传统单线程程序,可用于流体力学即时计算等性能敏感场景。
2024-12-11 astro-ph.IM cs.DC
VLCs: Managing Parallelism with Virtualized Libraries
The University of Texas at Austin(德克萨斯大学奥斯汀分校);Texas State University(德克萨斯州立大学);Microsoft(微软)
提出虚拟库上下文(VLCs)作为进程子单元,封装库和资源分配,无需修改库代码即可控制资源利用,防止竞争并支持并行执行,实验显示加速比可达2.85倍。
2026-05-22 cs.DC cs.OS
dMath: A Scalable Linear Algebra and Math Library for Heterogeneous GP-GPU Architectures
本文介绍了一种新的可扩展并行数学库dMath,它展示了在使用节点内或节点间混合并行进行深度学习时的领先扩展能力。dMath提供易于使用的分布式基本原语和各种特定于域的算法。这些包括矩阵乘法,卷积和其他允许快速开发高度可扩展的应用程序,包括深度神经网络(DNN),而以前仅限于为单个GPU提供有效原语的库,如Nvidia cuplex和cudnn或来自Nerve neon框架的DNN原语。HPC软件的开发是一项困难的劳动密集型工作,需要独特的技能。dMath允许广泛的开发人员轻松利用并行和分布式硬件。这种方法的一个贡献是数据永久存储在GPU硬件上,避免了主机和设备之间的昂贵传输。利用了高级存储管理技术,包括对传输数据的高速缓存和通过池化的存储器重用。dMath的一个关键贡献是它为特定的支持领域提供了性能、可移植性和生产力。它使算法和应用程序编程人员能够快速解决问题,而无需管理与多级并行相关的显著复杂性。
2016-04-05 cs.DC cs.MS cs.NE
UBEP: Re-architecting Expert Parallelism Communication Library for Production Superpods
State Key Laboratory for Novel Software Technology, Nanjing University(新型软件技术国家重点实验室,南京大学);Huawei Technologies Co., Ltd.(华为技术有限公司)
研究针对生产超级集群部署MoE模型面临的挑战,提出UBEP通信库,重新思考MoE全对全原语,经大规模实验,有效降低了全对全延迟和MoE推理每输出令牌时间。
2026-07-09 cs.AI cs.DC cs.NI
A PGAS Communication Library for Heterogeneous Clusters
这项工作提出了一个异构通信库的集群处理器和FPGA。这个库Shoal支持应用程序的分区全局地址空间(PGAS)内存模型。PGAS是一种用于集群的共享内存模型,它区分了本地和远程内存访问。通过Shoal及其用于硬件和软件的通用应用程序编程接口,应用程序可以更自由地迁移到最佳平台并部署到动态集群拓扑中。该库使用一套完整的微基准测试来建立延迟和吞吐量性能。我们还展示了Jacobi迭代法的实现,该方法演示了应用程序可以轻松地在平台之间移动,以获得更快的运行时间。通过这项工作,我们已经证明了使用PGAS编程模型的多节点异构平台的可行性。
2021-04-26 cs.AR cs.DC
Extending a serial 3D two-phase CFD code to parallel execution over MPI by using the PETSc library for domain decomposition
为了利用过去二十年的高性能计算(HPC)向通过快速互连绑定在一起的计算节点集群的转变,现代可扩展CFD代码必须能够使用消息传递接口(MPI)在多个节点之间有效地分配工作。MPI可以使非常大的模拟运行在非常大的集群,但它是必要的,大部分的CFD代码编写与MPI铭记,一个障碍,并行化现有的串行代码。在这项工作中,我们提出了现有的两阶段的三维Navier-Stokes求解器,这是完全串行的,并行执行模型,使用MPI的结果。用连续表面力法求解了两种不可压流体的三维纳维-斯托克斯方程,用levelset方法确定了界面的位置。我们采用可移植的可扩展工具包的科学计算(PETSc)域分解(DD)的框架中,只有一小部分的代码需要修改。我们研究了所得代码的强弱标度。案例研究,是相关的基本了解电聚结器中的油/水分离。
2014-05-15 cs.DC physics.comp-ph physics.flu-dyn
Optimizing Data-Intensive Computations in Existing Libraries with Split Annotations
内存和CPU之间的数据移动是并行数据密集型应用程序的主要瓶颈。作为回应,研究人员提出使用编译器和中间表示(IR),在现有的高级API(如NumPy和TensorFlow)下应用循环融合等优化。即使这些技术一般不需要改变用户的应用程序,他们需要侵入性的变化库本身:往往,库开发人员必须重写每个功能使用一个新的IR。在本文中,我们提出了一种新的技术,称为拆分注释(SA),使关键数据移动优化未修改的库函数。SA只要求开发人员注释函数并实现指定如何对库中的数据进行分区的API。注释和API描述了如何在尊重每个函数的正确性约束的情况下启用跨函数数据流水线和并行化。我们在一个名为Mozart的系统中实现了SA的并行运行时。我们发现,Mozart可以将英特尔MKL和Pandas等库中的工作负载加速高达15倍,而无需修改库。Mozart还提供了与需要重写库的解决方案相竞争的性能提升,并且有时可以通过利用现有的手动优化代码将这些系统的性能提高2倍。
2019-09-18 cs.DC cs.PF
Parallel solution of saddle point systems with nested iterative solvers based on the Golub-Kahan Bidiagonalization
本文研究了Golub-Kahan双对角化算法在求解具有2 × 2块结构的对称不定线性系的并行迭代问题中的可扩展性。该算法已在并行数值库PETSc中实现。由于嵌套的外迭代策略可能是必要的,我们研究了内部求解器的不同选择,包括并行稀疏直接和多重网格加速迭代法。我们展示了强大的和弱的可扩展性的Golub-Kahan双对角化的迭代法时,适用于一个二维Poiquillille流和二维和三维Stokes测试问题。
2020-01-28 cs.DC cs.NA math.NA
Chunks and Tasks: a programming model for parallelization of dynamic algorithms
我们提出了块和任务,一个并行编程模型建立在抽象的数据和工作。应用程序员指定如何将数据和工作分别拆分为更小的片段、块和任务。Chunks and Tasks库将块和任务映射到物理资源。通过这种方式,我们寻求将用户友好性与高性能相结合。应用程序员可以使用几个简单的构建块来表达并行算法,定义数据和工作对象及其关系。不需要显式的通信调用;工作和数据的分发由Chunks和Tasks库处理。这使得需要动态分配工作和数据的复杂应用程序的高效实现变得更加容易。同时,Chunks and Tasks对数据访问和任务依赖性施加了限制,这有助于开发高性能并行后端。我们讨论了编程模型的基本抽象,以及性能和故障恢复的考虑。我们还提出了一个试点C++库实现集群的多核机器,并证明其性能稀疏分块矩阵矩阵乘法。
2012-10-28 cs.DC cs.SE
Improving the scalability of a high-order atmospheric dynamics solver based on the deal.II library
该研究针对基于deal.II库的大气动力学数值求解器,通过无矩阵方法、预处理与求解技术优化及采用最新库版本和执行标志,提升了其大规模并行性能。
2025-07-01 cs.DC cs.NA cs.PF
JORA: JAX Tensor-Parallel LoRA Library for Retrieval Augmented Fine-Tuning
Arizona State University(亚利桑那州立大学);University of Illinois Chicago(伊利诺伊大学芝加哥分校)
针对RAG任务中LLM微调的内存瓶颈,提出基于JAX张量并行和LoRA的JORA库,实现高效分布式微调,在四GPU上运行速度提升超12倍且显存减半。
2024-03-19 cs.CL cs.DC cs.LG
Swarm-NG: a CUDA Library for Parallel n-body Integrations with focus on Simulations of Planetary Systems
我们提出了Swarm-NG,一个C++库,用于使用高度并行的图形处理单元(GPU)(如NVIDIA的Tesla T10和M2070 GPU)高效地直接集成许多n体系统。虽然之前的研究已经证明了GPU对于具有数千到数百万个物体的n体模拟的好处,但Swarm-NG专注于许多少体系统,例如,数以千计的系统与3.每个星系有15个天体,这是研究行星系的典型方法。Swarm-NG将模拟并行化,包括运动方程的数值积分和使用NVIDIA的“计算统一设备架构”(CUDA)在GPU上进行的力评估。Swarm-NG包括四阶时间对称Hermite积分和混合变量辛积分的优化实现,以及其他算法的几个示例代码,以说明不熟悉CUDA的用户如何将自定义积分器引入Swarm-NG框架。为了优化性能,我们分析了GPU特定参数在双精度下对性能的影响。Swarm-NG的应用包括研究行星形成的后期阶段,测试行星系的稳定性,以及评估许多行星系模型与太阳系外行星宿主恒星(例如,径向速度、天体测量、凌日计时)。虽然Swarm-NG专注于许多行星系的并行积分,但底层积分器可以应用于各种各样的问题,这些问题需要使用不同的初始条件和/或参数值多次重复积分一组常微分方程。
2012-09-25 astro-ph.EP astro-ph.IM cs.DC
BSF-skeleton: A Template for Parallelization of Iterative Numerical Algorithms on Cluster Computing Systems
本文描述了一种使用并行BSF框架为集群计算系统创建应用程序的方法,该框架基于作者早先开发的并行计算的原始BSF(Bulk Synchronous Farm)模型。该模型使用主/从范例。BSF模型的主要优点是它允许在实现并行算法之前估计其可扩展性。BSF模型的另一个重要特性是以列表的形式表示问题数据,这大大简化了构建应用程序的逻辑。BSF框架设计用于使用MPI库在C++中创建并行程序。BSF框架的范围是高计算复杂性的迭代数值算法。BSF骨架具有以下显著特征。- BSF框架完全封装了与并行化程序相关的所有方面。- BSF框架允许在应用程序开发的所有阶段进行无错误编译。- BSF框架支持OpenMP编程模型和工作流。
2021-06-04 cs.DC cs.MS
POLO: a POLicy-based Optimization library
KTH Royal Institute of Technology(KTH皇家理工学院)
我们提出POLO -一个C++库的大规模并行优化研究,强调易用性,灵活性和效率的算法设计。它使用多重继承和模板编程将算法分解为基本策略并促进代码重用。由于算法和执行策略之间的明确分离,它为研究人员提供了一个简单而强大的平台,用于原型设计,在不同的并行计算架构和硬件平台上评估它们,并生成紧凑而高效的生产代码。包括C-API,用于高级语言的定制和数据加载。POLO使用户能够无缝地从串行迁移到多线程共享内存和多节点分布式内存执行器。我们演示了如何POLO允许用户实现国家的最先进的异步并行优化算法在短短几行代码和报告实验结果从共享和分布式内存计算架构。我们在https://github.com/pologrp上提供了POLO和POLO.jl,后者是用Julia语言编写的POLO的包装器,使用的是MIT许可证。
2018-10-08 cs.DC cs.LG cs.SE
Efficient Hybrid Execution of C++ Applications using Intel(R) Xeon Phi(TM) Coprocessor
英特尔(R)至强融核(TM)协处理器的推出为开发高度并行的应用程序开辟了新的可能性。英特尔C++ Composer XE中集成的架构的熟悉性和灵活性,以及编译器支持,使开发人员能够使用熟悉的编程范式和技术,这些通常不适合其他加速系统。现在可以轻松地在协处理器上使用复杂的C++模板代码,包括例如英特尔线程构建块(TBB)并行化库。这些技术不仅可行,而且通常也很高效,因为主机和协处理器属于同一架构系列,因此专为Xeon CPU设计的优化技术也有利于Xeon Phi。因此,高度优化的Xeon代码(如TBB库)在两者上都能很好地工作。在本文中,我们提出了一种新的并行库结构,它可以很容易地应用一个功能,并行阵列的每个成员,动态分配主机CPU和一个或多个协处理器卡之间的工作。我们描述了相关的运行时支持,并使用物理模拟的例子来证明,我们的库结构可以用来快速创建一个C++应用程序,将显着受益于混合执行,同时利用CPU内核和协处理器内核。实验结果表明,一个优化的源代码是足够的,使主机和协处理器的有效运行。
2012-11-23 cs.DC cs.SE
BSF: a parallel computation model for scalability estimation of iterative numerical algorithms on cluster computing systems
本文探讨了一种新的并行计算模型,称为批量同步农场(BSF),重点是估计的可扩展性,针对集群计算系统的计算密集型迭代算法。在BSF模型中,计算机是一组通过网络连接的处理器节点,并根据主/从范例进行组织。提出了一种BSF模型的代价度量。这个成本度量要求算法以列表上的操作的形式表示。这使我们能够推导出一个方程,预测并行程序的可扩展性边界:处理器节点的最大数量之后,加速开始下降。本文给出了应用BSF模型设计和分析并行数值算法的几个实例。在集群计算系统上进行的大规模计算实验证实了使用BSF模型获得的分析估计的充分性。
2021-01-02 cs.DC cs.PF
An MPI Implementation of a Self-Submitting Parallel Job Queue
Northern Arizona University(北亚利桑那大学)
提出一种在MPI环境中使用高级自提交并行作业队列的简单方法,通过C++库MPQueue实现,并应用于计算组合学和偏微分方程分岔图求解,验证了其高效性和可扩展性。
2012-04-19 cs.DC cs.NA math.NA
Unlocking massively parallel spectral proper orthogonal decompositions in the PySPOD package
King Abdullah University of Science and Technology(阿卜杜拉国王科技大学);University of California San Diego(加州大学圣地亚哥分校);Pennsylvania State University(宾夕法尼亚州立大学)
提出基于MPI的分布式谱本征正交分解算法并在PySPOD中实现,通过分布空间维度保留时间维快速傅里叶变换以避免瓶颈,支持大型数据集模态分析。
2024-07-31 cs.DC cs.MS physics.comp-ph
Integration of CUDA Processing within the C++ library for parallelism and concurrency (HPX)
经验表明,在当今的高性能系统上,很难将不同的加速卡的利用与系统的所有其它部分的高利用结合起来。随着内核数量的增加以及存储层次结构的加深,未来的架构(如百亿亿次集群)预计会加剧这一问题。分布式应用程序的一个重要方面是保证所有可用资源的高利用率,包括集群上的本地或远程加速卡,同时充分利用所有可用的CPU资源,并将GPU工作集成到整个编程模型中。对于CUDA代码的集成,我们扩展了HPX,一个通用的C++运行时间系统,用于任何规模的并行和分布式应用程序,并使异步数据传输和GPU设备和异步调用CUDA内核对这些数据。这两个操作都很好地集成到HPX的通用编程模型中,允许将任何GPU操作与主内核上的工作无缝重叠。任何用户定义的CUDA内核都可以在分布式应用程序可用的任何(本地或远程)GPU设备上启动。我们提出了异步实现的数据传输和内核启动CUDA代码的HPX异步执行图的一部分。使用这种方法,我们可以在集群上组合所有远程和本地可用的加速卡,以充分利用其性能。开销测量表明,作为HPX执行图的一部分,异步操作(数据传输+内核启动)的集成不会带来额外的计算开销,并显着简化了主内核和所使用的GPU设备上的协调和并发工作。
2018-10-26 cs.DC cs.PL
Legio: Fault Resiliency for Embarrassingly Parallel MPI Applications
由于高性能计算机规模的不断增大,故障的存在正成为应用程序必须面对的一种可能性。MPI本身不支持在检测到错误之后执行,这变得越来越有约束性。随着ULFM(用户级故障缓解库)的引入,它已经提供了一种可能的方法,在应用程序执行期间以代码修改为代价来超越故障。ULFM在应用程序中具有侵入性,并且还需要对其恢复过程有深入的了解。在本文中,我们提出了Legio,一个框架,降低了复杂性,引入弹性的并行MPI应用程序。通过将ULFM隐藏在MPI调用之后,该库能够以透明的方式向应用程序公开弹性功能,从而消除任何集成工作。一旦发生故障,失败的节点将被丢弃,并且只继续执行未失败的节点。还提出了该解决方案的分层实现,以在向大量节点扩展时减少修复过程的开销。我们在CINECA的Marconi 100集群上评估了我们的解决方案,结果表明该库引入的开销可以忽略不计,并且不会限制MPI的可扩展性。此外,我们还将该解决方案集成到实际应用中,通过注入故障来进一步证明其鲁棒性。
2021-04-29 cs.DC cs.PF
On the energy efficiency of sparse matrix computations on multi-GPU clusters
National Research Council of Italy(意大利国家研究委员会);Institute for Applied Computing “Mauro Picone”(毛罗·皮科内应用计算研究所)
本文研究了稀疏矩阵并行计算库的能量效率,通过优化多GPU使用提升性能与可扩展性,减少计算时间和能耗。
2026-04-15 cs.DC cs.MS cs.PF
Many Sequential Iterative Algorithms Can Be Parallel and (Nearly) Work-efficient
为了设计高效的并行算法,最近的一些论文表明,许多顺序迭代算法可以直接并行化,但在实现工作效率和高并行性方面仍然存在挑战。对于依赖项的数量渐近地超过最优顺序工作界限的某些问题,工作效率可能是困难的。为了实现高并行性,我们希望并行处理尽可能多的对象。目标是为具有最深依赖长度$D$的问题实现$\tilde{O}(D)$跨度。我们把这种性质称为轮效率。在本文中,我们展示了各种经典问题的工作效率和轮效率的算法,并提出了一般的方法来做到这一点。为了有效地并行许多顺序迭代算法,我们提出了阶段并行框架。框架为每个对象分配一个等级,并相应地处理它们。具有相同秩的所有对象可以并行处理。为了实现工作效率和高并行性,我们使用两种类型的通用技术。类型1算法的目标是使用范围查询来提取具有相同秩的所有对象,这样我们就可以避免评估所有的依赖关系。我们讨论活动选择,无限背包,以及更多使用类型1框架。第二类算法的目标是在对象依赖的最后一个对象完成时唤醒对象。我们讨论活动选择,最长增加子序列(LIS),和许多其他算法使用类型2的框架。我们所有的算法(几乎)都是工作效率和轮效率的。其中许多算法改进了已有的最优界,有些算法是第一次以轮效率达到工作效率。我们也实施了其中的许多措施。在具有合理依赖深度的输入上,我们的算法是高度并行化的,并且显著优于顺序算法。
2022-05-25 cs.DC cs.DS
A Parallel and Scalable Iterative Solver for Sequences of Dense Eigenproblems Arising in FLAPW
在密度泛函理论中最重要的方法之一-全位势线性化增广平面波(FLAPW)方法中,稠密广义本征问题被组织在长序列中。此外,每个特征问题都与序列中的下一个特征问题密切相关。我们提出了一种新的方法,利用这种相关性,通过使用基于子空间迭代和加速切比雪夫多项式的特征值求解器。由此产生的求解器,使用元素库框架并行化,实现了良好的可扩展性,并具有竞争力,目前密集的并行特征值求解器。
2013-05-21 cs.DC cs.MS physics.comp-ph
FullSWOF_Paral: Comparison of two parallelization strategies (MPI and SKELGIS) on a software designed for hydrology applications
在本文中,我们执行一个现有的,自由软件,FullSWOF 2D(http://www. univ-orleans.fr/mapmo/soft/FullSWOF/,其基于区域分解策略求解用于水文应用的浅水方程。第一种方法是基于经典的MPI库,而第二种方法使用并行的图形库,更确切地说,是一个名为GIS(地理信息系统图形库)的库。本文中给出的第一个结果表明,这两种方法在性能和可伸缩性方面是相似的。然而,这两种实施策略是非常不同的,我们讨论每一个的优点。
2013-07-18 cs.DC cs.MS cs.NA
CryptMPI: A Fast Encrypted MPI Library
云基础设施必须为敏感数据的高性能计算(HPC)应用程序提供安全性,以便在这样的环境中执行。然而,在当今公共云的通信基础设施中支持安全性是具有挑战性的,因为当前的数据中心网络非常快,添加加密可能会产生非常显著的开销。在这项工作中,我们介绍CryptMPI,一个高性能的加密MPI库,支持通信的完整性和隐私。我们提出的技术在CryptMPI和报告我们的基准测试结果使用微基准和NAS并行基准。评估结果表明,上述技术是有效的,在提高加密通信的性能。
2020-11-02 cs.CR cs.DC
The DUNE-ALUGrid Module
在本文中,我们提出了新的DUNE-ALUGrid模块。这个模块包含了一个主要的大修源代码从fixgrid库和绑定到DUNE软件框架。主要的变化包括用户定义的负载均衡,并行网格结构,以及重新设计的二维网格,现在也可以用于并行计算。此外,在代码中引入了许多改进,以提高并行效率并减少内存占用。原始的RISTOGrid库在DUNE社区中被广泛使用,这是因为它对于需要局部自适应和动态负载均衡的问题具有良好的并行性能。因此,这种新模式将使许多DUNE用户受益。此外,我们还增加了功能,以增加网格管理器可以使用的问题的范围,例如,引入一个三维四面体网格使用并行的最新顶点平分算法,以符合网格细化。在本文中,我们将讨论新的功能,扩展的DUNE接口,并解释各种例子如何在并行环境中使用的代码。
2015-08-15 cs.DC cs.MS
An Optimized and Energy-Efficient Parallel Implementation of Non-Iteratively Trained Recurrent Neural Networks
American University of Beirut(贝鲁特美国大学)
循环神经网络(RNN)已成功应用于各种顺序决策任务、自然语言处理应用和时间序列预测。这种网络通常通过时间反向传播(BPTT)进行训练,这是非常昂贵的,特别是当时间依赖性的长度和隐藏神经元的数量增加时。为了减少训练时间,极端学习机(ELM)最近被应用于RNN训练,在某些应用中达到了99%的加速。由于其非迭代性质,ELM训练在并行化时有可能达到比BPTT更高的加速比。在这项工作中,我们提出了\opt,一个优化的并行RNN训练算法的基础上ELM,利用GPU共享内存和并行QR分解算法,有效地达到最优解。该算法在六种RNN架构上进行了理论分析,包括LSTM和GRU,并在十个时间序列预测应用程序上对其性能进行了实证测试。\opt ~被证明达到高达845倍的加速比其顺序对应,并需要高达20倍的时间比并行BPTT少训练。
2019-11-26 cs.DC cs.LG stat.ML
pMR: A high-performance communication library
在许多并行机上,LQCD应用程序花费在通信上的时间对总挂钟时间有很大的贡献,特别是在强伸缩限制下。我们提出了一种新的高性能通信库,可以作为一个事实上的下拉式替代MPI在现有的软件。它的轻量级特性避免了MPI引入的一些不必要的开销,使我们能够在不更改任何算法或复杂实现的情况下提高应用程序的通信性能。作为第一个真实世界的基准,我们使用的pMR库在Regensburg实现的DD- $α$ AMG算法的粗网格求解。在现实的网格上,我们看到纯通信时间提高了2倍,总执行时间节省了20%。
2017-01-30 cs.DC hep-lat physics.comp-ph
lifex: a flexible, high performance library for the numerical solution of complex finite element problems
数值模拟在数学和计算科学中无处不在。一些工业和临床应用需要对在各种空间和时间尺度上演化的复杂多物理场系统进行建模。本研究介绍了设计和功能的生命,一个开源的C++库的高性能有限元模拟的多物理场,多尺度,多域的问题。lifex满足了对用户和开发人员容易访问的多功能、高效计算工具的新兴需求。我们展示了它的灵活性和有效性的一些说明性的例子和先进的应用程序的使用,并展示其并行性能高达数千个核心。
2022-11-11 cs.DC cs.MS cs.NA