PARSEC & SPEC CPU Benchmark Deployment

测Evaluation的时候一般会测一下SPEC 和 PARSEC benchmark, 本篇简单介绍一下两者的部署和运行。

SPEC CPU

目前比较新的是SPEC CPU 2006, SPEC主要是CPU性能测试,内存也有一部分,首先从官网下载压缩包..

1
2
3
# ls
benchspec config Docs install.bat LICENSE MANIFEST README redistributable_sources Revisions run.sh shrc.bat tools version.txt
bin cshrc Docs.txt install.sh LICENSE.txt original.src README.txt result rr_moved shrc SUMS.tools uninstall.sh

解压后直接运行install.sh的话可能会有权限问题, 那么手动改权限↓:

1
2
3
4
find . -type d -exec chmod 755 {} ";"
chmod 644 MANIFEST
rm -rf bin
./install.sh

↑中find找出所有的目录,并对每个目录调用chmod 755, ";"是为了结束chmod命令,否则这之后所有的东东都会作为chmod的参数。权限改为x + r。 之后删除已有的bin,安装即可。

Usage

使用前需要修改shell 的source: (我用的zsh), 而后根据需要build和run我们的benchmark即可

1
2
3
4
5
6
source shrc
# Build
runspec --action build 429.mcf

# Run
runspec --action onlyrun 429.mcf

Misc

SPEC的结果会放到result文件夹,跑一个比较慢,写个脚本跑一晚上第二天到result里面翻就行

PARSEC

类似,下载解压:

1
CHANGELOG  CONTRIBUTORS  FAQ  LICENSE  README  bin  config  env.sh  ext  log  man  pkgs  toolkit  version

Parsec的环境需要在bash中用,所以请先切到Bash, 而后用给的env.sh

1
2
bash
source env.sh

Usage

1
2
3
4
# Replace 'streamcluster' to 'all' if you are going to test all benchmarks
parsecmgmt -a build -p streamcluster
parsecmgmt -a run -p streamcluster [-i simlarge [-n 2]]
parsecmgmt -a fulluninstall -p streamcluster

具体参数自己可以查.. 这个跑一个比较快,结果直接就输出了,所以随手记就行。

Note

一些依赖库↓:

1
sudo apt-get install -y build-essentail m4 x11proto-xext-dev libglu1-mesa-dev libxi-dev libxmu-dev libtbb-dev gfotran libglib2.0-dev zlib1g-dev libxml2-dev gettext

其中dedup直接运行可能有一些问题, 需要替换一些东东:

replace.sh
1
2
3
4
5
6
#! /bin/bash
for i in 0 1 2 3 4 5 6 7 8 9
do
echo "Replacing '=item $i' to '=item C<$i>'"
grep -rl "=item $1" * | xargs sed -i "s/=item $i/=item C<$i>/g"
done

Reference: parsec-3.0-installation-issues