arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0811.1304cs.DCcs.ARcs.DS
收藏

NB-FEB:一个易于使用和可扩展的通用并行程序同步原语

NB-FEB: An Easy-to-Use and Scalable Universal Synchronization Primitive for Parallel Programming

Phuong Hoai Ha, Philippas Tsigas, Otto J. Anshus

摘要:

针对大规模众核体系结构,提出了一种支持可扩展线程同步的通用同步原语。在传统架构(如CAS和LL/SC)中广泛部署的通用同步原语预计将在向具有数千个核的众核架构的演进中达到其可扩展性限制。我们引入了一个非阻塞的满/空位原语,或简称NB-FEB,作为一个有前途的同步原语的并行编程的五月核架构。我们表明,NB-FEB原语是通用的,可扩展的,可行的和方便的使用。NB-FEB与寄存器一起可以解决任意数量进程的一致性问题(普适性)。NB-FEB是可组合的,即其对相同存储器位置的存储器请求可以被组合成仅一个存储器请求,这因此减轻了由于同步“热点”(可扩展性)而导致的性能降级。由于NB-FEB是原始满/空位的变体,其总是返回值而不是等待条件标志,因此它与原始满/空位一样可行,其已经在许多计算机系统中实现(可行性)。原始的满/空位是众所周知的,作为一种特殊用途的原语,用于快速生产者-消费者同步,并已广泛用于特定的应用领域。在本文中,我们表明,NB-FEB可以很容易地部署作为一个通用的原语。利用NB-FEB,我们构造了一个非阻塞的软件事务存储系统NBFEB-STM,它可以方便地处理并发线程。NBFEB-STM是空间有效的:由$N$并发线程/事务更新的每个对象的空间复杂度是最优的$Θ(N)$。

英文摘要:

This paper addresses the problem of universal synchronization primitives that can support scalable thread synchronization for large-scale many-core architectures. The universal synchronization primitives that have been deployed widely in conventional architectures like CAS and LL/SC are expected to reach their scalability limits in the evolution to many-core architectures with thousands of cores. We introduce a non-blocking full/empty bit primitive, or NB-FEB for short, as a promising synchronization primitive for parallel programming on may-core architectures. We show that the NB-FEB primitive is universal, scalable, feasible and convenient to use. NB-FEB, together with registers, can solve the consensus problem for an arbitrary number of processes (universality). NB-FEB is combinable, namely its memory requests to the same memory location can be combined into only one memory request, which consequently mitigates performance degradation due to synchronization "hot spots" (scalability). Since NB-FEB is a variant of the original full/empty bit that always returns a value instead of waiting for a conditional flag, it is as feasible as the original full/empty bit, which has been implemented in many computer systems (feasibility). The original full/empty bit is well-known as a special-purpose primitive for fast producer-consumer synchronization and has been used extensively in the specific domain of applications. In this paper, we show that NB-FEB can be deployed easily as a general-purpose primitive. Using NB-FEB, we construct a non-blocking software transactional memory system called NBFEB-STM, which can be used to handle concurrent threads conveniently. NBFEB-STM is space efficient: the space complexity of each object updated by $N$ concurrent threads/transactions is $Θ(N)$, the optimal.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑