当前位置: X-MOL 学术Int. J. Parallel. Program › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Yet Another Lock-Free Atom Table Design for Scalable Symbol Management in Prolog
International Journal of Parallel Programming ( IF 1.5 ) Pub Date : 2024-03-23 , DOI: 10.1007/s10766-024-00766-z
Pedro Moreno , Miguel Areias , Ricardo Rocha , Vítor Santos Costa

Abstract

Prolog systems rely on an atom table for symbol management, which is usually implemented as a dynamically resizeable hash table. This is ideal for single threaded execution, but can become a bottleneck in a multi-threaded scenario. In this work, we replace the original atom table implementation in the YAP Prolog system with a lock-free hash-based data structure, named Lock-free Hash Tries (LFHT), in order to provide efficient and scalable symbol management. Being lock-free, the new implementation also provides better guarantees, namely, immunity to priority inversion, to deadlocks and to livelocks. Performance results show that the new lock-free LFHT implementation has better results in single threaded execution and much better scalability than the original lock based dynamically resizing hash table.



中文翻译:

Prolog 中用于可扩展符号管理的另一种无锁原子表设计

摘要

Prolog 系统依靠原子表进行符号管理,该原子表通常实现为可动态调整大小的哈希表。这对于单线程执行来说是理想的,但在多线程场景中可能会成为瓶颈。在这项工作中,我们将 YAP Prolog 系统中原始的原子表实现替换为基于无锁哈希的数据结构,称为无锁哈希尝试(LFHT),以提供高效且可扩展的符号管理。由于无锁,新的实现还提供了更好的保证,即不受优先级反转、死锁和活锁的影响。性能结果表明,新的无锁LFHT实现比原来的基于锁的动态调整哈希表具有更好的单线程执行效果和更好的可扩展性。

更新日期:2024-03-24
down
wechat
bug