A new and five older Concurrent Memory Reclamation Schemes in Comparison (Stamp-it)
存储管理是几乎所有共享存储器、并发数据结构和算法中的关键组件,包括共享存储器资源的有效分配和随后的回收。本文贡献了一个新的,无锁,摊销的恒定时间的内存回收计划称为\emph{Stamp-it},并比较它的五个著名的,选择性有效的计划,从文献中,即无锁引用计数,危险指针,基于静态的回收,基于纪元的回收,和新的基于纪元的回收。提供了一个广泛的,实验评估与新的和常用的基准,在四个不同的共享内存系统的硬件支持的线程数范围从48到512,显示邮票,它是有竞争力的,在许多情况下和方面优于其他计划。
2017-12-17 cs.DC
Shared KV Caching for Replicated 27B Inference: Correctness Failures and Performance Boundaries
UNSW Sydney(悉尼新南威尔士大学)
本研究通过工程案例验证共享KV缓存的正确性修复,并测量27B推理副本间延迟,发现交替放置可显著降低首令牌时间,而固定放置收益甚微。
2026-09-15 cs.DC cs.LG cs.PF
Interference analysis of shared last-level cache on embedded GP-GPUs with multiple CUDA streams
针对嵌入式GP-GPU中多CUDA流竞争共享末级缓存产生干扰、影响系统可预测性的问题,本文对vadd、gemm两类基元在并发读内存内核和并发主机到设备拷贝流干扰下的情况开展了初步定性分析。
2023-10-07 cs.DC
Native Dual Pools or Shared Paging? Memory Organization for Concurrent Hybrid LLM Serving
Electronics and Telecommunications Research Institute (ETRI)(电子电信研究所)
该研究对比了四种内存组织方案,优化混合LLM服务的内存管理,发现S0-S1-S2优化可提升吞吐量与完成时间,D0性能随内存等因素变化,为相关内存管理设计提供依据。
2026-10-15 cs.DC
Dynamic Checking of Safe Concurrent Memory Access using Shared Ownership
在共享存储器并发编程中,可以使用诸如监视器或通道之类的同步机制来保护共享资源。然而,这些机制和它们所保护的资源之间的联系只是隐含地给出的;这使得程序员很难正确地应用这些机制,编译器也很难检查资源是否得到了适当的保护。本文提出了一种自动检查共享内存是否被正确访问的机制,使用一种称为共享所有权的方法。与传统的所有权相比,共享所有权允许多个所有者拥有资源,从而提供了更大的灵活性。在此方法的基础上,我们定义了一个抽象的资源访问模型,提供操作来管理数据依赖关系,以及共享和访问权限的转移。该模型是严格定义的使用正式的语义,并显示是免费的数据竞争。当模拟模型和程序执行时,此属性可用于检测不安全的内存访问。该方法的表现力和效率证明了各种程序使用常见的同步机制。
2014-07-04 cs.DC cs.SE
Maintenance of Strongly Connected Component in Shared-memory Graph
在本文中,我们提出了一个在线的全动态算法,以维护强连通组件的有向图在共享存储器结构。边和顶点通过固定数量的线程同时添加或删除。据我们所知,这是第一个提出使用线性并发有向图的工作,并且使用有序和无序的基于列表的集合来构建。我们提供了一个经验比较顺序和粗粒度。结果表明,根据不同的工作负载分布和应用程序,我们的算法的吞吐量增加了3到6倍。我们相信在线图有巨大的应用。最后,我们展示了如何将该算法扩展到在线图中的社区发现。
2018-04-10 cs.DC
Causal Linearizability
大多数关于共享内存的并发对象的验证工作都假设顺序一致性,但大多数多核处理器只支持不提供顺序一致性的弱内存模型。此外,大多数验证工作都集中在并发对象的线性化上,但是现有的实现被优化为在不可线性化的弱内存模型上运行。在本文中,我们解决这些问题,通过引入因果线性化,并发对象运行在弱内存模型的正确性条件。像线性化本身一样,因果线性化允许在对客户端行为的弱约束下组合并发对象。我们指定这些限制,通过引入一个概念的操作种族自由,在那里的程序,满足此属性的行为保证,如果他们的共享对象实际上是线性化的。我们将这些想法应用于Linux内核中的对象,这些对象经过优化以在x86处理器系列的内存模型TSO上运行。
2016-04-22 cs.DC
A Concurrent Perspective on Smart Contracts
在本文中,我们探讨了以太坊等加密货币中智能合约的多交易行为与共享内存并发的经典问题之间的显著相似性。我们研究了以太坊区块链中的两个现实世界的例子,并分析了它们如何容易受到与传统并发程序中经常发生的错误密切相关的错误的影响。然后,我们详细阐述了可观察到的合同行为和研究的并发主题,如原子性,干扰,同步和资源所有权之间的关系。所描述的合约作为并发对象的类比提供了对智能合约潜在威胁的更深入的理解,表明了更好的工程实践,并使现有最先进的形式化验证技术的应用成为可能。
2017-02-17 cs.DC
MeanField Surrogate Modeling for Scalable Runtime Scheduling of Concurrent Heterogeneous AI Inference on Shared GPUs
Seoul National University(首尔大学);Institute of Computer Technology (ICT), Seoul National University(首尔大学计算机技术研究所)
针对共享GPU上并发异构AI推理的调度难题,提出MeanField代理模型,将其集成到遗传算法调度器中,在多类工作负载场景下实现高精度、低耗时的可扩展调度,性能接近穷举搜索且效率大幅提升。
2026-09-03 cs.AI cs.DC
Mastering Concurrent Computing Through Sequential Thinking: A Half-century Evolution
并发,同时做很多事情的艺术正在慢慢成为一门科学。它很难掌握,但它出现在现代计算系统中,无论是当通信介质是共享内存还是当它是通过消息传递时。并发编程是困难的,因为它需要处理许多可能的,不可预测的行为的通信进程相互作用。从20世纪60年代开始,处理并发性的主要方法是通过减少到顺序推理。我们追溯这段历史,并通过几个例子来说明它,从基于互斥的早期想法,经过共识和并发对象,直到今天的分类账和区块链。最后,我们讨论了这种方法遇到的限制,有关容错,性能和固有的并发问题。
2018-12-14 cs.DC
Memory Models for C/C++ Programmers
内存模型是共享内存系统并发语义的关键。它定义了对于并发程序执行的任何给定的写操作集,允许读操作返回的可能值,从而定义了共享变量的基本语义。因此,如果没有明确的内存模型,就不可能对程序或程序设计语言实现的任何部分进行有意义的推理。本文简要介绍了内存模型的主题,解释了为什么它对并发程序至关重要,并涵盖了从顺序一致性到x86和ARM/POWER CPU的众所周知的内存模型。第4节完全致力于C++11内存模型,解释如何使用它来编写并发代码,这些代码不仅正确和可移植,而且通过利用现代体系结构的宽松内存模型来提高效率。
2018-03-12 cs.DC
Shared Memory-contention-aware Concurrent DNN Execution for Diversely Heterogeneous System-on-Chips
Colorado School of Mines(科罗拉多矿业学院)
针对多DNN并发推理的异构SoC,提出HaX-CoNN调度方案,考虑层特征、共享内存争用和加速器转换,在Orin、Xavier和Snapdragon 865上实现内存争用降低45%,延迟和吞吐量分别提升32%和29%。
2024-02-07 cs.AI cs.DC cs.PF
Storage-Efficient Shared Memory Emulation
我们研究的设计存储效率的算法模拟原子共享内存的异步,分布式消息传递系统。我们的第一个算法是一个原子的单写多读算法的基础上一种新的擦除编码技术,称为\emph{multi-version code}。接下来,我们提出了一个扩展,我们的单作家算法的多作家多读者的环境。我们的第二个算法结合了复制和多版本代码,并且适合于我们期望大量并发写入的情况。此外,当并发写的数量是有界的,我们提出了一个简化的第二个算法,具有一个简单的结构类似于单作家算法的变体。假设$N$是服务器的数量,共享内存变量的大小为1个单位。我们的算法具有以下性质:(i)写操作终止,如果服务器故障的数量是由一个参数$f$的限制。只要与读取并发的写入的数量小于设计参数$ν$,并且服务器故障的数量由$f$限制,则算法还保证读取的终止。(ii)第一种算法的总存储大小和第二种算法的稳态存储大小都是$N/\lceil \frac{N-2f}ν \rceil$单位。此外,我们的第二种算法的简化变体实现了$N/\lceil \frac{N-2f}ν \rceil$的最坏情况下的存储成本,渐近匹配Cadambe等人的下限。$N \gg f, ν\le f+1$。(iii)写和读操作仅由少量(2到3)通信轮组成。(iv)对于所有算法,服务器维护一个简单的数据结构。服务器只需要存储与它观察到的最新值相关联的信息,类似于基于复制的算法。
2018-06-26 cs.DC
Separation and Equivalence results for the Crash-stop and Crash-recovery Shared Memory Models
线性化,传统的并发数据结构的正确性条件被认为是不够的非易失性共享内存模型,其中进程恢复崩溃后。对于这种崩溃恢复共享内存模型,严格线性化被认为是合适的,因为与线性化不同,它确保崩溃操作在崩溃之前生效或根本不生效。这项工作形式化和回答的问题,是否实现的数据类型的崩溃停止共享内存模型也是严格线性化的崩溃恢复模型。这项工作提出了一个严格的研究,以证明如何帮助机制,通常采用非阻塞实现,是算法的抽象,从严格的线性化划定线性化。我们的第一个贡献形式化的崩溃-恢复模型,以及显式的进程崩溃和恢复如何在标准的崩溃-停止共享内存模型上引入更多的维度。我们做了以下技术贡献:(i)证明了严格线性化与任何已知的帮助定义无关;(ii)给出了帮助自由的自然定义,证明了任何完全对象类型的无障碍、可线性化和无帮助的实现也是严格线性化的;(iii)最后,我们证明了对于一个大类的对象类型,一个非阻塞严格线性化的实现不能有帮助。从整体上看,这项工作提供了第一个精确的表征的复杂性,在应用一个并发的实现设计的崩溃停止模型的崩溃恢复模型,反之亦然。
2020-12-07 cs.DC
On the Limits of Causal Observation in Shared-Memory Systems
Posgrado en Ciencia e Ingeniería de la Computación, Universidad Nacional Autónoma de México(墨西哥国立自治大学计算机科学与工程研究生项目);Instituto de Matemáticas, Universidad Nacional Autónoma de México(墨西哥国立自治大学数学研究所)
研究并发操作因果观察问题,证明在可观察边界上无法同时实现完备性和可靠性,并展示监测点位置的决定性作用,通过三种无锁实现验证理论。
2026-10-23 cs.DC
Arcadia: A Fast and Reliable Persistent Memory Replicated Log
字节可寻址持久存储器(PMEM)的性能特性有可能在广泛的应用范围内显着提高系统性能。但是持久存储器给程序员带来了相当大的新挑战:只有8字节的写原子性,乱序刷新和节点故障限制的可用性。通过仔细地对存储操作的顺序进行排序,并在每个排序点插入显式的刷新和栅栏操作,可以直接使用PMEM的原子性和排序约束。但这是乏味的,而且容易出错:太多的刷新操作会使PMEM的性能优势失效,即使大量使用,也很难证明给定的程序是崩溃一致的。日志记录是处理这些问题的一个很好的抽象,但是之前关于PMEM日志记录的工作并没有成功地隐藏PMEM的特性。此外,日志接口和设计中的缺点已经阻止了完全PMEM性能的实现。我们相信,在提供完整性能的同时向程序员隐藏特性的日志设计是成功的关键。在本文中,我们提出了阿卡迪亚的设计和实现,一个通用的复制日志PMEM来解决这些问题。Arcadia处理日志记录的原子性、完整性和复制,以减轻程序员的负担。我们的设计有几个新颖的方面,包括具有有序提交的并发日志写入、本地和远程PMEM写入的原子性和完整性原语,以及基于频率的日志强制策略,用于提供低开销持久性,并保证未提交记录的有界丢失。我们的评估表明,Arcadia的性能比最先进的PMEM日志(如PMDK的libpmemlog、FLEX和Query Fresh)高出数倍,同时提供了更强的日志记录持久性保证。我们希望阿卡迪亚成为领先的现成的PM…
2022-06-24 cs.DC cs.PF
Anonymous Processors with Synchronous Shared Memory
我们考虑同步分布式系统中,匿名处理器通过共享读写变量进行通信。我们的目标是让所有处理器都为自己分配唯一的名称。我们认为这个问题的情况下确定的数量$n$是已知的或不,是否同时尝试写入不同的值到同一个存储单元是允许的或不,以及是否共享变量的数量是一个常数独立的$n$或它是无界的。对于已知的$n$,我们给拉斯维加斯算法,在最佳的预期时间内运行,由可用的共享内存的量确定,并使用最佳的$O(n\log n)$预期数量的随机位。对于未知的$n$,我们给出蒙特卡罗算法,产生正确的输出时,终止概率是$1-n^{-Ω(1)}$,这是最好的可能时,几乎肯定终止,并使用$O(n\log n)$随机位。
2016-09-01 cs.DC
A Practical Analysis of Rust's Concurrency Story
正确的并发程序很难编写;当多个线程改变共享数据时,它们可能会丢失写入、损坏数据或产生不稳定的程序行为。虽然并发性的许多数据竞争问题可以通过在代码中放置锁来避免,但这些问题通常会使程序执行串行化,并且会显着降低性能关键型应用程序的速度。程序员也会犯错误,并且经常忘记执行较少的代码路径中的锁,这导致程序仅在极少数情况下行为不当。Rust是Mozilla最近推出的一种程序设计语言,它试图通过在编译时检测数据竞争来解决这些相互交织的问题。Rust的类型系统编码了数据结构在类型系统中的线程之间共享的能力,这反过来允许编译器拒绝线程直接改变共享状态而没有锁或其他保护机制的程序。在这项工作中,我们研究了Rust类型系统的这一方面如何影响并发数据结构的开发和改进,以及它适应正确性由低级不变量保证的情况的能力(例如,在无锁算法中)不能直接在类型系统本身中表达。我们详细介绍了并发无锁散列表的实现,以描述Rust语言的这些特性。我们的代码可以在https://github.com/saligrama/concache上公开获得,并且是Rust语言中最快的并发散列表之一,这导致了并发程序中的瓶颈。
2019-04-27 cs.DC cs.PL
Parallel image thinning through topological operators on shared memory parallel machines
在本文中,我们提出了一个强大的拓扑细化算子的并发实现。该算子能够直接作用于灰度图像而不修改其拓扑结构。我们介绍了一种适应并行化方法,它结合了分裂,分布和合并(SDM)的战略和混合并行技术(数据和线程并行)。引入的策略允许有效的并行化的一大类拓扑算子,主要包括,λ-leveling,crossonization和波峰恢复算法。为了实现良好的加速,我们关心线程的协调。细化过程中的分布式工作由可变数量的线程完成。在2D灰度图像(512*512)上的测试,使用具有8个CPU内核(2个Xeon E5405,以2 GHz的频率运行)的共享内存并行机(SMPM),显示出6.2的增强,使用8个线程最大实现125张图像/秒的节奏。
2016-03-30 cs.DC
KREX: Concurrent Kernel Benchmarking on Shared GPUs via Region-Granular Exclusivity
HKUST(香港科技大学);Alibaba Group(阿里巴巴集团)
KREX通过区域粒度独占性实现共享GPU上的并发内核基准测试,在保持测量保真度的同时,将吞吐量提升至3.4倍,且时序膨胀极小。
2026-09-25 cs.DC cs.OS cs.PF
Resource Allocation for Multiple Concurrent In-Network Stream-Processing Applications
本文研究了网络流处理应用中的算子映射问题。网络内流处理相当于将一个或多个稳定状态的运算符树应用于在网络中的不同位置处连续更新的多个数据对象。目标是以某个期望的速率计算某些最终数据。不同的算子树可以共享公共子树。因此,可以在不同的应用程序树中重用一些中间结果。这项工作的第一个贡献是提供复杂性的结果,为不同的情况下的基本问题,以及整数线性规划公式的各种问题的实例。第二个贡献是几个多项式时间算法的设计。这些方法的主要目标之一是重用多个应用程序共享的中间结果。我们的定量比较,这些算法在模拟中证明了选择合适的处理器的重要性算子映射。它还使我们能够识别在实践中取得良好效果的启发式。
2009-03-04 cs.DC
Real-time topological image smoothing on shared memory parallel machines
平滑滤波是图像预处理和模式识别的首选方法。本文提出了一种新的二值情况下二维物体的并行光顺方法。所提出的方法提供了一个并行计算,同时通过使用同伦变换保持拓扑结构。我们引入了一个适应的并行化策略,称为分裂,分布和合并(SDM)的策略,它允许有效的并行化的一大类拓扑算子,主要包括,平滑,tenonization,分水岭算法。为了实现良好的加速比,我们关心任务调度。平滑过程中的分布式工作由可变数量的线程完成。使用具有8个CPU核心(2个Xeon E5405以2GHz的频率运行)的共享内存并行机(SMPM)对2D二值图像(512*512)进行测试,显示出5.2的增强,从而实现每秒32幅图像的节奏。
2016-03-30 cs.DC
SWARM: Replicating Shared Disaggregated-Memory Data in No Time
提出 SWARM,一种针对分解内存共享对象的复制方案,通过 Safe-Guess 协议和 In-n-Out 技术实现单次往返的强一致性和无等待复制,构建的 SWARM-KV 在低延迟开销下显著优于现有方案。
2024-09-24 cs.DC
Ledger-State Stigmergy: A Formal Framework for Indirect Coordination Grounded in Distributed Ledger State
本文提出基于账本状态的间接协调框架,通过状态转换形式化方法,识别三种常见链上协调模式及Commit-Reveal序列叠加,提供可重用的词汇和设计指导。
2026-04-05 cs.DC cs.MA
The Convergence of Stochastic Gradient Descent in Asynchronous Shared Memory
IST Austria(奥地利科学技术研究所);Cornell(康奈尔大学)
随机梯度下降(SGD)是机器学习中的一个基本算法,代表了从回归到神经网络的几个经典模型的优化骨干。鉴于最近的实际重点分布式机器学习,显着的工作一直致力于该算法的收敛性能下,不一致的和嘈杂的更新所产生的执行在分布式环境中。然而,令人惊讶的是,这个经典算法在标准共享内存模型中的收敛特性仍然没有得到很好的理解。在这项工作中,我们解决这个差距,并提供新的无锁并发随机梯度下降,在经典的异步共享内存模型中执行的收敛界限,对一个强大的自适应对手。我们的研究结果给出了改进的上界和下界的“价格”时,在并发设置中执行的基本SGD算法。他们表明,这种经典的优化工具可以收敛得更快,并且比以前已知的异步迭代参数范围更广。在同一时间,我们表现出一个基本的权衡系统中的最大延迟和SGD可以收敛的速度,它管理的参数集下,该算法仍然可以有效地工作。
2018-06-22 cs.DC cs.LG stat.ML
Generalized Wake-Up: Amortized Shared Memory Lower Bounds for Linearizable Data Structures
在这项工作中,我们定义了广义唤醒问题,$GWU(s)$,一个共享内存的异步系统与$n$进程。非正式地,由递增序列$s = s_1,\ldots,s_p$参数化的问题要求至少$n - i + 1$进程识别至少$s_i$其他进程已经“唤醒”并且对于每个$1 \le i \le n$采取至少一个步骤。我们证明,任何解决方案$GWU(s)$,使用读/写/比较和交换变量至少需要$Ω\left(\sum_{i = 1}^n \log s_i \right)$步骤来解决。广义唤醒下限作为一种技术,用于证明许多线性化并发数据类型上的操作的摊销复杂性的下限,通过减少。我们用几个例子来说明这一点:(1)我们展示了一个$Ω(\log n)$摊销下限的复杂性实现计数器和{ \em获取和增量}对象匹配的复杂性算法给出的Jayanti和Ellen&Woelfel;下限甚至扩展到一个显着放松版本的对象。(2)我们显示了一个$Ω(\log n)$摊销的下限的并发堆栈,队列和优先级队列的弹出,出队,deleteMin操作的复杂性分别举行,即使数据类型定义显着放宽;(3)在另一篇文章中,我们已经显示了一个$Ω(\log\log(n \ell/m))$摊销的下限的操作的复杂性上的一个union查找对象的大小$\ell$(当$m$操作执行)。
2022-07-12 cs.DC cs.DS
History-Independent Concurrent Hash Tables
Technion, Israel(以色列理工学院);Stony Brook University, USA(纽约州立大学石溪分校);New York University, USA(纽约大学);Tel-Aviv University, Israel(特拉维夫大学)
本文研究了与历史无关的并发字典,特别是哈希表,建立了其空间需求的内在界限。提出了一种无锁的与历史无关的并发哈希表,基于Robin Hood哈希,每个内存单元存储两个元素和两个位,并证明了其空间效率。
2025-03-26 cs.DC cs.DS
PolyKV: A Shared Asymmetrically-Compressed KV Cache Pool for Multi-Agent LLM Inference
Independent Researcher(独立研究者)
PolyKV通过非对称压缩技术实现多个并发推理代理共享单一KV缓存池,提升内存效率并减少推理延迟。
2026-04-27 cs.CL cs.DC cs.LG
Deploying a sharded MongoDB cluster as a queued job on a shared HPC architecture
数据存储是数据科学的基础,在其所有变体中,都是建立在其基础上的。它们为结构化和非结构化数据提供了一个可查询的接口。数据科学通常从利用这些查询功能来执行初始数据准备开始。但是,大多数数据存储都被设计为连续运行,以在很少或没有停机时间的情况下为不同的用户请求提供服务。许多HPC架构通过作业队列调度器处理用户请求,并维护一个分片文件系统来存储作业持久化数据。我们部署了一个MongoDB分片集群,其中包含一个运行脚本,旨在并发运行数据科学工作负载。作为我们的测试片,我们运行数据摄取和数据查询,以衡量性能与不同的配置上的蓝水超级计算机。
2022-09-06 cs.DC cs.PF
Pythia: Scheduling of Concurrent Network packet Processing Applications on Heterogeneous Devices [EXTENDED VERSION]
现代商用计算系统由许多不同的异构处理单元组成,每个处理单元都有其独特的性能和能量特性。然而,大多数当前的网络分组处理框架仅针对特定的处理单元(CPU或加速器),使得剩余的计算资源未被充分利用或甚至空闲。在本文中,我们提出了一种自适应调度方法的网络数据包处理应用程序,支持任何异构和非对称的架构,可以发现在一个商品的高端硬件设置。我们的调度器不仅将工作负载分配到系统中的适当设备以实现所需的性能结果,而且还可以实现并发执行的各种网络数据包处理应用程序的多路复用,消除运行时引入的干扰效应。评估结果表明,我们的调度器能够解决共享硬件资源中的干扰,以及快速响应动态波动(例如,应用程序过载、流量突发、基础设施变化等)这可能发生在实时的上。
2022-04-29 cs.DC cs.NI cs.PF
Two Mutual Exclusion Algorithms for Shared Memory
在本文中,我们介绍了两个算法,解决了通过共享变量通信的并发进程的互斥问题,[2]。我们的算法保证任何试图进入临界区的进程最终都能进入临界区,并被正式证明是正确的。第一个算法使用一个特殊的协调进程,以确保平等的机会,以等待临界区的进程。在第二个算法中,没有协调器,退出临界区的进程负责公平地选择下一个进程。在没有进程等待的情况下,该回合被标记为空闲,并将由未来的等待进程确定。使用的共享变量类型是一个turn变量,所有进程都可读和可写;和一个flag数组,所有进程都可读,flag[i]只能由进程i写。第一种算法有一个版本,其中没有使用所有变量都可写。本文所参考的文献为[4]和[3],其余均为原创性工作。
2019-03-25 cs.DC cs.DS