文件名称:42nd-at-threadmill:SIMD加速的并发哈希表
文件大小:77KB
文件格式:ZIP
更新时间:2024-04-15 07:43:12
simd lock-free-hashtable CommonLisp
快速并发哈希表。
Threadmill上的42nd是一个基于Cliff Click的NonBlockingHashMap和flat_hash_map的flat_hash_map的非阻塞哈希表。 我们使用前者的一般布局,以及后者的基于元数据的快速探测技巧。
有关这两个表的介绍,请参见和。
我们使用SSE2内部函数进行快速探测,还可以选择使用AVX2进行更快的字节广播。 该库需要SBCL 2.0.5之后的版本,因此我们可以在那时使用一些介绍给汇编器的指令。
基准图片
与Click表格的差异
我们用一个+copied+标记而不是Prime类的实例替换复制的值。 此更改在复制时产生较少的垃圾,并导致屏障代码稍微快一些。
我们还删除了
【文件预览】:
42nd-at-threadmill-master
----Examples()
--------phony-redis.lisp(2KB)
----Documentation()
--------hash-table-design.aux(2KB)
--------long-threadmill.svg(6KB)
--------performance.png(48KB)
--------hash-table-design.tex(13KB)
--------threadmill.png(3KB)
--------threadmill.svg(3KB)
----LICENSE(1KB)
----README.md(2KB)
----Code()
--------package.lisp(450B)
--------resize.lisp(8KB)
--------storage-vector.lisp(2KB)
--------hash-table.lisp(14KB)
--------counter.lisp(1KB)
--------42nd-at-threadmill.asd(1KB)
--------hash-table-defstruct.lisp(1KB)
--------diagnostics.lisp(1KB)
--------x86-64()
----.gitignore(48B)