论文复现 - Memtis(二)
实验复现
Memtis - ASPLOS’23
前置 | Linux
Benchmarks 验证运行
依照原文实验,配置了除 SPEC CPU 2017 以外的所有测试集。
gapbs
对 benchmark/bench.mk 做少许修改,手动下载解压。[5]
liblinear
v2.45 没有了,现版本 v2.47。对
graph500
v3.0.0 和 vmitosis-workloads/graph500 均无法使用,单独安装 v2.1.4.[7]
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.[8]
Silo (bug)
get silo here
安装 libaio-dev[9],手动安装 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()
之前即可。
Results
环境配了足足三天,但最后只仓促进行了全位于容量层 (DCPMM-only) 的 baseline 实验,之后便出去实习了。有点可惜。
实验环境的 CPU 是 Xeon Silver 4314,比原文 Xeon Gold 5218 弱上不少,跑得也是肉眼可见的慢。
https://kubernetes.io/zh-cn/docs/concepts/architecture/cgroups/ ↩︎
https://juniorprincewang.github.io/2018/11/21/Linux内核kthread/ ↩︎
ANL-CESAR/XSBench: XSBench: The Monte Carlo Macroscopic Cross Section Lookup Benchmark ↩︎
MySQL Bugs: #86386: cmake can’t find libaio libraries not found during compilation. ↩︎