§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。对 datasets.mk 做少许修改,kdd 需要手动下载。[2]

graph500

3.0.0 和 vmitosis-workloads/graph500 均无法使用,单独安装了 2.1.4.[3]

Benchmark Specification - Graph 500

btree

1
2
3
# change the number of elements and lookup requests
vim btree/btree.c
# see line 61

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.8Install libdb4.8 on Debian,编译

1
$ make dbtest

已在 silo repo 和 stackoverflow 提问,答复已采纳

The bug is that operator<< is declared for std::pair later in the util.h file. That means lookup for << from format_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() 之前即可。


  1. Releases · ANLAB-KAIST/traces ↩︎

  2. Multi-core LIBLINEAR ↩︎

  3. Graph500教程-CSDN博客 ↩︎

  4. ANL-CESAR/XSBench: XSBench: The Monte Carlo Macroscopic Cross Section Lookup Benchmark ↩︎

  5. MySQL Bugs: #86386: cmake can’t find libaio libraries not found during compilation. ↩︎