A thread-parallel algorithm for anisotropic mesh adaptation
各向异性网格自适应是直接最小化基于网格的仿真的计算成本的有力方法。这是特别重要的多尺度问题,所需的浮点运算的数量可以减少数量级相对于更传统的静态网格方法。有限元和有限体积代码正越来越多地针对现代多核架构进行优化。通常,通过消息传递接口(MPI)实现的分解方法用于节点间并行化,而线程编程模型(如OpenMP)用于节点内并行化。网格自适应的节点间并行已经成功地实现了一些团体。然而,线程级的并行性是更具有挑战性的,因为底层的数据结构广泛修改期间,网格适应和更大程度的并行性必须实现。在本文中,我们描述了一个新的线程并行算法的各向异性网格自适应算法。对于每个网格优化阶段(细化,粗化,交换和平滑),我们描述了如何定义独立的任务集。我们展示了如何延迟更新策略可以用来更新网格数据结构并行,没有数据争用。我们表明,尽管网格自适应性和固有的负载不平衡的网格自适应性的复杂性,60%的并行效率是在8核英特尔至强Sandybridge上实现的,40%的并行效率是在2插槽英特尔至强Sandybridge ccNUMA系统中使用16个内核实现的。
2013-08-12 cs.DC
ActiveMonitor: Non-blocking Monitor Executions for Increased Parallelism
我们提出了一套新颖的思想,设计和实现的多线程程序的监视器对象。我们的方法有两个主要目标:(a)增加监视对象的并行性,从而为多线程程序提供性能增益(更短的运行时间),以及(b)引入结构,允许程序员轻松编写基于监视器的多线程程序,可以实现这些性能增益。我们描述了我们的框架,称为ActiveMonitor的概念,其原型实现使用期货。我们评估其性能方面的多线程程序的运行时的链表,有界缓冲区,和其他基本问题,在Java中实现。我们比较我们的实现的运行时使用Java的可重入锁,最近提出的自动信令框架AutoSynch,和其他一些技术的文献。的评估结果表明,监视器的基础上,我们的框架提供显着的收益,在运行时的性能相比,传统的监视器使用Java的可重入锁实现。
2014-08-04 cs.DC cs.PL
Worksharing Tasks: An Efficient Way to Exploit Irregular and Fine-Grained Loop Parallelism
共享内存编程模型通常提供工作共享和任务构造。前者依赖于高效的fork-join执行模型来利用结构化并行;而后者依赖于任务之间的细粒度同步和灵活的数据流执行模型来利用动态、不规则和嵌套并行。在同时显示结构化和非结构化并行性的应用程序中,可以将工作共享和任务结构结合起来。然而,很难在不损害数据流执行模型的情况下混合这两种执行模型。因此,在许多应用程序中,结构化并行也使用任务来利用纯数据流执行模型的全部优点。然而,任务的创建和管理可能会引入一个不可忽略的开销,防止有效利用细粒度的结构化并行,特别是在众核处理器。在这项工作中,我们提出了工作共享任务。这些任务在内部利用工作共享技术来利用细粒度的结构化的基于循环的并行性。评价显示,在若干基准和平台上取得了可喜的成果。
2020-04-07 cs.DC
Well-Structured Futures and Cache Locality
在fork-join并行中,顺序程序被分成由有向依赖边链接的任务的有向非循环图,并且任务可能以与其依赖性一致的顺序并行执行。扩展fork-join并行性的一种流行而有效的方法是允许线程创建future。线程创建一个future来保存计算的结果,这些结果可能是并行执行的,也可能不是。当某个线程触及该future时,将返回该结果,必要时将阻塞该结果,直到结果就绪。最近的研究表明,虽然期货当然可以以结构化的方式增强并行性,但它们可能对缓存局部性产生有害影响。在最坏的情况下,未来可能导致$Ω(P T_\infty + t T_\infty)$偏差,这意味着$Ω(C P T_\infty + C t T_\infty)$额外的高速缓存未命中,其中$C$是高速缓存行的数量,$P$是处理器的数量,$t$是触摸的数量,$T_\infty$是\emph{computation span}。由于高速缓存局部性对现代多核上的软件性能有很大影响,因此这个结果令人不安。然而,在本文中,我们表明,如果期货是在一个简单的,有纪律的方式使用,那么情况要好得多:如果每个未来只接触一次,无论是线程创建它,或由一个线程的未来已经从线程创建它,然后并行执行工作窃取可以招致最多$O(C P T^2_\infty)$额外的缓存未命中,一个实质性的改善。期货的这种结构化使用是许多(但不是所有)并行应用程序的特征。
2017-04-10 cs.DC
Increasing the Degree of Parallelism Using Speculative Execution in Task-based Runtime Systems
基于任务的编程模型在现代高性能平台上开发科学应用程序方面已经证明了它们的效率。它们允许将并行化的管理委托给运行时系统(RS),该运行时系统负责数据一致性、调度以及将工作分配给计算单元。然而,某些应用程序具有有限的并行度,因此无论RS实现多么高效,它们都可能无法在现代多核CPU上扩展。在本文中,我们建议使用投机释放的并行性时,它是不确定的,如果一些任务将修改数据,我们正式提出了一种新的方法,使投机执行的任务图。这种描述在我们的新C++ RS中部分实现,称为SPETABARU,如果其他人不确定要修改数据,它能够提前执行任务。我们研究我们的方法来计算Monte Carlo和副本交换Monte Carlo模拟的行为。
2019-03-19 cs.DC
Utilizing Parallelism in Smart Contracts on Decentralized Blockchains by Taming Application-Inherent Conflicts
由于共识协议本身的瓶颈,传统的公共区块链系统通常具有非常有限的交易吞吐量。随着共识技术的最新进展,性能限制已经大大提高,通常达到每秒数千笔交易。这样一来,事务执行就成了一个新的性能瓶颈。利用事务执行中的并行性是解决此问题并进一步提高事务吞吐量的一种明确而直接的方法。尽管最近的一些文献引入了并发控制机制来并行执行智能合约交易,但它们所能实现的加速效果远不理想。主要原因是,所提出的并行执行机制不能有效地处理许多区块链应用程序中固有的冲突。在这项工作中,我们深入研究了以太坊中的历史交易执行痕迹。我们观察到,应用程序固有的冲突是限制可利用的并行执行过程中的主要因素。我们建议使用分区计数器和特殊的交换指令,打破应用程序的冲突链,以最大限度地提高潜在的加速比。当我们评估可实现的最大并行加速比时,这些技术将此限制加倍,与串行执行相比,总体加速比为18倍,从而接近最佳值。我们还提出了OCC-DA,一种具有确定性中止的乐观并发控制调度器,这使得在公共区块链设置中使用OCC调度成为可能。
2022-02-10 cs.DC
BUNDLEP: Prioritizing Conflict Free Regions in Multi-Threaded Programs to Improve Cache Reuse -- Extended Results and Technical Report
捆绑包中:Tessler和Fisher提出了一种调度机制和组合最坏情况执行时间计算方法,将指令缓存视为线程之间共享的有益资源。对象分析产生最坏情况下的执行时间界限,并将代码段划分为多个区域。线程在运行时间通过BUNDLE调度算法动态地放置在与区域关联的束中,在那里它们受益于共享的高速缓存值。在以前的工作的评价,任务创建了一个预定的最坏情况下的执行时间路径通过控制流图。先验知识的最坏情况下的路径是一个不切实际的限制任何分析。当时,唯一可用的其他解决方案是图的所有路径搜索,由于其复杂性,这是一种同样不切实际的方法。这项工作的主要重点是建立在BUNDLE的基础上,将其适用性扩展到概念验证之外。我们提出了一个完整的最坏情况下的执行时间的计算方法,包括线程级上下文切换成本,在实际程序上操作,具有代表性的架构参数,并比较我们的结果所产生的庚烷的最先进的方法。为此,我们提出了一个修改的束调度算法称为束。捆绑包被分配了优先级,这些优先级通过控制流图强制执行有序的线程流--避免了在图中进行多个全路径搜索的需要。在许多情况下,我们的评估表明,与序列化线程执行和最先进的WCET分析相比,BUNLDEP具有运行时和分析方面的优势。
2018-05-30 cs.DC
How I Learned to Stop Worrying About User-Visible Endpoints and Love MPI
MPI+线程作为传统MPI Everywhere模型的替代方案越来越突出,以便更好地处理与其他节点上资源相比核心数量不成比例的增加。但是,MPI+线程的通信性能可能比MPI的任何地方都慢100倍。MPI用户和开发人员都应该为这种放缓负责。通常,MPI用户不会公开逻辑通信并行性。因此,MPI库使用保守的方法,例如全局临界区,来维护MPI+线程的MPI排序约束,从而串行化对并行网络资源的访问并损害性能。为了提高MP+线程的通信性能,研究人员提出了MPI端点作为MPI-3.1的用户可见扩展。MPI端点允许单个进程在通信器内创建多个MPI等级。这可以允许每个线程拥有到网络的专用通信路径并提高性能。然而,将线程映射到端点的责任将由领域科学家承担。我们扮演魔鬼的拥护者的角色,并质疑用户可见端点的必要性。我们当然同意,专用的沟通渠道至关重要。然而,在多大程度上,我们可以在不修改MPI标准的情况下将这些通道隐藏在MPI库中,从而减轻用户的负担?更重要的是,通过这种抽象,我们会失去什么功能?本文回答了这些问题,通过一个新的MPI-3.1实现,使用虚拟通信接口(VCI)。VCI抽象底层网络上下文。当用户通过现有的MPI机制公开并行性时,MPI库将该并行性映射到VCI,从而将领域科学家从端点中解放出来。我们确定的情况下,VCIs执行以及用户可见的端点,以及这种抽象损害性能的情况下。
2020-05-01 cs.DC
Efficient Concurrent Execution of Smart Contracts in Blockchains using Object-based Transactional Memory
本文提出了一种基于对象语义的智能合约事务(SCT)并发执行的有效框架,使用乐观的单版本基于对象的软件事务存储系统(SVOSTM)和多版本OSTM(MVOSTM)。在我们的框架中,一个多线程的矿工构造一个块图(BG),捕获SCT之间的对象冲突关系,并将其存储在块中。稍后,验证器根据这个BG并发地、确定性地重新执行相同的SCT。恶意矿工可以修改BG以损害区块链,例如,造成双重消费为了识别恶意矿工,我们提出了智能多线程验证器(SMV)。实验分析表明,所提出的多线程的矿工和验证器实现了显着的性能增益比国家的最先进的SCT执行框架。
2020-03-27 cs.DC
Parallelizing Bisection Root-Finding: A Case for Accelerating Serial Algorithms in Multicore Substrates
多核架构主导着当今的处理器市场。尽管内核和线程的数量相当高,并且还在继续增长,但串行算法本身并没有从大量的内核和线程中受益。在本文中,我们提出了Runahead计算,一种技术,它使用空闲线程在多线程架构加速串行算法的执行时间。通过针对CPU和GPU平台以及特定串行算法的详细评估,我们的方法在实验中将执行延迟降低了9倍。
2018-05-11 cs.DC
Transmission protocols for instruction streams
在线程代数模型中,线程的行为被认为是由某些执行环境控制的:在线程执行每个动作时,来自其执行环境的回复-将该动作视为要处理的指令-确定线程如何进行。在本文中,我们关注的情况下,执行环境是远程的:我们描述和分析了一些传输协议,从一个线程传递指令到远程执行环境。
2009-02-17 cs.DC cs.PL
POAS: A high-performance scheduling framework for exploiting Accelerator Level Parallelism
异构计算在各个领域都成为主流。计算机体系结构的这个新时代带来了一种称为加速器级并行化(ALP)的新范式。在ALP中,同时使用加速器以提供前所未有的性能和能效水平。要实现这一目标,有许多问题需要解决,其中最具挑战性的是共同执行。本文开发了一个称为POAS的调度框架,一种通用的方法,为通用应用程序提供协同执行。与其他调度方法不同,POAS不直接调度应用程序。相反,它是一个通用模型,可以转换任何应用程序,使其适合于协同执行,以便可以在ALP环境中执行。我们的建议由四个不同的步骤组成:预测,优化,适应和调度。在这些阶段中,在应用程序中实现不同的修改,使其适合在ALP环境中执行。在这项工作中,我们还将我们的框架应用到矩阵乘法案例研究中,概述了将应用程序与POAS相结合的关键和最重要的步骤。我们评估了在使用CPU核、CUDA核和张量核(XPU)的CPU/GPU/XPU环境上基于POAS的矩阵乘法实现。我们的实验证明,在所研究的情况下,共同执行可以受益于ALP,产生高达45%的加速比只使用一个加速器。POAS已被证明的灵活性和潜力使其成为在未来计算机系统中实现ALP的优秀候选者。
2022-09-21 cs.DC
A Many-core Machine Model for Designing Algorithms with Minimum Parallelism Overheads
我们提出了一个多线程计算模型,结合fork-join和单指令多数据并行,重点是估计并行开销的程序编写的现代众核架构。我们建立了一个Graham-Brent定理,这个模型,以估计执行时间的程序运行在一个给定数量的流式多处理器。我们评估我们的模型的好处与四个基本算法从科学计算。在每种情况下,我们的模型是用来最大限度地减少并行开销,通过确定一个适当的值范围为一个给定的程序参数,而且实验证实了模型的预测。
2014-02-03 cs.DC
EVM Workloads in the Wild: Evidence for Multi-Dimensional Gas Metering, State Growth, Delayed Execution, and Parallelism
Category Labs
通过分析2025年以太坊L1和Base L2的区块追踪,发现资源组合不稳定、状态增长被低估、执行结果对历史状态敏感,为多维Gas计量和状态增长显式定价提供了实证基础。
2026-09-22 cs.DC
Ensemble Toolkit: Scalable and Flexible Execution of Ensembles of Tasks
有许多科学应用程序需要可扩展的任务级并行性,并支持灵活的执行和耦合的模拟合奏。然而,大多数高性能系统软件和中间件都是设计用于支持单个任务的执行和优化。出于这些计算系统的缺失功能和任务级并行的重要性日益增加,我们介绍了Ensemble工具包,它具有以下应用程序开发功能:(i)抽象,使合奏作为主要实体的表达,以及(ii)支持基于合奏的执行模式,捕获大多数应用程序场景。Ensemble Toolkit使用一个可扩展的基于pilot的运行时系统,该系统将工作负载执行和资源管理细节从应用程序的表达式中分离出来,并使集成在异构计算资源上的高效和动态执行成为可能。我们调查了三种执行模式,并描述了这些模式的可扩展性和开销的Entrance工具包。我们调查的标度性能高达O(1000)并发合奏和O(1000)核心,并找到线性弱和强标度行为。
2016-06-27 cs.DC
AD for an Array Language with Nested Parallelism
我们提出了一种技术应用(向前和)反向模式自动微分(AD)的非递归二阶函数阵列语言,支持嵌套并行,主要是为了高效的GPU执行。关键思想是通过依赖于冗余执行来消除对“磁带”的需要,以将差异化代码可能需要的所有程序变量带入每个新范围。通过观察完美嵌套的作用域不引入重新执行来实现有效执行,并且这样的完美嵌套由已知的编译器转换产生,例如,扁平化我们的技术区分循环和批量并行运算符,如地图,减少,直方图,扫描,分散,通过特定的重写规则,并积极优化所产生的嵌套并行代码。我们报告了一个实验评估,比较与现有的AD解决方案,并展示了竞争力的表现,从最近应用的AD文献的九个常见的基准。
2022-02-21 cs.DC cs.PL
Thread Evolution Kit for Optimizing Thread Operations on CE/IoT Devices
大多数现代操作系统都采用一对一线程模型来支持多核和单核系统中线程的快速执行。此线程模型以一对一的方式映射内核空间和用户空间线程,支持在高性能服务器环境中快速创建和终止线程。然而,当多个线程在具有有限系统资源的低端CE设备中运行时,时间关键线程的性能会降低。当CE设备运行多个线程以支持不同的应用功能时,低级硬件规范通常导致试图获得系统资源的线程之间的显著资源争用。结果,操作系统遇到挑战,诸如过多的线程上下文切换开销、时间关键线程的执行延迟以及用于线程栈的虚拟内存的缺乏。本文提出了一个国家的最先进的线程演化工具包(TEK),由三个主要组件:CPU调解器,堆栈调谐器,增强的线程标识符。从实验中可以看出,与传统的线程模型相比,该方案在高CPU争用下显著提高了用户响应速度(快7倍)。此外,TEK解决了CE应用程序在执行期间增加线程数时经常出现的分段错误问题。
2021-01-20 cs.DC cs.OS cs.PF
MPIX Stream: An Explicit Solution to Hybrid MPI+X Programming
混合MPI+X编程范式,其中X指的是线程或GPU,在高性能计算领域获得了突出地位。这与系统架构变得更加异构的趋势相对应。当前的MPI标准只指定了MPI和线程运行时之间的兼容性级别。应用程序不存在MPI概念或接口来显式地将线程上下文或GPU流上下文传递给MPI实现。这种缺乏使得性能优化在某些情况下变得复杂,在其他情况下变得不可能。我们在MPI中提出了一个新的概念,称为MPIX流,来表示X运行时中存在的一般串行执行上下文。MPIX流可以直接映射到线程或GPU执行流。将线程上下文传递到MPI允许实现将执行上下文精确地映射到网络端点。将GPU执行上下文传递到MPI允许实现直接对GPU流进行操作,从而降低CPU/GPU同步成本。
2022-08-30 cs.DC cs.PF
Dynamic Simultaneous Multithreaded Architecture
本研究提出动态同时多线程架构DSMT,通过动态生成推测线程、状态位机制管理依赖与恢复、贪心策略选代码段来提升单程序下SMT性能,同时指出需平衡线程级并行开发与推测错误率的挑战。
2024-09-13 cs.AR cs.DC
Fibers are not (P)Threads: The Case for Loose Coupling of Asynchronous Programming Models and MPI Through Continuations
异步编程模型(APM)正在获得越来越多的关注,允许应用程序将可用的并发性公开给负责协调执行的运行时系统。虽然MPI长期以来一直支持多线程通信和非阻塞操作,但它无法充分支持APM,因为正确有效地处理不同模型中的MPI通信仍然是一个挑战。与此同时,轻量级、协作调度的执行上下文的新低级实现(纤程,也称为用户级线程)旨在作为高级APM的基础,并且它们在MPI实现中的集成已经被提议作为传统POSIX线程支持的替代品,以减轻这些挑战。在本文中,我们首先建立了一个分类法,试图清楚地区分不同的概念,在并行软件栈。我们认为,提出的紧密集成的纤维实现与MPI既没有保证,也没有好处,而是不利于MPI的目标是一个便携式通信抽象。我们提出MPI Continuations作为MPI标准的扩展,以提供基于回调的通知完成的操作,从而通过提供MPI和APM之间的松耦合机制来明确分离关注点。我们表明,这个接口是灵活的,并与不同的APM,即OpenMP分离的任务,Ompss-2,和Argobots交互良好。
2020-11-12 cs.DC
Optimizing ccNUMA locality for task-parallel execution under OpenMP and TBB on multicore-based systems
OpenMP任务构造或某些英特尔线程构建块(TBB)组件所采用的任务并行性虽然非常适合处理不规则问题或典型的生产者/消费者方案,但如果数据访问的局部性很重要(ccNUMA系统上的内存受限代码通常就是这种情况),则可能会出现性能瓶颈。我们提出了一个薄的软件层,改善了动态任务分配的不利影响,通过将任务排序到本地队列中,每个队列最好由属于同一本地域的线程处理。动态调度是完全保留在每个域,并优于可能的负载不平衡,即使需要非本地访问,使这种策略非常适合典型的多核多插槽系统。该方法的有效性是通过使用一个阻塞的六点模板求解器作为一个玩具模型。
2010-12-30 cs.DC
Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning
UC Berkeley(加州大学伯克利分校);Amazon Web Services(亚马逊云科技);Google(谷歌);Shanghai Jiao Tong University(上海交通大学);MBZUAI(穆罕默德·本·扎耶德人工智能大学);Carnegie Mellon University(卡内基梅隆大学);Duke University(杜克大学)
Alpa通过生成统一数据、运算符和流水线并行的执行计划,自动化大型深度学习(DL)模型的模型并行训练。现有的模型并行训练系统要么需要用户手动创建并行化计划,要么从模型并行配置的有限空间自动生成并行化计划。它们不足以在分布式计算设备上扩展复杂的DL模型。Alpa通过将并行性视为两个层次来分配大型DL模型的训练:操作员间和操作员内并行性。在此基础上,Alpa构造了一种新的面向大规模模型并行执行计划的层次空间。Alpa设计了许多编译通道,以在每个并行级别自动导出高效的并行执行计划。Alpa实现了一个高效的运行时来协调分布式计算设备上的两级并行执行。我们的评估表明,Alpa生成的并行化计划可以匹配或优于手动调整的模型并行训练系统,即使是针对它们设计的模型。与专门的系统不同,Alpa还可以推广到具有异构架构的模型和没有手动设计计划的模型。Alpa的源代码可在https://github.com/alpa-projects/alpa上公开获取
2022-06-28 cs.DC cs.LG cs.PL
Accelerating the Execution of Matrix Languages on the Cell Broadband Engine Architecture
矩阵语言,包括MATLAB和Octave,是科学和工程应用的既定标准。它们提供了交互式编程环境,由于它们的脚本语言具有矩阵数据类型,因此易于使用。矩阵语言的当前实现没有充分利用高性能、专用芯片架构,例如IBM PowerXCell处理器(Cell),该处理器目前用于世界上最快的计算机。我们提出了一个新的框架,扩展Octave利用细胞的计算能力。有了这个框架,程序员就不必再引入明确的并行性概念。相反,程序员使用一种新的矩阵数据类型,在Cell的协同处理元素(SPE)上并行执行矩阵操作。我们采用懒惰的评估语义为我们的新矩阵数据类型,以获得矩阵操作的执行轨迹。跟踪被转换为数据依赖图;数据依赖图中的操作被降低(分成子矩阵),在SPE上调度和执行。由此我们开发了矩阵语言程序的(1)数据并行,(2)指令级并行,(3)流水线并行和(4)任务并行。我们进行了大量的实验,以证明我们的方法的有效性。我们的基于Cell的实现在最新的Intel Core 2 Quad处理器上运行的代码上实现了高达12倍的加速。
2009-11-14 cs.DC cs.PL
Multi-Variant Execution of Parallel Programs
多变量执行环境(MVEE)是一种很有前途的技术,以保护软件免受内存损坏攻击。它们透明地执行接收相同输入的软件的多种多样的变体(通常称为复制)。通过强制执行和监视复制品的系统调用的锁步执行,并通过部署多样性技术来防止攻击者同时危及多个复制品,MVEE可以在攻击成功之前阻止它们。现有的MVEE无法处理重要的多线程程序,因为它们的不确定性行为会在复制区中引入良性的系统调用不一致性,从而触发MVEE中的误报检测和死锁。本文首次扩展了MVEE的通用性,通过安全有效的同步复制代理来保护多线程软件。在运行四个工作线程的PARSEC 2.1并行基准测试中,我们的原型MVEE的运行时开销仅为1.32倍。
2016-07-26 cs.CR cs.DC
Towards Enabling I/O Awareness in Task-based Programming Models
存储系统没有保持与计算系统相同的技术改进速度。随着应用程序产生越来越多的数据,I/O成为提高应用程序性能的限制因素。由对存储设备的并发访问引起的I/O拥塞是导致I/O性能下降并因此导致总体性能下降的主要障碍之一。虽然基于任务的编程模型可以通过在大规模分布式平台上执行任务来实现更高级别的并行性,但这种并行性只有利于应用程序的计算工作负载。以前解决I/O性能瓶颈的努力要么集中在使用I/O库优化细粒度I/O访问模式,要么通过最小化多个应用程序之间的干扰来避免系统范围的I/O拥塞。在本文中,我们提出在基于任务的编程模型中启用I/O感知,以提高应用程序的总体性能。I/O感知编程模型能够创建更多的并行性并减轻I/O性能下降的原因。一方面,可以通过支持用于执行I/O工作负载的特殊任务(称为I/O任务)来创建更多的并行性,这些任务可以与计算任务的执行重叠。另一方面,可以通过约束I/O任务调度来缓解I/O拥塞。我们提出了两种方法来指定这样的约束:明确设置的用户或自动推断和调整应用程序的执行过程中,以优化执行可变的I/O工作负载在一定的存储基础设施。在MareNostrum 4超级计算机上的实验表明,与I/O非感知实现相比,使用I/O感知编程模型可以实现高达43%的总性能提高。
2021-11-02 cs.DC
Overhead Management in Multi-Core Environment
在多核系统中,诸如进程间通信、依赖性、资源共享和调度、并行化水平、同步、可用核的数量等各种因素影响可能的高性能计算并行化的程度。这些参数如果没有管理到根级别,以后会在执行期间作为开销出现。本文着重讨论了这些并行性参数及其并行化开销,并对它们进行了有效的管理,以便在任意域下实现最优的并行执行。作为一个整体,我们专注于稠密线性代数(DLA)域,特别是矩阵乘法和排序域。这些领域的选择,因为他们发现在科学和数学应用的各个部门的应用。比较分析所获得的结果澄清之间的权衡串行和并行执行DLA的问题,表面的开销和他们可能的有效管理。
2022-01-31 cs.DC
Comparative Analysis for Quick Sort Algorithm under four Different Modes of Execution
本文对顺序排序算法在四种不同的执行模式下的性能进行了比较,即顺序处理模式、传统的多线程实现、使用OpenMP库的多线程以及最后在超级计算机上的并行处理。快速排序算法被选择来运行由该努力执行的实验,并且该算法使用不同的数组大小和不同数量的处理器来运行。结果和调查结果进行了分析,揭示的局限性,以及使用并行顺序排序算法的增强潜力。
2021-09-03 cs.CC cs.DC
Efficient and Robust Parallel DNN Training through Model Parallelism on Multi-GPU Platform
深度神经网络(DNN)的训练过程是计算密集型的,通常需要数天到数周的时间来训练DNN模型。因此,在GPU上并行执行DNN训练是当今广泛采用的加速过程的方法。由于实现简单,数据并行是目前最常用的并行化方法。然而,由于GPU之间频繁的权重同步,数据并行遭受过多的GPU间通信开销。另一种方法是流水线模型并行,它在GPU之间划分DNN模型,并并发处理多个小批。与数据并行相比,该方法可以显著降低GPU间通信成本。然而,流水线模型并行面临着权重陈旧的问题;也就是说,梯度是用陈旧的权重计算的,导致训练不稳定和精度损失。在本文中,我们提出了一种流水线模型并行执行方法,使高GPU利用率,同时保持强大的训练精度,通过一种新的权重预测技术,SpecTrain。实验结果表明,我们的建议实现了高达8.91倍的加速比相比,在4-GPU平台上的数据并行,同时保持可比的模型精度。
2019-10-28 cs.DC cs.LG
Exploiting Multi-Core Parallelism in Blockchain Validation and Construction
IMDEA Networks Institute(IMDEA网络研究所);Universidad Carlos III de Madrid(马德里卡洛斯三世大学);IMDEA Software Institute(IMDEA软件研究所)
本文提出利用多核并行性优化区块链验证与构建,通过精确建模和启发式方法提升效率与收益。
2026-02-03 cs.DC cs.DS
Exploiting nested task-parallelism in the $\mathcal{H}-LU$ factorization
本文针对边界元法产生的分层矩阵LU分解并行化问题,提出利用OmpSs模型在执行时发现数据流并行性,通过将数据结构与依赖检测解耦,并引入OmpSs-2的弱操作数和依赖提前释放机制,有效加速了嵌套细粒度任务的并行执行。
2019-06-03 cs.DC cs.MS cs.NA
GF-DiT: Scheduling Parallelism for Diffusion Transformer Serving
Shanghai Jiao Tong University(上海交通大学);Guizhou University(贵州大学)
提出GF-DiT,一种策略可编程运行时,通过动态调整请求并行度来优化扩散Transformer服务,利用无组集合通信实现低开销在线重配置,显著提升吞吐量和降低延迟。
2026-07-03 cs.DC cs.LG cs.PF
Unlocking Python's Cores: Hardware Usage and Energy Implications of Removing the GIL
Independent Researcher
研究发现移除Python GIL在并行工作负载中可显著提升性能和能效,但对顺序工作负载和高锁竞争场景有负面影响,开发者需根据具体需求评估采用。
2026-03-05 cs.DC cs.PF
DynaFlow: Transparent and Flexible Intra-Device Parallelism via Programmable Operator Scheduling
University of Washington(华盛顿大学);Shanghai Jiao Tong University(上海交通大学)
本文提出DynaFlow框架,通过解耦逻辑模型定义与物理执行调度,实现设备内并行性的透明和灵活集成,从而提升ML系统的吞吐量。
2026-10-01 cs.DC cs.LG
A Fast Causal Profiler for Task Parallel Programs
本文提出了TASKPROF,一个分析器,确定任务并行程序的并行性瓶颈。它利用任务并行执行的结构来执行细粒度的工作归属到程序的各个部分。TASKPROF使用硬件性能计数器来执行细粒度测量,从而最大限度地减少了干扰。TASKPROF的配置文件执行使用多核并行运行。TASKPROF的因果配置文件使用户能够估计在并行性的改进时,一个区域的代码进行了优化,即使具体的优化是未知的。我们使用TASKPROF隔离了23个使用英特尔线程构建模块库的应用程序中的并行性瓶颈。我们已经设计了并行化技术在五个应用程序中增加并行度的数量级使用TASKPROF。我们的用户研究表明,开发人员能够使用TASKPROF轻松隔离性能瓶颈。
2017-07-02 cs.DC cs.PL
An analytic performance model for overlapping execution of memory-bound loop kernels on multicore CPUs
在多核处理器上运行的复杂应用程序表现出丰富的性能现象。每个ccNUMA域的核心数量不断增加,这使得内存受限代码的性能分析变得复杂,因为系统噪声、负载不平衡或基于任务的编程模型可能导致线程去同步。因此,所有核心执行相同循环的简化假设不能得到支持。出于对普通和修改版本的HPCG基准的观察,我们构建了一个性能模型的执行内存绑定的循环内核。它可以根据活动内核的数量以及内核与哪些其他工作负载配对来预测内存争用域上每个内核的内存带宽份额。唯一需要的代码特性是每个内核的单线程缓存线访问频率,它直接与单线程内存带宽及其饱和带宽相关。它可以直接测量,也可以使用Execution-Cache-Memory(ECM)性能模型进行预测。内核的计算强度和代码的详细结构没有意义。我们在英特尔Broadwell、英特尔Cascade Lake和AMD Rome处理器上对各种流和模板内核进行了验证。预测每个内核的带宽份额的误差小于8%。
2020-10-31 cs.DC cs.PF
An Efficient Thread Mapping Strategy for Multiprogramming on Manycore Processors
多核和众核处理器的出现将改变并行计算世界。应用程序正在转向增加并行性,以便有效地利用这些架构。这导致了这样一种情况,即每个应用程序都根据其并行特性和系统资源允许量创建其所需数量的线程。在这样的多线程多道程序设计环境中的任务调度是一个重大的挑战。在任务调度中,不仅要考虑任务的执行顺序,而且要考虑线程到执行资源的映射。在本文中,我们国家和讨论一些基本规则的基础上获得的结果从选定的应用程序的BOTS基准的64核TILEPro 64处理器。我们演示了如何以前高效的映射策略,如SMP Linux调度程序变得效率低下时,线程和核心的数量增长。我们提出了一种新的,低开销的技术,启发式的基础上每个CPU做一些有用的工作所花费的时间量,公平地分配工作负载的核心之间的多道程序设计环境。我们的新方法可以实现为一个杂注类似于那些在新的基于任务的OpenMP版本,或可以作为一个分布式线程映射机制,在未来的众核编程框架。我们表明,我们的线程映射方案可以优于本机GNU/Linux线程调度在单编程和多编程环境。
2014-03-31 cs.DC cs.PF
Enabling Simulation of High-Dimensional Micro-Macro Biophysical Models through Hybrid CPU and Multi-GPU Parallelism
微观-宏观模型为研究微观机制与宏观涌现行为之间的关系提供了强有力的工具。然而,详细的微观建模可能需要以高计算成本跟踪和演化高维配置空间。在这项工作中,我们提出了一个并行算法模拟一个高维的微观宏观模型的滑动运动检测。我们采用了一种整体方法,将数据驻留和模拟规模与混合CPU和多GPU硬件相结合。通过结合算法修改、GPU优化和扩展到多个GPU,我们实现了比以前的混合CPU-GPU实现高达27的加速因子,比我们的单线程实现高达540的加速因子。这种方法使微观宏观模拟的复杂性和分辨率高于其他可行的方法。
2019-08-12 cs.DC physics.comp-ph q-bio.QM
Opara: Exploiting Operator Parallelism for Expediting DNN Inference on GPUs
East China Normal University(华东师范大学);University of Louisiana at Lafayette(路易斯安那大学拉法叶分校);Sun Yat-sen University(中山大学);Peng Cheng Laboratory(鹏城实验室);Huazhong University of Science and Technology(华中科技大学)
本文提出Opara框架,通过CUDA Streams和CUDA Graph自动并行化DNN算子执行,并基于算子资源需求调整启动顺序以重叠计算与内存密集型算子,有效提升GPU推理速度,较现有系统最高提升1.68倍。
2024-05-30 cs.AI cs.DC
Auto-MAP: A DQN Framework for Exploring Distributed Execution Plans for DNN Workloads
Alibaba Group(阿里巴巴集团)
在过去的十年中,训练深度神经网络的计算需求不断增长。目前的办法(例如,数据/模型并行性、流水线并行)将训练任务并行化到多个设备上。然而,这些方法总是依赖于特定的深度学习框架,并且需要精心的手动设计,这使得难以在不同类型的模型之间进行维护和共享。在本文中,我们提出了Auto-MAP,一个用于探索DNN工作负载的分布式执行计划的框架,它可以通过深度学习模型的IR级别上的强化学习自动发现快速并行化策略。有效的探索仍然是强化学习的主要挑战。我们利用DQN与特定任务的修剪策略,以帮助有效地探索搜索空间,包括优化的策略。我们的评估表明,Auto-MAP可以在两个小时内找到最佳解决方案,同时在几个NLP和卷积模型上实现更好的吞吐量。
2020-07-08 cs.AI cs.DC
DWDP: Distributed Weight Data Parallelism for High-Performance LLM Inference on NVL72
NVIDIA
本文提出DWDP,一种无需层间同步的分布式权重数据并行策略,通过跨peer GPU卸载MoE权重和按需获取缺失专家,提升LLM推理性能,实测在8K输入和1K输出序列长度下,端到端TPS/GPU提升8.8%。
2026-05-12 cs.AI cs.DC
Partition-Aware Scheduling for Mobile Heterogeneous Inference Co-Execution
University of Southern California(南加州大学)
本文提出一种分区感知的DAG调度框架,联合优化算子分区、设备分配与执行顺序,在移动异构平台上实现接近离线最优的推理延迟,且调度开销极低。
2026-09-15 cs.DC cs.LG cs.PF
Scalable Triadic Analysis of Large-Scale Graphs: Multi-Core vs. Multi- Processor vs. Multi-Threaded Shared Memory Architectures
三元分析包含一组有用的图挖掘方法,这些方法以三元组的概念为中心,三元组是三个节点的子图。这些方法经常应用于社会科学以及许多其他不同的领域。三元组方法通常对三元组普查进行操作,该普查对图中每个可能的边配置的三元组的数量进行计数。与其他图算法一样,三元普查算法在图达到数千万到数十亿个节点时不能很好地扩展。为了实现大规模图的三元分析,我们开发并优化了一个三元普查算法,以有效地执行共享内存架构。然后,我们进行了性能评估的三个特定的系统:Cray XMT,HP Superdome,和AMD多核NUMA机的并行三元普查算法。这三个系统具有共享的内存架构,但具有明显不同的硬件能力来管理并行性。
2012-09-27 cs.DC cs.SI
The Potential of Synergistic Static, Dynamic and Speculative Loop Nest Optimizations for Automatic Parallelization
以循环为中心的程序的自动并行化研究始于静态分析,然后将其扩展到包括动态检查执行和推测执行,最好的结果涉及混合静态-动态方案。除了检测顺序程序中的并行性之外,众核处理器上的可扩展并行化还涉及到困难而有趣的并行性适应和映射挑战。这些挑战包括为存储层次结构定制数据局部性、分层构造独立任务以利用多个并行级别、调整同步粒度、平衡执行负载、将执行解耦到线程级流水线中以及利用具有专用加速器的异构硬件。多面体框架允许建模,构造和应用非常复杂的循环嵌套转换,解决大多数并行适应和映射挑战。但是,除了特定于硬件的、面向后端的转换(if转换、跟踪调度、值预测)之外,循环嵌套优化基本上忽略了动态和推测性技术。多面体编译的研究最近达到了一个重要的里程碑,支持动态的,数据相关的控制流。这为将动态分析和推测技术与高级循环嵌套优化相结合开辟了一条广阔的道路。从SPEC基准测试和数值内核中选择真实世界的例子,我们为协同静态,动态和投机循环转换技术的设计做了一个案例。我们还勾画了动态信息的嵌入,包括投机性的假设,在仿射变换搜索空间的心脏。
2011-11-29 cs.DC cs.PF cs.PL
ThreadShift: Transparent Thread-Level Offloading on Transient Cloud Resources Using MPKs
EPFL(洛桑联邦理工学院)
ThreadShift利用MPK实现线程级透明卸载,支持细粒度检查点,在瞬时云资源上降低成本达56%,检查点速度比CRIU快三个数量级。
2026-09-29 cs.DC cs.OS
Performance evaluation of scheduling tasks in many-core systems utilizing processes and threads
University of Ioannina(约阿尼纳大学)
研究用基于内存的行向快速排序工作负载评估多核共享内存系统中基于进程和线程调度器的可扩展性,对比多种调度策略,实验表明线程调度器总体性能最高,基于管道的进程调度器扩展性强。
2026-07-07 cs.DC cs.PF
Exploring Parallelism in FPGA-Based Accelerators for Machine Learning Applications
Western New England University(韦斯滕新英格兰大学);Rice University(Rice大学)
针对神经网络训练加速问题,本工作在MNIST数据集上用OpenMP实现推测反向传播,通过多线程重叠前向与反向传播步骤,CPU实验获24%整体加速比及35%单步最大加速比,计划在FPGA上综合以验证硬件加速潜力。
2025-11-09 cs.AR cs.DC cs.LG
Diversity/Parallelism Trade-off in Distributed Systems with Redundancy
随着许多机器学习和其他算法的复杂性和数据需求的增加,分布式计算成为满足不断增长的计算和存储需求所必需的,因为它使得能够并行执行构成大型计算作业的较小任务。然而,任务服务时间的随机波动会导致执行时间较长的离散任务。以任务复制和擦除编码的形式,冗余提供了多样性,允许在仅执行冗余任务的子集时完成作业,从而消除对离散任务的依赖性。在资源受限的情况下(这里是固定数量的并行服务器),增加冗余会减少并行可用的资源。在本文中,我们的特点的多样性与并行性的权衡,并确定最佳的策略,复制,编码和分裂,最大限度地减少预期的作业完成时间。我们考虑了三种常见的服务时间分布,并建立了三个模型来描述这些分布与任务大小的缩放。我们发现,具有不同缩放模型的不同分布在不同的冗余水平下最佳地操作,因此可能需要非常不同的码率。
2021-12-18 cs.DC cs.IT cs.PF
Para-Pipe: Exploiting Hierarchical Operator Parallelism of ML Computational Graphs on SoCs
School of Computing, National University of Singapore(新加坡国立大学计算机学院);the University of Amsterdam(阿姆斯特丹大学);Black Sesame Technologies(黑芝麻智能科技)
Para-Pipe是整合算子并行性的分层映射框架,可平衡SoC上深度学习的吞吐量与延迟,提升能效,在两款SoC上分别实现11.0%和23.3%的能效提升。
2026-09-04 cs.DC cs.LG cs.PF
CHAOS: A Parallelization Scheme for Training Convolutional Neural Networks on Intel Xeon Phi
Linnaeus University(林奈大学);Machine Intelligence Research Labs (MIR Labs)(机器智能研究实验室)
深度学习是大数据分析工具和智能应用的重要组成部分,例如自动驾驶汽车、计算机视觉、语音识别或精准医疗。然而,训练过程是计算密集型的,并且如果按顺序执行,则通常需要大量时间。现代并行计算系统提供了减少深度神经网络所需训练时间的能力。在本文中,我们提出了我们的并行化方案训练卷积神经网络(CNN)命名为受控Hogwild与任意顺序的同步(混沌)。CHAOS的主要功能包括支持线程和向量并行性,在反向传播过程中没有明显延迟的权重参数的非即时更新,以及任意顺序的隐式同步。CHAOS专为使用英特尔至强融核加速的并行计算系统量身定制。我们评估我们的并行化方法经验使用测量技术和性能建模的线程和CNN架构的各种数量。使用Xeon Phi上的线程总数对手写数字的MNIST数据集进行的实验结果显示,与Xeon Phi的一个线程上执行相比,加速高达103倍,与英特尔至强E5上的顺序执行相比,加速高达14倍,与英特尔酷睿i5上的顺序执行相比,加速高达58倍。
2017-02-25 cs.CV cs.DC cs.LG