runspec的使用
runspec [options] [list of benchmarks to run]
常用选项:(尽量使用长选项)
--action| -a:指定runspec的操作,有很多
validate| run:默认操作,build,run,检查,并输出报告
runsetup| setup:将可执行文件,复制到指定的目录
build:创建(编译)
buildsetup:指定build的目录,但是不编译
confgpp:尝试输出config-file的报告,应该是用来看格式是否合适
onlyrun:只执行,但是不确保答案正确
clean:删除以当前用户命名的run和build目录的文件(类似于这样的nnn.benchmark\run and nnn.benchmark\build)
clobber:删除所有指定benchmark集的可执行文件
trash | realclean:对所有用户执行clean
scrub :删除所有用户的build和run目录及文件
--config | -c | --conf :指定config-file的名字
--copies number| -C number:指定执行的副本数,和--rate一起用
--rate| -R:spec-rate和--copies一起使用,可能是为了测试同时执行多个程序的情况
--maxcompares N| --max_active_compares N:默认情况和--copies指定的数量一样。指定并行的程序数量,在多cpu时有用,但是不能超过--cpoies指定的数量
--comment "text":在log中添加注释
--define SYMBOL[=VALUE] | --define SYMBOL:VALUE :进行宏定义(SYMBOL将会在config-file中使用)
--delay secs:指定benchmarks之间的延迟,不计入runtime中
--deletework | -d:删除run目录并重新填充,如果你怀疑,run目录被破坏的话,你可以执行它
--extension name[,name...] | --ext name[,name...] | -e name[,name...] :添加扩展并执行(由程序作者提供)
--fake| --dryrun | --dry-runS:获取action执行的命令列表,像这样使用,--fake --action build
--fakereport| --action=report | --reportonly:处理配置文件并输出report(像执行过一样,结果要么是0,要么是格式化的)
--fakereportable| --mockup:处理配置文件并输出report(像"reportable" run 执行过一样)
--[no]feedback:默认是 --feedback,进行多遍的编译(需要定义PASSn_xFLAGS,当config-file中有feedback=0才有用),--nofeedback是指定一遍编译
--flagsurl URL[,URL...] | -F URL:指定flag-file的位置
--[no]graph_auto | -[no]graphauto | --nograph_auto(默认值):是否指定绘制图形最高、最低点,便于观察结果
--graph_max N | --graphmax:默认足够大,设置图的最高点
--graph_min N | --graphmin N:默认为0,设置图的最低点
--help| -h | -?:输出帮助文档
--http_proxy proxy[:port]:用来进行版本检查的网络接口(在config-file中添加),默认不启用
--http_timeout N:指定通过http匹配文件时的延迟,默认为30 seconds
--ignore_errors| -I | --ignoreerror:不管错误继续运行,而默认情况是在第一个错误的地方停止
--info_wrap_columns N |--infowrap N:控制非注释文本的行缩进,默认值为50
--iterations number| -n number:指定benchmark执行的次数,默认三次
--[no]keeptmp | --nokeeptmp:没有no,将保留编译的临时文件,默认不保留(nokeeptmp)
--machine name[,name...] | --mach name[,name...] | -m name[,name...]:默认为空,需要在多种平台上运行时才指定(在config-file中写出)
--make_no_clobber | -M:默认为clobber,在重新编译的时候不删除已经存在的对象文件,只用来产生问题报告
--notes_wrap_columns N | --noteswrap:默认值为0,控制注释的行缩进
--output_format format| -o format:指定输出报告的格式,默认为txt和html(详细参见http://www.spec.org/cpu2006/docs/runspec.html#out)
--parallel_setup| --parallel-setup processes:默认值为1,并行执行的run-directory的数量,最大为--cpoies指定的数量
--parallel_setup_type
:
none :不做并行设置
fork | --parallel_setup_prefork :用fork()创建一个setup进程,并将其绑定到一个处理器上
submit:默认不启用,分离多个runspec请求,并且使用submit变量(config-file中)进行处理
--parallel_test processes| --parallel-test processes:默认值为1或者--copies指定的执行程序数量。
reportable-run的test和train的工作是并行的,并使用SPECrate变量(可以设置为1来禁止)
SPECspeed是默认禁止运行的,可以设置它大于1来启动
(并没有明白)
--preenv:启用config-file中的preENV,应该使用来打印一些环境变量的
--nopreenv:不启用config-file中的preENV
--rawformat rawfiles|-R rawfile:
默认不启用,不运行程序,而是调用已有结果生成报告
--action将被忽略
--rebuild| -D:删除已经编译好的文件,并且重新编译
--reportable | -s | --strict | --noloose:必须明确int fp all其中之一,强制了一些选项,比如一定是执行3次(test,train,ref各一次,应该是这样)
--loose| --noreportable| -l | --nostrict:为了查看是否能编译过并执行,但是不想生成报告(config-file还没完善)
--review, --noreview:默认为noreview,格式化结果并输出,能打印更多的详细信息
--setprocgroup, --nosetprocgroup:默认为set,将所有进行放入一个进程组中,便于使用ctrl-c终止运行
--size size[,size...] | -i size | --input size:
选择输入数据的大小,有test,train和ref三种
test:常用来进行debug一些编译选项
test和train:用来确保程序有正确的结果
ref:运行ref形式三次,来进行测试
--speed:默认不启用,进行一次SPECspeed的运行,不管config-file的设置
--table, --notable:默认为--table,结果中包含一个run的列表
--test:在specperl上执行多种perl的测试
--train_with WORKLOAD:默认为train,用反馈指导编译,是必要的编译选项,最好在config-file中指明
--tune tuning| --tuning tuning | -T tuning:用来测试不同的cpu运行状况
有三个选择,base,peak(峰值)和all,默认为base
reportable-run时,必须选择base或者all
--undef SYMBOL:移除某个宏定义
--make_bundle name | --make-bundle name:默认为空,将二进制、config和其他支持文件一起打包在一起
例子:http://www.spec.org/cpu2006/docs/runspec.html#make_bundle
--unpack_bundle name:默认为none,解压之前制作好的包(bundle),不执行
--use_bundle name:默认为none,使用之前制作好的包(bundle),执行
--update|--update_flags | --flagupdate | --flagsupdate | --newflags | --getflags:
默认不检查,检查benchmark的flag-file的更新
--username name| -U name:默认和当前进程一样,指定user的name
--verbose n | --debug n | -v n:设置信息级别,默认为5,范围1-99
--version:打印版本信息
运行级别:
setup for test
base test, peak test
setup for train
base train, peak train
setup for ref
base ref1, base ref2, base ref3
peak ref1, peak ref2, peak ref3
例子:
1.执行459,465两个测试集,不报告
runspec --config jason_july09d.cfg --noreportable 459.GemsFDTD 465.tonto
2.执行除了471,473,483之外的整数测试集,不报告
runspec --noreportable -config kathy_sep14c.cfg int ^471.omnetpp ^473.astar ^483.xalancbmk
3.执行一次483(--iterations 1 --loose 两个选项一起使用)
runspec --config golden --iterations 1 --loose 483.xalancbmk
4.清空浮点测试集的run和build目录
runspec --action clean --config may12a fp
5.指定int测试集有四个执行副本
runspec --config tony_may12a --rate 4 int
runspec --config tony_may12a --rate --copies 4 int
6.版本确认的端口问题
For example, a failure of this form:
$ runspec --rawformat --output_format txt \
--flagsurl http://portlandcyclers.net/evan.xml CFP2006.007.ref.rsf
...
Retrieving flags file (http://portlandcyclers.net/evan.xml)...
ERROR: Specified flags URL (http://portlandcyclers.net/evan.xml) could not be retrieved.
The error returned was: 500 Can't connect to portlandcyclers.net:80
(Bad hostname 'portlandcyclers.net')
improves when a proxy is provided:
$ runspec --rawformat --output_format txt \
--flagsurl http://portlandcyclers.net/evan.xml \
--http_proxy=http://webcache.tom.spokewrenchdad.com:8080 CFP2006.007.ref.rsf
7.利用rawformat选项和已有结果生成报告
runspec --rawformat --output_format html,ps $SPEC/result/CPU2006.324.ref.rsf
8.使用之前创建好的包
runspec --use_bundle /Volumes/CPU2006/cpu2006/mumble.cpu2006bundle.xz
更像详细的内容可以看官方文档:http://www.spec.org/cpu2006/Docs/runspec.html#section1