Parallelization of the FFT on SO(3)
在本文中,一个工作最佳的并行Kostelec和Rockmore的著名的快速傅立叶变换及其逆的三维旋转群SO(3)的设计,实现,并测试。为此,首先简要回顾了顺序算法。在后续的并行算法的设计和实现中,我们采用了著名的Forster(PCAM)方法和OpenMP标准。并行化本身是基于基本基函数的对称性和几何方法,其中所得到的索引范围以这样一种方式进行变换,即不同的工作包可以有效地分布到计算节点。在一个64核的系统上进行的加速比和效率评估基准测试证明了并行算法在实践中的好处。这里,我们第一次为准确度和存储器关键带宽512两者的全变换呈现积极结果。使用所有64个可用核,对于所考虑的最大带宽128、256和512的加速比在前向变换中分别为29.57、36.86和34.36,在逆变换中分别为24.57、26.69和24.25。
2018-08-02 cs.DC
Auto Tuning of Hadoop and Spark parameters
TB、PB或更高级别的数据被称为大数据。这些数据无法使用传统的数据库软件进行处理,因此需要大数据平台。通过结合各种大数据应用程序和实用程序的功能和特性,大数据平台形成了一个单一的解决方案。它是一个帮助开发、部署和管理大数据环境的平台。Hadoop和Spark是Apache提供的两个开源大数据平台。这两个平台都有许多配置参数,这些参数可能会对执行时间、准确性等产生不可预见的影响。手动调整这些参数可能会很麻烦,因此需要自动调整它们。在研究和分析了前人在自动调整这些参数方面的各种工作之后,本文提出了两种算法--网格搜索和受控随机搜索。本文研究的性能指标是执行时间。这些算法有助于自动调整参数。实验结果表明,通过网格搜索和受控随机搜索,Hadoop的执行时间分别减少了70%和50%,Spark的执行时间分别减少了81.19%和77.77%。
2021-11-04 cs.DC
Accelerating Barnes-Hut t-SNE Algorithm by Efficient Parallelization on Multi-Core CPUs
Intel Corporation(英特尔公司)
t-SNE仍然是可视化高维数据的最流行的嵌入技术之一。大多数标准的t-SNE包,如scikit-learn,都使用Barnes-Hut t-SNE(BH t-SNE)算法来处理大型数据集。然而,该算法的现有CPU实现是低效的。在这项工作中,我们通过缓存优化,SIMD,并行顺序步骤,并提高多线程步骤的并行化加速BH t-SNE的CPU。我们的实现(Acc-t-SNE)在32核英特尔(R)Icelake云实例上分别比scikit-learn和daal 4py的最先进BH t-SNE实现快261倍和4倍。
2022-12-22 cs.AI cs.DC cs.LG
Improving Spark Application Throughput Via Memory Aware Task Co-location: A Mixture of Experts Approach
基于Apache Spark等大数据处理框架构建的数据分析应用程序是一类重要的应用程序。这些应用程序中的许多应用程序对延迟不敏感,因此可以在数据中心作为批处理作业运行。通过在一台计算主机上运行多个应用程序,任务协同定位可以显著提高服务器利用率和系统吞吐量。然而,有效的任务协同定位是一项重要的任务,因为它需要理解协同运行的应用程序的计算资源需求,以便确定哪些任务以及其中有多少任务可以协同定位。在本文中,我们提出了一种混合专家的方法来建模Spark应用程序的内存行为。我们实现这一目标的学习,离线,一系列的专门的内存模型的范围内的典型应用程序,然后我们在运行时确定的内存模型,或专家,最好的描述目标应用程序的内存行为。我们表明,通过准确地估计所需的资源水平,一个协同定位方案可以有效地确定有多少应用程序可以协同定位在同一台主机上,以提高系统吞吐量,考虑到内存和CPU的要求,共同运行的应用程序任务。我们的技术被应用到一组有代表性的数据分析应用程序的Apache Spark框架上。我们在多核集群上评估了我们的系统吞吐量和平均归一化周转时间方法。我们的方法实现了超过83.9%的性能提供了一个理想的内存预测。我们得到,平均而言,8.69倍的系统吞吐量和周转时间减少49%,执行应用程序任务的隔离,这相当于一个1.28倍和1.68倍的改进,比最先进的协同定位方案的系统吞吐量和周转时间分别。
2017-10-02 cs.DC
Parallel bi-objective evolutionary algorithms for scalable feature subset selection via migration strategy under Spark
用于分类的特征子集选择(FSS)本质上是一个双目标优化问题,其中的任务是获得一个特征子集,该特征子集以最小的基数产生最大可能的受试者操作者特征曲线(AUC)下的面积。在当今世界,人类的所有活动都会产生大量的数据。为了挖掘这种大量的数据,这往往是高维的,有必要开发并行和可扩展的框架。在第一次的同类研究中,我们提出并开发了一个迭代MapReduce为基础的框架的双目标进化算法(EA)的包装下Apache火花与迁移策略。为了实现这一目标,我们对基于非支配排序的算法(NSGA-Ⅱ)和非支配排序粒子群优化算法(NSPSO)以及基于分解的算法(MOEA-D)进行了并行化,分别命名为P-NSGA-II-IS、P-NSPSO-IS和P-MOEA-D-IS。我们提出了一种改进的MOEA-D,通过将非支配排序原则合并到并行化中。我们在各种数据集上测试了所提出的方法的有效性。值得注意的是,P-NSGA-II在大多数数据集上都处于前2位,具有统计学意义。我们还报告了经验达到图,加速分析,和平均AUC获得的最重复的特征子集和最少的基数特征子集具有最高的AUC,和多样性分析使用hypervolume。
2022-05-19 cs.DC
Single Stream Parallelization of Recurrent Neural Networks for Low Power and Fast Inference
由于神经网络算法在许多应用中表现出了很高的性能,因此在移动和嵌入式系统上进行有效的推理具有重要的意义。当在嵌入式系统中为个人用户执行单流递归神经网络(RNN)时,它需要大量的DRAM访问,因为网络大小通常比缓存大小大得多,并且RNN的权重在每个时间步仅使用一次。我们克服了这个问题,并行化的算法,并执行它多个时间步骤的时间。这种方法还通过降低DRAM访问的次数来降低功耗。基于QRNN(Quasi循环神经网络)和SRU(Simple Recurrent Unit)的循环神经网络被用于实现。在基于ARM处理器的系统中,当多时间步数分别为4和16时,SRU的加速比分别为300%和930%。
2018-03-30 cs.DC cs.NE
A Variant RSA Acceleration with Parallelization
标准的RSA算法依赖于多次大数模幂运算,需要更长的密钥长度以获得更好的保护。这对加密和解密施加了巨大的时间惩罚。在这项研究中,我们分析和开发了一种改进的并行算法(PMKRSA)的思想的基础上,明文分成多个块,并使用多个密钥对加密的块。我们的新方案中的算法是如此自然的并行实现,我们还研究了其在GPU环境中的并行化。在下文中,概述了我们的新方案的结构,并从数学上证明了其正确性。然后,通过在CPU和CPU+GPU平台上实现和优化该算法,我们表明,我们的算法大大缩短了计算时间,并且它具有比标准RSA更大的安全性优势,因为它对常见的攻击是无懈可击的。最后通过仿真实验证明了该算法用于大文件加密的可行性。结果表明,在文件大小为1MB、10MB、25MB、50MB、100MB的情况下,CPU版本的平均加解密时间分别为0.2476s和9.4476s,CPU+GPU版本的平均加解密时间分别为0.0009s和0.0618s。
2021-11-23 cs.CR cs.DC
Performance Benefits of DataMPI: A Case Study with BigDataBench
Apache Hadoop和Spark在大数据处理和分析方面越来越突出。两者都在互联网公司中广泛部署。另一方面,高性能数据分析需求促使学术界和工业界采用HPC中最先进的技术来解决大数据问题。最近,我们提出了一个基于键值对的通信库DataMPI,它扩展了MPI以支持Hadoop/Spark之类的大数据计算作业。本文使用BigDataBench这一大数据基准测试套件,对Hadoop、Spark和DataMPI的性能和资源利用率特征进行了全面的研究。从我们的实验中,我们观察到DataMPI的作业执行时间分别比Hadoop和Spark的作业执行时间提高了55%和39%。大部分好处来自DataMPI中的高效通信机制。我们还注意到,DataMPI的资源(CPU,内存,磁盘和网络I/O)利用率也比其他两个框架更有效。
2014-03-14 cs.DC cs.PF
Optimizing Multi-GPU Parallelization Strategies for Deep Learning Training
University of California Los Angeles(加州大学洛杉矶分校);NVIDIA(英伟达)
跨多个计算设备部署深度学习(DL)模型以训练大型复杂模型的重要性持续增长,因为需要更快和更频繁的训练。数据并行(DP)是应用最广泛的并行化策略,但随着数据并行训练中设备数量的增长,设备之间的通信开销也随之增加。此外,每步较大的聚合批量会导致统计效率损失,即,需要大量的历元来收敛到期望的精度。这些因素会影响总体训练时间,并且超过一定数量的设备,利用DP的加速效果开始变得很差。除了DP之外,每个训练步骤可以通过利用模型并行(MP)来加速。这项工作探讨了混合并行化,其中每个数据并行工作者由多个设备组成,使用MP在其中拆分模型图(DFG)。我们表明,在规模上,混合训练在最大限度地减少端到端训练时间方面比单独利用DP更有效。我们预计,对于Inception-V3,GNMT和BigLSTM,与DP单独实现的规模相比,混合策略分别提供了至少26.5%,8%和22%的端到端训练加速。
2019-07-30 cs.AI cs.DC cs.LG
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
clusterNOR: A NUMA-Optimized Clustering Framework
聚类算法是迭代的,具有复杂的数据访问模式,导致许多小的随机内存访问。并行实现的性能受到每次迭代的同步障碍和倾斜工作负载的影响。我们重新考虑现代非统一内存架构(NUMA)的集群并行化,以最大限度地提高独立、异步计算的效率。我们消除了许多障碍,减少了远程内存访问,并最大限度地提高缓存重用。我们实现了“集群NUMA优化的并行”(clusterNOR)可扩展的并行框架,提供算法构建块。该系统是通用的,我们演示了九个现代聚类算法,有简单的实现。clusterNOR包括(i)存储器内,(ii)半外部存储器,以及(iii)分布式存储器执行,使得能够针对变化的存储器和硬件预算进行计算。对于依赖于欧氏距离的算法,clusterNOR定义了一个更新的Elkan三角不等式修剪算法,该算法使用的内存逐渐减少,因此可以在十亿点数据集上工作。clusterNOR通过概括基本原理、提供统一的编程接口并将范围扩展到分层和线性代数类算法,扩展并扩展了k-means聚类的“knor”库的范围。我们优化的复合效果是速度比其他最先进的解决方案(如Spark的MLlib和Apple的Turi)提高了一个数量级。
2021-01-17 cs.DC
Towards General and Efficient Online Tuning for Spark
Tencent Inc.(腾讯公司);Peking University(北京大学);Mila - Québec AI Institute(米拉-魁北克人工智能研究所);ETH Zürich(苏黎世联邦理工学院)
提出一种通用高效的Spark在线调优框架,通过广义调优公式、在线评估和安全配置获取,结合自适应子空间、近似梯度下降和元学习加速搜索,在腾讯生产任务中显著节省内存和CPU成本。
2023-09-05 cs.AI cs.DC
knor: A NUMA-Optimized In-Memory, Distributed and Semi-External-Memory k-means Library
k-means是最有影响力和最常用的机器学习算法之一。它的计算限制了许多统计分析和机器学习任务的性能和可扩展性。我们重新思考和优化现代NUMA架构的k均值,开发一种新的并行化方案,延迟和最大限度地减少同步障碍。\textit{k-means NUMA Optimized Routine}(\textsf{knor})库具有(i)内存中(\textsf{knori})、(ii)分布式内存(\textsf{knord})和(iii)半外部内存(\textsf{knors})模块,这些模块可以针对不同的内存和硬件预算从根本上提高k均值算法的性能。\textsf{knori}可将单机数据集的性能提高一个数量级或更多。\textsf{knors}提高了k均值算法在使用SSD的内存预算上的可扩展性。\textsf{knors}可在一台机器上扩展到数十亿个点,只使用分布式内存系统所需资源的一小部分。\textsf{knord}保留了\textsf{knori}的性能特征,同时通过云中的分布式计算在内存中进行扩展。\textsf{knor}修改埃尔坎的三角不等式修剪算法,使我们利用它对十亿点的数据集没有显着的内存开销的原始算法。我们证明了\textsf{knor}优于分布式商业产品,如H $_2$ O,Turi(以前的Dato,GraphLab)和Spark的MLlib超过一个数量级的数据集的$1…
2017-06-24 cs.DC
SODA: A Semantics-Aware Optimization Framework for Data-Intensive Applications Using Hybrid Program Analysis
在数据爆炸的时代,越来越多的数据密集型计算框架,如Apache Hadoop和Spark,已经被提出来并行处理大量的非结构化数据。由于这些框架提供的编程模型允许用户使用预定义的操作指定复杂和多样化的用户定义函数(UDF),如果程序员不能完全理解代码,数据和运行时系统的语义,那么调整整个系统性能的巨大挑战就会出现。在本文中,我们使用混合程序分析(SODA)来帮助程序员调整性能问题,设计了一个整体的语义感知优化的数据密集型应用程序。SODA是一个两阶段的框架:离线阶段是一个静态分析,它分析来自先前执行的在线阶段的代码和性能分析数据,以生成参数化和仪表化的应用程序;在线阶段是一个动态分析,它跟踪应用程序的执行并收集数据和系统的运行时信息。在四个真实的Spark应用上的大量实验结果表明,SODA可以比其原始实现快60%,10%,8%,并提出了三种优化策略,即,高速缓存管理、操作重排序和元素修剪。
2021-07-24 cs.DC
Large-Scale Network Embedding in Apache Spark
Interactive Entertainment Group, Tencent(腾讯互动娱乐事业群)
针对大规模图网络嵌入单机器难处理、计算效率低的问题,提出基于Apache Spark的递归分图并行分布式算法,线性成本获节点嵌入,性能与速度均优于现有方法,已落地腾讯游戏推荐场景。
2021-06-20 cs.AI cs.DC cs.LG
Comparative analysis of large data processing in Apache Spark using Java, Python and Scala
Ternopil Ivan Puluj National Technical University(特诺皮尔伊万普鲁日国立技术大学);Rochester Institute of Technology(罗切斯特理工学院);Institute of Telecommunications and Global Information Space of the National Academy of Sciences of Ukraine(乌克兰国家科学院电信与全球信息空间研究所)
本研究基于Apache Spark与Apache Iceberg,对比Java、Python、Scala处理不同规模及复杂度数据的ETL性能,发现小数据量下Python更快,大数据量及复杂操作中Scala、Java更高效,可为数据处理流程优化提供参考。
2025-10-21 cs.DB cs.DC cs.PL
ZenLDA: An Efficient and Scalable Topic Model Training System on Distributed Data-Parallel Platform
本文介绍了我们最近的努力,zenLDA,一个有效的和可扩展的Collapsed Gibbs Sampling系统的潜在狄利克雷分配训练,这被认为是具有挑战性的,需要数据并行和模型并行,因为大样本数据高达数十亿的文档和大模型大小高达数万亿的参数。zenLDA结合了算法级改进和系统级优化。首先提出了一种新的CGS算法,该算法平衡了时间复杂度、模型精度和并行化灵活性。zenLDA中的输入语料库表示为有向图,模型参数标注为相应的顶点属性。分布式训练通过划分图来并行化,在每次迭代中,它首先并行地对所有分区应用CGS步骤,然后使计算的模型彼此同步。通过将数据并行和模型并行转化为图并行,实现了数据并行和模型并行。我们重新审视了系统效率和模型精度之间的权衡,并提出了近似方法,如非同步模型,稀疏模型初始化和“收敛”令牌排除。zenLDA基于Spark中的GraphX构建,提供分布式数据抽象(RDD)和富有表现力的API,以简化编程工作,同时隐藏系统复杂性。这使我们能够实现其他CGS算法与几行代码的变化。为了更好地适应分布式数据并行框架,并实现与当代系统相当的性能,我们还提出了几个系统级优化,以推动性能极限。在Web规模语料库上对zenLDA进行了测试,结果表明zenLDA在获得更好的性能的同时,也获得了更高的模型精度。
2015-11-02 cs.DC
GSL-LPA: Fast Label Propagation Algorithm (LPA) for Community Detection with no Internally-Disconnected Communities
本文提出GSL-LPA算法,解决LPA产生内部不连通社区的问题,在双16核处理器上比现有算法快5.8至10300倍,处理速率达844M边/秒,且线程翻倍时扩展1.6倍。
2024-11-11 cs.DC cs.SI
Differential Approximation and Sprinting for Multi-Priority Big Data Engines
今天基于MapReduce范式的大数据集群能够执行具有多个优先级的分析作业,提供差异延迟保证。来自生产系统的跟踪表明,高优先级作业的延迟优势是以低优先级作业的严重延迟退化以及低优先级作业的重复驱逐和重新执行造成的巨大资源浪费为代价的。我们提倡一种新的资源管理设计,利用差分近似和冲刺的想法。近似和冲刺的独特组合避免了低优先级作业的驱逐以及随之而来的延迟退化和资源浪费。为此,我们设计、实现并评估了DiAS,这是Spark处理引擎的一个扩展,通过丢弃任务来支持放气作业,并支持冲刺作业。我们的实验与两个和三个优先级的场景表明,DiAS实现了高达90%和60%的延迟降低低优先级和高优先级的工作,分别。DiAS不仅消除了资源浪费,而且(令人惊讶地)降低了高达30%的能耗,对于低优先级的作业,精度损失很小。
2019-09-16 cs.DC
AutoDDL: Automatic Distributed Deep Learning with Near-Optimal Bandwidth Cost
针对分布式系统训练大规模模型需复杂并行组合的问题,提出AutoDDL框架,利用OneFlow的SBP抽象描述并行方案,结合分析性能模型与定制坐标下降算法,实现近最优带宽成本的自动并行化,显著缩短训练时间。
2025-08-21 cs.DC
Efficient Irregular Wavefront Propagation Algorithms on Hybrid CPU-GPU Machines
在本文中,我们解决的问题,高效执行的计算模式,在这里被称为不规则波前传播模式(IWPP),在混合动力系统与多个CPU和GPU。IWPP在若干图像处理操作中是通用的。在IWPP中,如果满足传播条件,则波前中的数据元素将波传播到网格上的其相邻元素。接收传播波的元件成为波前的一部分。这种模式导致不规则的数据访问和计算。我们开发和评估的策略,使用多级队列结构的波前的有效计算和传播。这种队列结构提高了GPU中快速存储器的利用率,并减少了同步开销。我们还开发了一个基于瓦片的并行化策略,以支持在多个CPU和GPU上执行。我们评估我们的方法在一个国家的最先进的GPU加速机器(配备3个GPU和2个多核CPU)使用IWPP实现两个广泛使用的图像处理操作:形态重建和欧氏距离变换。我们的研究结果表明,GPU的性能显着改善。多个CPU和GPU的协同使用相对于单核CPU执行分别实现了50倍和85倍的加速比,用于形态重建和欧几里得距离变换。
2012-09-14 cs.DC cs.DS
MAD Max Beyond Single-Node: Enabling Large Machine Learning Model Acceleration on Distributed Systems
FAIR at Meta(Meta FAIR研究院);Harvard University(哈佛大学)
针对大规模机器学习训练与部署中通信开销大、GPU 利用率低的问题,本文提出性能建模框架 MAD-Max,通过优化并行化策略和软硬件协同设计,在真实 GPU 集群上实现预训练最高 2.24 倍、推理最高 5.2 倍的吞吐量提升。
2024-06-10 cs.AR cs.DC cs.LG