1. 程式人生 > >runspec 的選項說明(spec2006官方文件的翻譯)

runspec 的選項說明(spec2006官方文件的翻譯)

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 <fork|submit|none>:
    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