论文复现 - Memtis(二)
§2 代码复现
前置
cgroup
https://docs.kernel.org/admin-guide/cgroup-v2.html
https://kubernetes.io/zh-cn/docs/concepts/architecture/cgroups/
https://www.lixueduan.com/posts/linux/08-cgroup-v2
kthread
https://juniorprincewang.github.io/2018/11/21/Linux内核kthread/
taskset
…
Benchmarks
gapbs
对 benchmark/bench.mk 做少许修改,手动下载解压。[1]
liblinear
2.45 没有了,现版本 2.47。对
graph500
3.0.0 和 vmitosis-workloads/graph500 均无法使用,单独安装了 2.1.4.[3]
Benchmark Specification - Graph 500
btree
1 | # change the number of elements and lookup requests |
XSBench
Programming Model: openmp-threading
This is the “default” version of XSBench that is appropriate for serial and multicore CPU architectures. The method of parallelism is via the OpenMP threading model.[4]
Silo (bug)
get silo here
安装 libaio-dev[5],手动安装 libdb4.8 从 Install libdb4.8 on Debian,编译
1 | $ make dbtest |
已在 silo repo 和 stackoverflow 提问,答复已采纳
The bug is that
operator<<
is declared forstd::pair
later in theutil.h
file. That means lookup for<<
fromformat_list
can’t find it. Normally lookup should find operator overloads via ADL regardless of declaration order at the point of instantiation, but for that to work the overload must be defined in a namespace scope associated with the argument types, i.e.std
here, where the user is not allowed to place such an overload. This is a common mistake and happened to work for a long time on GCC because of a bug in the compiler’s lookup.
将 line 607 的操作符重载移至 format_list()
之前即可。