Progressive Transactional Memory in Time and Space
事务存储器(TM)允许并发进程将共享\emph{data items}上的操作序列组织成原子事务。事务可以提交,在这种情况下,它看起来已经顺序地执行,或者它可以是\emph{abort},在这种情况下,没有数据项被更新。TM编程范式作为传统细粒度锁定技术的替代方案出现,提供了编程和组合的便利性。虽然TM本身通常是使用锁实现的,但它将基于锁的同步的固有问题隐藏在一个漂亮的事务性编程接口后面。在本文中,我们探讨了固有的时间和空间复杂度的锁为基础的TM,与最流行的类的\emph{progressive}锁为基础的TM的重点。我们得出,一个渐进的TM可能会强制执行一个只读的事务,以执行二次(在它读取的数据项的数量)的步骤数和访问不同的内存位置的线性数量,关闭的问题的固有成本的\emph{read validation}在TM。然后,我们表明,发生在一个渐进的TM,其中$n$并发进程执行事务上的单个数据项的执行\emph{remote memory references}(RMR)的总数可能会达到$Ω(n \log n)$,这似乎是第一个RMR复杂性的下限事务内存。
2015-11-13 cs.DC
Inherent Limitations of Hybrid Transactional Memory
最近已经提出了几种混合transmittance存储器(HyTM)方案,以利用缓慢、可靠的软件备份来补充硬件transmittance存储器(HTM)的快速但尽力而为的性质。然而,构建具有硬件和软件事务之间的非平凡并发性的HyTM的基本限制仍然没有得到很好的理解。在本文中,我们提出了一个通用的模型HyTM实现,它捕获的能力,硬件事务缓冲内存访问,并允许我们正式量化和分析的开销(仪器)的HyTM计划。我们证明如下:(1)即使对于弱进度保证,也不可能构建具有未插装的读取和写入的严格可串行化HyTM实现,以及(2)在合理的假设下,在任何不透明的渐进HyTM中,硬件事务必须招致与其数据集的大小成线性关系的插装成本。我们还提供了两个上限的实现,其仪器成本是最佳的进度保证。总之,本文捕获的第一次的HyTM提供的硬件和软件事务之间的并发程度之间的固有的权衡,和仪器的开销的实现必须承担的金额。
2015-02-17 cs.DC
The Optimal Pessimistic Transactional Memory Algorithm
transmittedmemory(TM)是一种旨在通过在保持效率的同时自动同步来简化并发编程的方法。TM通常采用乐观的并发控制方法,该方法依赖于在发生冲突时中止和重新启动事务。但是,如果在其代码中存在不可撤销的操作,则中止的事务仍可能在系统中留下一些无法清除的影响。悲观方法消除了这个问题,因为它依赖于在冲突的情况下延迟操作而不是中止,但是由于需要串行化事务,迄今为止悲观TM的并行性很低。在本文中,我们的目标是介绍OptSVA,一个悲观TM并发控制算法,通过电池的深远的优化,包括早期释放,异步执行,并广泛使用缓冲,确保高水平的并行性。
2017-11-20 cs.DC
Sandboxing for Software Transactional Memory with Deferred Updates
允许事务在共享数据的不一致状态上工作的软件事务存储器实现有引起应用可见错误(诸如存储器访问违规或无限循环)的风险。因此,许多实现依赖于事务的每次读取的重复增量验证,以始终保证共享数据的一致视图。由于这种急切的验证技术会产生大量的处理成本,因此已经发布了几项建议,以建立一个交易沙箱,透明地防止或抑制这些错误,从而减少飞行中验证的频率。基于延迟更新并考虑非托管语言的软件事务存储器中最全面的事务沙箱概念,集成了多种技术,如信号插入,带外验证以及静态和动态插装。后者包括在每个直接写入之前插入验证屏障,其寻址线程的执行堆栈并且可能由未验证的读取产生。本文主要是从审查这种沙箱的方法,它揭示了一些改进C/C++上的沙箱。基于对运行时环境和编译器的了解,已经开发了一个错误模型来识别应用程序可见错误的关键路线。这种分析导致堆栈保护的概念,不太频繁的验证,一种替代的带外验证技术,并揭示了额外的风险,所谓的放弃区域内没有仪器交易。
2014-09-22 cs.DC
On the Cost of Concurrency in Hybrid Transactional Memory
现有技术的\emph{software transactional memory (STM)}实现通过小心地避免\emph{incremental validation}的开销(即,重新读取先前读取的数据项以避免不一致),同时仍然提供\emph{progressiveness}(仅允许由于\emph{data conflicts}而导致的事务中止)。硬件事务内存(HTM)实现承诺甚至更好的性能,但不能提供进度保证。因此,它们必须与STM组合,导致\emph{hybrid} TM(HyTM),其中硬件事务必须是\emph{instrumented}(即,访问元数据)以检测与软件事务的争用。我们发现,与渐进式STM不同,渐进式HyTM中的软件事务无法避免增量验证。事实上,即使硬件事务可以\emph{read}元数据\emph{non-speculatively},该结果也成立。然后,我们提出了\emph{opaque} HyTM算法,提供在硬件仪器方面最佳的\emph{progressiveness for a subset of transactions}。我们探讨这些算法的并发性与硬件仪器与软件验证权衡。我们对Intel和IBM POWER8 HTM的实验似乎表明:(i)\emph{cost of concurrency}在实践中也存在,(ii)重要的是实现HyTM,它为最大的事务…
2019-07-05 cs.DC
Achieving Starvation-Freedom in Multi-Version Transactional Memory Systems
软件事务存储器系统(STM)作为解决多核系统中的多线程编程的同步和并发问题的优雅替代方案已经引起了极大的兴趣。客户端程序通过发出事务来使用STM。STM确保事务要么提交要么中止。由于冲突而中止的事务通常会重新发出,并期望它在后续的化身中成功完成。然而,许多现有的STM不能提供饥饿自由,即,在这些系统中,并发冲突可能会阻止具体化事务的提交。为了克服这一局限性,我们系统地推导出一种新的饥饿免费算法的多版本STM。我们的算法既可以用于版本数无限且使用垃圾回收的情况,也可以用于仅维护最新的K个版本的情况。我们已经证明,我们提出的算法比现有的最先进的STM表现更好。
2019-03-22 cs.DC
Atomic RMI 2: Highly Parallel Pessimistic Distributed Transactional Memory
分布式事务存储器(DTM)是一种新兴的分布式同步方法,它基于事务抽象在分布式计算中的应用。DTM有几种系统模型,但控制流模型(CF)特别强大,因为它允许事务将计算委托给远程节点以及访问共享数据。然而,没有现有的CF DTM系统与在其他模型中操作的最先进的系统具有同等的性能。因此,我们介绍了一个CF DTM同步算法,OptSVA-CF。它支持细粒度的悲观并发控制,因此避免了中止,从而避免了不可撤销操作的问题。此外,它使用早期发布和可扩展性来高度并行并发事务,同时保持强大的安全属性。我们将其实现为Atomic RMI 2,实际上产生了一个CF DTM系统,正如我们的评估所示,它可以胜过最先进的非CF DTM,如HyFlow 2。
2016-06-13 cs.DC
Last-use Opacity: A Strong Safety Property for Transactional Memory with Early Release Support
事务存储器(TM)是一种并发控制抽象,它允许程序员指定要作为事务原子地执行的代码块。然而,由于事务代码可以包含几乎任何操作,因此必须在任何给定时间关注共享变量的状态。例如,在一个示例中,与数据库事务相反,如果TM事务读取陈旧值,则它可能执行危险操作,如尝试除以零、访问非法内存地址或进入无限循环。因此,可串行化性是不够的,TM中需要更强的安全属性,这些属性规定了可以读取的值,即使是中止的事务。因此,开发了许多TM安全特性,包括不透明度以及TMS 1和TMS 2。然而,这些强大的属性排除了使用早期发布作为优化TM的技术,因为它们实际上禁止从实时事务中读取。另一方面,允许提前发布的属性要么不足以防止上述任何问题(可恢复性),要么在提前发布的事务上添加额外的条件,限制其适用性(弹性不透明度,实时不透明度,虚拟世界一致性)。本文介绍了最后一次使用不透明度,一个新的TM安全属性,这意味着是一个强大的属性,如不透明度和可串行化之间的妥协。该属性消除了所有不一致的视图,但只有一小部分不一致的视图,并且对事务没有严格的条件。为了说明,我们提出了一个最后使用不透明TM算法,并表明它满足新的安全属性。
2016-03-25 cs.DC
Safety of Deferred Update in Transactional Memory
事务内存允许用户将指令序列声明为推测性的\emph{transactions},可以是\emph{commit}或\emph{abort}。如果事务提交,它看起来是顺序执行的,因此提交的事务构成正确的顺序执行。如果一个事务中止,它的任何指令都不会影响其他事务。\emph{opacity}的流行标准要求中止事务的视图也必须与提交事务构成的全局顺序一致。这被认为是重要的,因为由中止的事务观察到的不一致可能导致致命的不可恢复的错误或在无限循环中浪费系统。直观地说,不透明实现必须确保事务在提交或中止之前获得的中间视图不会受到尚未开始提交的事务的影响,即所谓的\emph{deferred-update}语义。在本文中,我们打算正式把握这种直觉。我们提出了一个变种的不透明性,明确要求的顺序,以尊重延迟更新语义。我们表明,我们的标准是一个安全属性,即,它是前缀封闭和极限封闭。与opacity不同,我们的属性还确保历史的序列化意味着其前缀的序列化。最后,我们表明,我们的属性是等价于不透明的,如果我们假设没有两个事务提交相同的值在同一个变量,并提出了一个反例的情况下,“唯一写”的假设不成立。
2013-04-10 cs.DC
Enabling Efficient RDMA-based Synchronous Mirroring of Persistent Memory Transactions
同步镜像(SM)是构建高可用性和容错企业存储系统的标准方法。SM通过维护多个精确的数据副本并将每次更新同步传播到所有副本来确保强大的数据一致性。这种强一致性提供了容错保证和企业系统设计人员梦寐以求的简单编程模型。对于当前的存储设备,SM带来适度的性能开销。这是因为同时执行本地更新和远程更新仅比仅执行本地更新稍微慢一些,这是由于当今系统中对存储的访问的性能相对较慢。然而,新兴的持久存储器和超低延迟网络技术需要仔细重新评估现有的SM技术,因为这些技术与传统技术相比,呈现出根本不同的延迟特性。除此之外,现有的低延迟网络技术,例如远程直接存储器访问(RDMA),提供有限的排序保证,并且不提供SM所需的耐久性保证。为了评估基于RDMA的SM的性能影响,我们开发了一个严格的测试框架,是基于模拟持久内存。我们的测试框架使用了两种不同的工具:(i)可配置的微基准和(ii)WHISPER基准套件的修改版本,其中包括一组常见的云应用程序。使用这个框架,我们发现,最近提出的RDMA原语,如远程提交,提供正确性保证,但没有充分利用RDMA硬件的异步性质。为此,我们提出了新的原语,使高效和正确的SM在RDMA,并使用这些原语开发两种新的技术,提供高性能的SM的持久性存储器。
2018-10-22 cs.DC
Stable Scheduling in Transactional Memory
我们研究在一组共享对象上执行事务的计算机系统。事务不断到达,受到约束,这些约束被构建为对抗模型,并对事务生成的平均速率和事务使用的对象数量施加限制。我们发现,没有确定性的分布式调度的无障碍模型的事务自治可以提供稳定的任何积极的交易生成率。假设一个系统由$m$共享对象组成,并且对手被约束,使得每个事务最多可以访问$k$共享对象。我们证明,没有调度程序可以是稳定的,如果生成率大于$\max\bigl\{\frac{2}{k+1},\frac{2}{\lfloor \sqrt{2m} \rfloor}\bigr\}$。我们开发了一个集中式调度器,是稳定的,如果事务生成率是最多$\max\bigl\{\frac{1}{4k}, \frac{1}{4\lceil\sqrt{m}\rceil} \bigr\}$。我们设计了一个分布式调度器的基于事务自治模型,其中一个事务被分配给一个单独的处理器,保证稳定性,如果事务生成的速率小于$\max\bigl\{ \frac{1}{6k},\frac{1}{6\lceil\sqrt{m}\rceil}\bigr\}$。对于每一个调度器,我们给出了在事务生成速率范围内的队列大小和事务延迟的上限,对于该调度器是稳定的。
2022-08-15 cs.DC
Safe Privatization in Transactional Memory
transmandemory(TM)通过让程序员将某些代码块指定为原子代码块来促进并发应用程序的开发。使用TM的程序员通常希望在事务内部和外部访问相同的数据,例如,以提高性能或支持遗留代码。在这种情况下,程序员理想地希望TM保证强原子性,其中事务可以被视为相对于非事务访问也以原子方式执行。由于保证任意程序的强原子性是非常昂贵的,研究人员建议只保证某些无数据竞争(DRF)程序,特别是那些遵循私有化习语的程序:从某个时候开始,线程同意可以非事务性地访问给定对象。在TM中安全地支持私有化是非常重要的,因为这通常需要正确地插入事务围栏,直到所有活动事务完成。不幸的是,目前没有就事务性DRF的单一定义达成共识,特别是因为现有的DRF概念没有考虑到事务性围栏。在本文中,我们提出了这样一个概念,并证明,如果TM满足一定的条件推广不透明性和使用它的程序是DRF假设强原子性,那么程序确实具有强原子语义。我们表明,我们的DRF概念允许程序员使用私有化的成语。我们还提出了一种方法来证明我们的不透明度的推广,并将其应用到TL2 TM。
2018-01-12 cs.DC
Stretching the capacity of Hardware Transactional Memory in IBM POWER architectures
商用处理器中的硬件事务存储器(HTM)实现受到其严格的容量限制的严重阻碍。在实践中,这使得当前的HTM不适合内存数据库的许多现实工作负载。本文提出了SI-HTM,它扩展了底层HTM的容量界限,从而打开HTM更广泛的应用程序。SI-HTM利用IBM POWER体系结构的HTM实现和软件层来提供快照隔离的单一版本实现。与HTM和基于软件的并发控制替代方案相比,SI-HTM具有更好的可扩展性,在内存数据库基准测试中,相对于HTM,SI-HTM的速度提高了300%。
2020-03-06 cs.DC
Opacity of Memory Management in Software Transactional Memory
建议通过增量验证来建立事务存储器的不透明度。根据基于时间的内存回收的静默被应用于处理导致内存访问违规的注定失败的事务。不幸的是,这种方法会增加内存消耗,并且不包括事务之外的回收。本文介绍了一种不同的方法,它结合了增量验证和沙箱元素来解决这些问题。
2013-08-13 cs.DC cs.OS
Why Transactional Memory Should Not Be Obstruction-Free
transmittance memory(TM)是一种固有的乐观抽象:它允许并发进程推测性地执行共享数据访问(事务)序列,并可以选择在将来中止它们。早期的TM设计避免使用锁,并依赖于非阻塞同步来确保无阻塞:不允许任何步骤争用的事务中止。然而,后来观察到,无障碍TM表现不佳,因此,目前最先进的TM实现是阻塞的,允许由于数据冲突而不是步骤争用而中止。在本文中,我们解释了这种转变,在TM实践理论上,通过复杂性界限。我们证明了几个重要的下限无障碍TM。然后,我们提出了一个基于锁的TM实现,击败所有这些下限。总之,我们的研究结果表现出相当大的复杂性差距之间的非阻塞和阻塞TM实现。
2016-03-04 cs.DC
On the Cost of Concurrency in Transactional Memory
软件事务存储器(STM)的关键是将一个易于使用的编程接口与现代机器提供的并发计算能力的有效利用相结合。但这种结合是否会带来内在成本?我们通过测量STM实现中必须采用的昂贵同步的数量来评估并发的成本,以确保正并发,即,在某些执行中允许并发事务处理。我们专注于两个流行的进展条件,提供积极的并发:渐进性和宽容。我们表明,在许可的STM,提供了一个非常高的并发度,一个事务执行一个线性数量的昂贵的同步模式相对于其读集大小。相比之下,渐进式STM提供了非常小程度的并发性,但正如我们所展示的,可以使用每个事务最多一个昂贵的同步模式来实现。然而,我们表明,即使在渐进式STM中,交易也必须“保护”(例如,通过使用锁或强同步原语)相对于其写集大小的线性数据量。我们的研究结果表明,在STM实现中寻找高并发度可能会带来相当大的同步成本。
2013-06-27 cs.DC
Defining and Verifying Durable Opacity: Correctness for Persistent Software Transactional Memory
非易失性存储器(NVM),又称持久性存储器,是一种新的存储器范例,即使在断电后也能保存其内容。NVM的预期无处不在,激发了人们对设计新概念的兴趣,以确保并发编程抽象在持久性方面的正确性。到目前为止,这已经导致了许多持久并发数据结构的设计,这些数据结构是为了满足与正确性相关的概念:持久线性化。本文将持久并发正确性的原理转移到软件事务存储器(STM)领域。软件事务存储器算法允许对共享状态的并发访问。像并发数据结构的线性化一样,不透明性是STM正确性的既定概念。首先,我们提供了一个新的定义持久的不透明度扩展不透明度处理崩溃和恢复的NVM的上下文中。其次,我们开发了一个持久的不透明版本的现有STM算法,即transmitted互斥锁(TML)。第三,我们设计了一个持久的不透明性的证明技术的基础上改进TML和持久的不透明性的操作特性,通过适应TMS 2规范。最后,我们应用这种证明技术表明,TML的持久版本确实是持久不透明的。正确性证明在Isabelle中是机械化的。
2020-04-17 cs.DC cs.LO cs.PL
Efficient means of Achieving Composability using Object based Conflicts on Transactional Memory
将并发数据结构(cds)的各个原子方法组合在一起,提出了多个设计和一致性挑战。在这种情况下,由软件事务存储器(STM)中的事务提供的组合可能很方便。然而,大多数STM提供读/写原语来访问共享CD。这些读/写原语会导致不必要的中止。相反,底层cds的语义丰富的高级方法,如查找、插入或删除(在哈希表或列表的情况下),有助于忽略不重要的低级读/写冲突,并允许更好的并发性。在本文中,我们适应数据库中的事务树模型,提出OSTM,使高效的组合在CDS。我们将传统的冲突和合法性概念扩展到使用STM的更高级别的CDS方法,并给出详细的正确性证明,以表明它是共同不透明的。我们实现了OSTM与并发闭地址哈希表(HT-OSTM)和列表(list-OSTM),其中出口作为事务接口的高层操作。在我们的实验中,不同的工作负载和随机生成的事务操作,HT-OSTM显示3到6倍的加速和w.r.t中止HT-OSTM是3到7倍,分别优于ESTM和基于读/写的STM。其中,list-OSTM在所有工作负载和场景中的性能都优于最先进的无锁事务列表,NOrec STM列表和boosted list,提高了30%到80%。此外,列表-OSTM与本文中考虑的其他技术相比,产生了可以忽略不计的中止。
2018-05-26 cs.DC
PIM-STM: Software Transactional Memory for Processing-In-Memory Systems
本文提出PIM-STM库,在首个商用存内计算系统UPMEM上实现多种软件事务内存算法,通过系统评估设计空间、内存层级选择及对传统CPU事务内存应用的加速效果,验证了存内计算架构在事务内存场景下的性能与内存效率优势。
2024-01-17 cs.DC
Achieving Starvation-Freedom with Greater Concurrency in Multi-Version Object-based Transactional Memory Systems
为了正确地利用多核处理器,需要进行并发编程。并发控制是设计正确高效的并发程序所面临的主要挑战。软件事务存储器系统(STM)为程序员提供了轻松的多线程,而无需担心并发问题,如死锁,活锁,优先级反转等。一些STM工作在高级操作上,并确保比RWSTM更大的并发性。这种STM被称为基于对象的STM(OSTM)。OSTM的事务可以返回commit或abort。已中止的OSTM事务重试。但在目前的OSTM环境下,交易可能会挨饿。因此,我们提出了一个饥饿自由的OSTM(SF-OSTM),它确保饥饿自由基于对象的STM系统,同时满足正确性标准的co-opacity。数据库、RWSTM和OSTM认为,维护多个版本对应于事务的每个键,减少了中止的数量,提高了吞吐量。因此,为了实现更大的并发性,我们提出了饥饿自由多版本OSTM(SF-MVOSTM),它确保饥饿自由,同时存储对应于每个键的多个版本,并满足正确性标准,如局部不透明性。为了展示性能优势,我们实现了SF-MVOSTM的三种变体(SF-MVOSTM,SF-MVOSTM-GC和SF-KOSTM),并将其与最先进的STM进行了比较。
2019-08-21 cs.DC
Faster Transaction Commit even when Nodes Crash
原子广播在可序列化的内存事务中扮演着核心角色。当一个节点崩溃时,性能最好的视图会阻塞,直到安装了一个新视图。我们增加了一项新的议定书,以便在过渡期间取得不间断的进展。
2014-05-07 cs.DC
Exploiting Locality in Lease-Based Replicated Transactional Memory via Task Migration
我们提出了Lilac-TM,第一个本地感知的分布式软件传输内存(DSTM)的实现。Lilac-TM是一个完全分散的基于租赁的复制DSTM。它采用了一种新颖的自优化租赁循环方案,该方案基于动态确定是否将事务迁移到拥有其验证所需的租赁的节点,或者要求发起事务的节点获取这些租赁的思想。我们的实验评估表明,Lilac-TM为分布式工作负载提供了显着的性能增益,表现出数据本地性,而通常不会产生非数据本地工作负载的开销。
2013-08-09 cs.DB cs.DC
Non-Interference and Local Correctness in Transactional Memory
事务内存允许用户在原子事务中使用全有或全无的语义来组装动作序列,从而使并发编程变得易于处理和高效。据信,事务内存必须确保所有提交的事务都构成遵守实时顺序的串行执行。相反,中止或未完成的交易不应“生效”。“但“不起作用”到底是什么意思?这似乎是自然的期望,中止或不完整的事务不会出现在全局串行执行中,因此,没有提交的事务可以受到它们的影响。我们研究了另一个不太明显的“不生效”特性,称为非干扰:已中止或未完成的事务不应强制任何其他事务中止。在本文中我们探讨的最强形式的不干扰中,通过从历史中删除一个被中止或不完整事务的子集,我们不应该能够在不违反正确性标准的情况下将被中止的事务转换为已提交的事务。我们表明,非干扰是,在严格意义上说,不可实现的流行标准的不透明性,需要所有的交易(无论是他们提交,中止或不完整)见证相同的全球串行执行。相反,当我们只要求局部正确性时,不干涉是可以实现的。非正式地,如果正确性标准仅要求每个事务可以与在其最后一个事件(被中止或未完成的事务被忽略)之前提交的事务(的子集)一起被序列化,则该正确性标准是局部的。我们给出了几个例子的本地正确性属性,包括最近提出的虚拟世界的一致性标准,并提出了一个简单而有效的实现,满足非干扰和本地不透明。
2013-10-12 cs.DC cs.DS
HeTM: Transactional Memory for Heterogeneous Systems
现代异构计算架构将多核CPU与离散的众核GPU(或其他专用硬件加速器)相结合,实现了前所未有的峰值性能和能效水平。然而,不幸的是,开发能够充分利用异构系统潜力的应用程序是一项非常困难的任务。这项工作采取了一个步骤,减少编程的复杂性异构系统通过引入异构transmittance内存(HeTM)的抽象。HeTM为程序员提供了一个单一内存区域的错觉,在异构系统的CPU和(离散)GPU之间共享,支持原子事务。除了介绍的抽象语义和编程模型的HeTM,我们提出了一个具体的实现建议的抽象,我们命名为投机HeTM(SHeTM)的设计和评估。SHeTM利用了一种新颖的设计,利用推测技术,旨在隐藏CPU和离散GPU之间固有的大通信延迟,并最大限度地减少设备间同步开销。SHeTM基于模块化和可扩展的设计,其允许在CPU和GPU侧上容易地集成替代TM实现,这允许在任一侧上灵活地采用TM实现(例如,在硬件或软件中)最适合应用程序的工作负载和处理单元的体系结构特性。我们证明了SHeTM的效率,通过广泛的定量研究的基础上合成基准和移植的一个流行的对象缓存系统。
2019-09-02 cs.DC
Mutual Visibility by Robots with Persistent Memory
本文讨论了一组半同步的,不透明的机器人占据不同的位置在欧几里德平面的相互可见性问题。由于机器人是不透明的,如果三个机器人躺在一条线上,中间的机器人会挡住另外两个机器人的视线。相互可见性问题要求机器人在有限时间内协调它们的运动以形成一个构型,在该构型中没有三个机器人共线。机器人被赋予了恒定的持久记忆位。在这项工作中,我们考虑的FSTATE计算模型中的持久性存储器是由机器人只记住他们以前的内部状态。除了这个持久的记忆,机器人是健忘的,即,它们不从它们先前的计算周期中携带任何其它信息。本文提出了一种分布式算法来解决一组半同步机器人的相互可见性问题,只有1位的持久存储器。所提出的算法不施加任何其他限制的机器人的能力,并保证无碰撞的机器人运动。
2017-08-09 cs.DC
Transactional WaveCache: Towards Speculative and Out-of-Order DataFlow Execution of Memory Operations
WaveScalar是第一个可以有效地提供命令式语言所需的顺序内存语义的DataFlow架构。这项工作提出了一种替代的内存排序机制,这种体系结构,事务WaveCache。我们的机制维护代码块内内存操作的执行顺序,称为波,但增加了推测执行的能力,乱序,从不同的波操作。这种排序机制的灵感来自于支持Transmittance Memories的进展。波被认为是原子区域,并作为嵌套事务执行。如果一个wave已经完成了所有内存操作的执行,只要前面的wave被提交,它就可以被提交。如果在推测波中检测到危险,则所有后续波(子波)都将中止并重新执行。我们在一组人工基准上评估WaveCache。如果基准测试不经常访问内存,我们可以实现大约90%的加速。在内存密集型应用程序上观察到33.1%和24%的加速,如果内存带宽成为瓶颈,则会出现高达16%的减速。对于一个充满WAW,WAR和RAW危险的应用程序,加速了139.7%。
2007-12-07 cs.AR cs.DC
Transactions on Red-black and AVL trees in NVRAM
字节可寻址非易失性存储器(NVRAM)支持具有低延迟和高带宽的持久存储。其中复杂的数据结构应该以事务方式更新,以便它们始终保持可恢复性。传统的数据库技术,如保留单独的日志、日志或影子数据,都是在粗粒度级别上工作的,其中使用最终的原子更新操作使整个事务可见。这些方法通常需要显著的额外空间开销,并引起日志修剪、状态维护和资源分配的非平凡开销。因此,它们不一定是NVRAM的最佳选择,因为NVRAM支持细粒度的字节可寻址访问。我们提出了一个通用的事务机制更新动态复杂的数据结构“就地”与恒定的内存开销。它与数据结构的大小无关。我们证明和评估我们的方法上的红黑树和AVL树与重做日志的大小不变(4分别。2个高速缓存行)。重做日志保证每个被接受(开始)的事务最终都被执行,尽管其间有任意多个系统崩溃和恢复。我们更新本地和远程NVRAM中的复杂数据结构,为多读取器单写入器访问提供精确的一次语义和持久的线性化。为了持久化数据,我们在本地情况下使用NVRAM的可用处理器指令,在远程情况下使用与软件代理相结合的远程直接内存访问(RDMA)。
2020-06-29 cs.DC
Single Machine Graph Analytics on Massive Datasets Using Intel Optane DC Persistent Memory
Intel Optane DC Persistent Memory(Optane PMM)是一种比DRAM密度更高、成本更低的新型字节寻址存储器。这使得设计经济实惠的系统能够支持高达6TB的随机访问内存。在本文中,我们提出了关键的运行时和算法的原则,以考虑在这种大内存平台上进行极端规模的图形分析。为了证明这些原则的重要性,我们评估了四个现有的共享内存图框架的大型现实世界的网络抓取,使用机器与6 TB的Optane PMM。我们的研究结果表明,基于本文所倡导的运行时和算法原则的框架(i)表现明显优于其他框架,并且(ii)与运行在大型生产集群上的图分析框架相比具有竞争力。
2020-02-23 cs.DC
The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++
弱内存模型为并发程序提供了复杂的、以系统为中心的语义,而事务内存(transactional memory,TM)提供了更简单的、以程序员为中心的语义。两者都已经被详细研究过了,但是它们的组合语义还没有被很好地理解。这是有问题的,因为广泛使用的架构和语言,如x86,Power和C++都支持TM,并且都有弱内存模型。我们的工作旨在澄清弱记忆和TM之间的相互作用,通过扩展现有的公理弱记忆模型(x86,电源,ARMv8和C++)与TM的新规则。我们的正式模型由自动化工具支持,该工具支持(1)针对现有实现对我们的模型进行验证的测试合成,以及(2)与TM相关的转换的模型检查,例如锁省略和将C++事务编译为硬件。一个关键的发现是,ARM Research目前正在考虑的对ARMv8的TM扩展与锁省略不兼容,而不会牺牲可移植性或性能。
2018-04-16 cs.DC cs.PL
Metall: A Persistent Memory Allocator For Data-Centric Analytics
数据分析应用程序在执行分析之前将原始输入数据转换为特定于分析的数据结构。不幸的是,这样的数据摄取步骤通常比分析更昂贵。此外,各种类型的NVRAM设备已经在当今的许多HPC系统中使用。这样的设备对于在单个过程生存周期之外存储和重用数据结构将是有用的。我们开发了Metall,一个建立在内存映射文件机制之上的持久内存分配器。Metall使应用程序能够透明地将自定义C++数据结构分配到各种类型的持久性内存中。Metall融合了受Supermalloc启发的简洁且高性能的存储管理算法和由Boost.Interprocess库开发的丰富C++接口。在动态图构建工作负载上,Metall的性能分别比Boost.Interprocess和memkind(PMEM类)提高了11.7倍和48.3倍。我们还展示了Metall的高适应性集成到一个图形处理框架,GraphBLAS模板库。这项研究的结果表明,Metall将是一个强大的工具,通过允许应用程序有效地利用持久内存来加速未来的大规模数据分析。
2022-03-01 cs.DC
Survey of Persistent Memory Correctness Conditions
近年来,由于非易失性随机存取存储器(NVRAM)的引入,并发持久程序的研究出现了激增,产生了许多难以比较的模型和正确性概念。在本文中,我们调查现有的正确性设置,把它们放在同一个上下文中,并比较它们。我们提出了一个层次结构的基础上,他们认为正确的历史的一般性,这些持久性的属性,并显示如何根据不同的模型假设的层次结构的变化。
2022-08-23 cs.DC
Lotus: Optimizing Disaggregated Transactions with Disaggregated Locks
The Chinese University of Hong Kong(香港中文大学);Huawei(华为)
Lotus通过解耦锁优化分布式事务,提升事务吞吐量和降低延迟。
2025-12-18 cs.DC
Understanding and Optimizing Persistent Memory Allocation
快速、密集、字节可寻址的非易失性内存的激增表明,在程序运行甚至进程和系统崩溃时,数据可能会以指针丰富的"内存中"格式保存。为了充分的一般性,这样的数据需要动态的存储器分配,并且虽然分配器原则上可以"滚入"每个数据结构中,但是希望使其成为单独的抽象。为此,我们引入可恢复性,持久分配器的正确性标准,以及一个非阻塞分配器,Ralloc,满足这一标准。Ralloc基于Leite和Rocha的LRMalloc,具有三个关键创新。首先,我们在正常操作期间保持足够的信息,以便在整个系统崩溃后正确地重建堆。我们的重建机制执行垃圾回收(GC),以确定和补救任何故障引起的内存泄漏。其次,我们引入了过滤函数的概念,它可以识别持久块中指针的位置,以减轻保守GC的限制。第三,为了允许持久区域映射到任意地址,我们对数据和元数据都采用了位置无关(基于偏移)的指针。实验表明,Ralloc与最先进的基于锁的持久分配器Makalu以及LRMalloc和JEMalloc等瞬态分配器在性能上具有竞争力。特别是,对GC和离线元数据重构的依赖允许Ralloc在正常操作期间几乎不为持久性付出任何代价。
2020-03-14 cs.DC
Pangolin: A Fault-Tolerant Persistent Memory Programming Library
非易失性主存储器(NVMM)允许程序员构建复杂的、持久的、基于指针的数据结构,其可以提供相对于管理持久状态的常规方法的实质性性能增益。该编程模型将文件系统从提高性能的关键路线中移除,但是它也将这些数据结构置于基于文件系统的容错机制(例如,基于块的校验和或擦除编码)。如果没有容错能力,使用NVMM保存关键数据的吸引力将大大降低。本文介绍了Pangolin,一个为NVMM设计的容错持久对象库。Pangolin使用校验和、奇偶校验和微缓冲的组合来保护应用程序的对象免受软件错误引起的媒体错误和损坏。它为任何大小的对象提供这些保护,并支持自动在线检测数据损坏和恢复。所需的存储开销很小(对于GB大小的NVMM池,为1%)。Pangolin提供了更强的保护,需要数量级更少的存储开销,并实现了与当前最先进的容错持久对象库相当的性能。
2019-07-25 cs.DC
Window-Based Greedy Contention Management for Transactional Memory
我们认为贪婪的竞争管理器事务内存的M × N执行窗口的事务与M线程和N个事务每个线程。假设每个事务与窗口内最多C个其他事务发生冲突,则简单的贪婪争用管理器可以在CN时间内调度它们。在本文中,我们表明,有更好的时间表。我们提出并分析了两个新的随机贪婪竞争管理算法。第一个算法Offline-Greedy以高概率产生一个长度为O(C + Nlog(MN))的调度,并且当C <= Nlog(MN)时,竞争比为O(log(MN))。离线算法依赖于知道冲突图。第二种算法Online-Greedy以高概率产生长度为O(C log(MN)+ N log^2(MN))的调度,其仅差O(log(NM))因子,但不需要冲突图的知识。我们还给出了一个自适应版本,它实现了类似的最坏情况下的性能和C是在执行下确定的。我们的算法为贪婪事务调度提供了新的权衡,该调度参数化窗口大小和窗口内的事务冲突。
2010-02-22 cs.DC cs.DS cs.PF
CXL Memory as Persistent Memory for Disaggregated HPC: A Practical Approach
本文通过基于Intel FPGA CXL IP的多NUMA硬件原型及STREAM、STREAM-PMem评测,验证CXL内存在分解式HPC中充当持久内存的可行性与编程迁移便利性。
2023-08-21 cs.DC
Persistent Memory Programming Abstractions in Context of Concurrent Applications
非易失性存储器(NVM)技术如PCM、STT、忆阻器和Fe-RAM的出现被认为通过减少存储器和存储器之间的间隙而摆脱传统的存储层次结构来增强系统性能。这种存储器技术被认为具有DRAM的性能和磁盘的持久性。因此,它还将为大数据应用程序提供显着的性能优势,允许以最低的持久化延迟在内存中处理大型数据。通过传统的存储器编程来利用这种以存储器为中心的计算技术的性能优势并不是微不足道的,并且对于并行/并发应用来说,挑战加剧了。为此,已经提出了几种编程抽象,如NVthreads,Mnemosyne和Intel的NVML。然而,决定一个编程抽象,这是更容易编程,并在同一时间确保一致性和平衡各种软件和架构的权衡是公开的有争议的和活跃的研究领域的NVM社区。我们通过建立一个并发和持久集以及开放寻址的哈希表数据结构应用程序来研究NVthreads、Mnemosyne和NVML库。在这个过程中,我们探索和报告各种权衡和隐藏的成本,涉及建立并发应用程序的持久性方面实现效率,一致性和易于编程与这些NVM编程抽象。最后,我们评估了集合和哈希表数据结构应用程序的性能。我们观察到,NVML是最容易编程,但效率最低,Mnemosyne是最性能友好的,但涉及重大的编程工作,以建立并发和持久的应用程序。
2017-12-13 cs.DC
A Secure and Persistent Memory System for Non-volatile Memory
在非易失性存储器中,保证持久数据的安全性和正确性是最基本的。然而,在现有的工作中,安全性和持久性问题通常是独立研究的。为了同时实现数据安全性和持久性,简单地将现有的持久性方案与内存加密相结合是低效的,这是由于崩溃不一致性和显著的性能下降。为了解决安全性和持久性之间的矛盾,提出了一种安全持久存储系统SecPM,它由计数器缓存写通(CWT)方案和局部感知计数器写减少(CWR)方案组成.具体来说,SecPM利用CWT方案通过确保数据及其计数器在数据刷新完成之前是持久的来保证崩溃一致性,并且利用CWR方案通过利用计数器存储、日志和数据写入的空间局部性来提高系统性能。我们在gem 5中使用NVMain实现了SecPM,并使用五种广泛使用的工作负载对其进行了评估。大量的实验结果表明,SecPM通过使用CWR方案减少了多达一半的写请求,并将事务执行速度提高了1.3-2.0倍,并且在大事务中实现了接近未加密持久存储系统的性能。
2019-01-03 cs.AR cs.CR cs.DC
Safe Serializable Secure Scheduling: Transactions and the Trade-off Between Security and Consistency
现代应用程序通常对多个管理域中的数据进行操作。在这种联合设置中,参与者可能不完全信任彼此。这些分布式应用程序使用事务作为核心机制,以确保持久数据的可靠性和一致性。然而,交易所需的协调机制可能会泄露机密信息,并允许未经授权的影响。通过实施一个简单的攻击,我们表明这些侧通道可以被利用。但是,我们的重点是防止这种攻击。我们探索原子,可序列化的事务在联邦设置的安全调度。虽然我们证明,没有协议可以保证在所有设置的安全性和活性,我们建立的条件下,可以安全地完成安全调度的事务集。基于这些条件,我们介绍了分阶段提交,一个安全的联邦事务调度协议。该协议通过将事务划分为不同的阶段来避免不安全的信息通道。我们实现了一个编译器,静态检查代码,以确保它符合我们的条件,和一个系统,使用分阶段提交协议调度这些事务。实验结果表明,该实现能够安全、原子、高效地调度真实的联邦事务。
2016-08-21 cs.CR cs.DC
Architectures for High Performance Computing and Data Systems using Byte-Addressable Persistent Memory
非易失性、字节可寻址、性能接近主存的内存技术有望在不久的将来彻底改变计算系统。这种内存技术提供了极大的内存区域(即每个服务器> 3 TB),非常高性能的I/O以及存储和共享应用程序和工作流数据的新方法的潜力。本文概述了一种架构,该架构旨在利用高性能计算和高性能数据分析系统的内存,以及应用程序如何从这些硬件中受益的描述。
2018-05-25 cs.AR cs.DC
Streaming REST APIs for Large Financial Transaction Exports from Relational Databases
Capital One
本文提出一种流式REST API架构,通过逐步从关系数据库中检索交易记录并直接写入HTTP响应流,减少内存消耗并提升大规模金融数据导出的响应速度和可扩展性。
2026-03-13 cs.DC cs.SE
Basic Performance Measurements of the Intel Optane DC Persistent Memory Module
可扩展非易失性存储器DIRECT最终将随着英特尔Optane DC持久存储器模块(或简称“Optane DC PMM”)的发布而商用。这种新的非易失性DIMM支持字节粒度访问,访问时间为DRAM的数量级,同时还提供了在断电后仍能生存的数据存储。这项工作包括对英特尔Optane DC PMM的第一次深入的学术性性能评估,探索其作为主存设备的能力,以及作为暴露于用户空间应用程序的持久性字节可寻址内存的能力。该报告详细介绍了在多种模式和场景下以及各种宏观尺度基准下的技术性能。Optane DC PMM可用作具有DRAM缓存的大型存储器设备,以隐藏其较低的带宽和较高的延迟。在此内存(或缓存)模式下使用时,Optane DC内存对内存占用量较小的应用程序几乎没有影响。内存占用量较大的应用程序可能会遇到一些相对于DRAM的慢下来,但现在能够保持更多的数据在内存中。当在文件系统下使用时,Optane DC PMM可以显著提高性能,特别是当文件系统经过优化以使用Optane DC PMM的加载/存储接口并且应用程序使用许多小型持久写入时。例如,使用NOVA放松的NVMM文件系统,我们可以将Kyoto Cabinet的性能提高近2倍。Optane DC PMM还可以启用用户空间持久性,其中应用程序显式控制其写入持久Optane DC介质。在我们的实验中,使用用户空间Optane DC持久性的修改后的…
2019-08-09 cs.DC cs.PF
When Correct Memory Goes Wrong: Fuzzing Persistent Memory Use in LLM Agents
Binghamton University, State University of New York(纽约州立大学宾汉姆顿分校);The Pennsylvania State University(宾夕法尼亚州立大学)
针对LLM智能体中持久化记忆使用错误,提出U-Fuzz模糊测试框架,通过变异查询和记忆状态,系统性地发现记忆使用失败,并在多种架构下验证其有效性。
2026-10-01 cs.AI cs.DC
Usage Scenarios for Byte-Addressable Persistent Memory inHigh-Performance and Data Intensive Computing
字节可寻址持久存储器(B-APM)为弥补主存和存储之间的性能差距提供了一个新的机会。在本文中,我们将根据英特尔DCPMM的功能,介绍这项新技术的使用场景。我们概述了DCPMM的一些基本性能特征,并解释了如何配置和使用它来满足HPC和数据密集型领域中内存和I/O密集型应用程序的需求。两个决策树提出了建议的配置选项B-APM,他们的使用说明了两个例子。我们表明,该技术的灵活性具有真正颠覆性的潜力,不仅因为它可以提供的性能改进,还因为它允许系统在同质硬件上满足更广泛的应用。
2020-12-10 cs.DC cs.PF
Reducing Opacity to Linearizability: A Sound and Complete Method
事务内存是一种代表程序员管理线程同步的机制,以便代码块以原子性的假象执行。事务内存的主要安全标准是不透明性,它定义了串行化并发事务的条件。证明不透明性是复杂的,因为它允许并发事务观察不同的内存状态,而TM实现通常基于一个共享存储。本文提出了一个健全的和完整的方法,基于粗粒度的抽象,减少证明的不透明性相对简单的正确性条件:线性化。我们使用我们的方法来验证TML和NORec从文献中,并显示我们的技术扩展到宽松的内存模型,表明这两个TSO下是不透明的,而不需要额外的围栏。我们的方法还阐明了TM设计在更高的抽象层次,作为一个应用程序,我们开发了一个变化的NORec与快速路径读取事务。我们所有的证明都是机械化的,无论是在Isabelle定理证明器还是PAT模型检查器中。
2016-10-04 cs.DC cs.DS cs.LO
DGAP: Efficient Dynamic Graph Analysis on Persistent Memory
本文提出持久内存动态图分析框架 DGAP,利用可变 CSR 及边日志、撤销日志和数据放置机制,在更新与分析性能上分别最高提升 3.2 倍和 3.77 倍。
2024-03-05 cs.DC cs.DS cs.PF
Object Storage, Persistent Memory, and Data Infrastructure for HPC Materials Informatics
提供了关于基础设施选择如何适应材料数据生态系统的猜测。特别关注的是对象存储,英特尔DAOS API,存储类内存(SCM),以及非冯诺依曼计算的前景。最后,假设的影响,数据基础设施的选择上的一个样本材料信息学的问题进行了讨论:计算材料发现相变材料的相变存储器(PCM)的属性。选择PCM作为样本材料信息学案例研究的动机来自于它与新兴SCM硬件的相关性。
2022-10-06 cond-mat.mtrl-sci cs.DB cs.DC
DINOMO: An Elastic, Scalable, High-Performance Key-Value Store for Disaggregated Persistent Memory (Extended Version)
我们提出了Dinomo,一种新的键值存储的分散持久内存(DINO)。Dinomo是第一个同时实现高通用情况性能、可伸缩性和轻量级在线重新配置的KVMs键值存储。我们观察到,以前提出的键值存储的架构限制,防止他们同时实现所有三个目标。Dinomo使用了一种新颖的技术组合来实现这些目标,例如所有权分区,分散的自适应缓存,选择性复制以及无锁和无日志索引。与最先进的密钥值存储相比,Dinomo在各种工作负载上的吞吐量至少提高了3.8倍,具有更高的可扩展性,同时提供快速的重新配置。
2022-09-19 cs.DB cs.DC
Analysis and Optimization of GNN-Based Recommender Systems on Persistent Memory
Cornell University(康奈尔大学);UCSD(加州大学圣地亚哥分校)
图神经网络(GNNs)作为一种处理图上的机器学习任务的有效方法,为构建推荐系统提供了一种新的方法,其中推荐任务可以表示为用户项二分图上的链接预测问题。在大型图上训练基于GNN的推荐系统(GNNRecSys)会占用大量内存,很容易超过典型服务器上的DRAM容量。现有的解决方案诉诸于分布式子图训练,这是低效的,由于动态构建子图的高成本和子图之间的显著冗余。新兴的持久存储器技术以可承受的成本提供比DRAM大得多的存储器容量,使得单机GNNRecSys训练可行,从而消除了分布式训练中的低效率。GNNRecSys使用持久性存储器设备的一个主要问题是,与DRAM相比,它们的带宽相对较低。这种限制对于实现GNNRecSys工作负载的高性能特别不利,因为它们的主要计算内核是稀疏的,内存访问密集型的。为了了解持久内存是否适合GNNRecSys训练,我们对GNNRecSys工作负载进行了深入的表征,并对其在持久内存设备(即英特尔Optane)上的性能进行了全面的分析。根据分析,我们提供了如何为GNNRecSys工作负载配置Optane的指导。此外,我们提出了大批量训练的技术,以充分实现单机GNNRecSys训练的优势。我们的实验结果表明,通过调整批量大小和优化系统配置,基于Optane的单机GNNRecSys训练的性能大大优于分布式训练,特别是在处理深度GNN模型时。
2022-11-02 cs.DC cs.IR cs.LG
How Exclusive are Ethereum Transactions? Evidence from non-winning blocks
CoW Protocol(CoW协议);Max-Planck-Institute for Software Systems(马克斯·普朗克软件系统研究所)
本文通过分析2024年12月3日8分钟内的以太坊区块数据,量化交易排他性占比与成因,发现其具备动态特征,部分排他性交易会面临延迟与攻击风险。
2025-11-14 cs.CR cs.DC econ.GN
RECIPE : Converting Concurrent DRAM Indexes to Persistent-Memory Indexes
我们提出了食谱,一个原则性的方法,用于将并发DRAM索引转换为持久性内存(PM)的崩溃一致性索引。Recipe背后的主要观点是,当PM中使用相同的索引时,可以通过对崩溃一致性的微小更改来转换由某类并发内存索引提供的隔离。我们提出了一组条件,使这类DRAM索引的识别,并采取行动将每个索引转换为持久性。基于这些条件和转换动作,我们将基于B+树、尝试、基数树和哈希表的五种不同的DRAM索引修改为它们的崩溃一致性PM对应物。这种转换所涉及的工作量很小,只需要30-200行代码。我们评估了英特尔DC持久内存上转换后的PM索引,发现它们在多线程工作负载中的性能最高可达手工制作的最先进PM索引的5.2倍。例如,我们构建了P-CLHT,这是CLHT哈希表的PM实现,只修改了30个字节。当运行YCSB工作负载时,P-CLHT的性能比最先进的PM哈希表Cacheline-Conscious Extendible Hashing(CCEH)高2.4倍。
2019-11-08 cs.DB cs.DC cs.DS
Distributed computation of persistent homology
持久同源性是一个流行的和强大的工具,用于捕获数据的拓扑特征。计算持久同源性的算法的进步已经大大减少了计算时间-只要算法不耗尽可用的内存。最近提出的并行方法持久性计算共享内存系统,我们证明了一个简单的适应标准的减少算法导致分布式系统的一个变种。我们的算法设计确保数据分布在节点上,没有冗余;这允许计算比单个机器大得多的实例。此外,我们观察到,并行至少补偿了节点之间的通信所造成的开销,并且与顺序甚至并行共享内存算法相比,通常甚至加快了计算速度。在我们的实验中,我们能够在一个具有32个节点的集群上,使用每个节点不到10GB的内存,在几秒钟内计算出具有超过10亿(10^9)个元素的过滤的持久同源性。
2013-10-02 cs.CG cs.DC math.AT