伺服器CPU效能評測與分析

提醒:已領讀者請忽略!
之前購買過“架構師技術全店資料打包彙總(全)已更新至48本)”的讀者免費發放全店更新(請在發貨的彙總連結下載),或請憑藉購買記錄在微店留言獲取(PDF閱讀版本)。

對於一個大檔案進行壓縮前者完成的時間要短,採用軟解碼影片播放器播放H.264格式檔案前者播放更為流暢。對於Web伺服器而言,效能高表示每秒所完成應答的Web請求數量大,對於像京東和淘寶這樣的電子商務網站,衡量的指標通常是每秒完成的交易事務(Transaction)即吞吐率。對於高效能計算機而言,衡量指標是其完成一個大的並行任務的速度,如Top500中一個重要的衡量指標是高效能Linpack的實測雙精度浮點峰值。

計算機系統常用效能評價指標

計算機系統的效能有許多衡量指標,如執行時間或者響應時間、吞吐率、加速比、每條指令的時鐘週期數(CPI)、每秒執行百萬條指令數(MIPS)、每秒執行百萬浮點運算數(MFLOPS)、每秒執行的事務數(TPS)和歸一化的執行時間等。
我們透過一些實際的示例來看看不同的效能指標。Openbenchmarking.org網站收集了大量的開源測試程式集合,這個測試程式集合稱為Phoronix Test Suite。表給出了AMD Athlon II X4 645的測試結果。從表中可以看出效能衡量指標包括以下方面:完成任務的執行時間,例如並行的BZIP2壓縮和LAME MP3編碼,執行時間越短越好。每秒多少幀,每秒的幀數是越多越好,例如H.264影片編碼和射擊遊戲《帕德曼的世界》(World of Padman)。MIPS,例如7-ZIP測試壓縮速度。MFLOPS,如Himeno中泊松壓力方程求解。每秒執行了多少個事務,如PostgreSQL pgbench測試TPC-B。每秒傳遞多少個簽名,如OpenSSL中RSA測試。每秒服務多少個請求,如Apache網頁伺服器。)每秒執行的百萬次運算元(Mop/s),如NPB中的EP.B。每秒完成計算多少個節點,如TSCP人工智慧下棋程式,每秒能下多少步棋。頻寬,即每秒能完成多少MB的訪存操作,如STREAM測試程式。
AMD Athlon處理器的Phoronix Test Suites測試結果
測試程式
指標
效能
分值
World of Padman v1.2
每秒幀數(FPS)
越大越好
177.33
H.264 v2015-11-02
每秒幀數(FPS)
越大越好
101.97
GraphicsMagic v1.3.12HWB Color Space
每分鐘迭代次數
越大越好
108.00
John The Ripper v1.7.9Traditional DES
每秒破解的數目
越大越好
5,174,833.00
John The Ripper v1.7.9Blowfish
每秒破解的數目
越大越好
1,970.00
TTSIOD 3D Renderer v2.2w
每秒幀數(FPS)
越大越好
39.01
Parallel BZIP2 Compression v1.0.5
秒數
越小越好
27.98
7-ZIP Compression v9.20.1Compress Speed Test
MIPS
越大越好
7,242.00
LAME MP3 Encoding v3.99.3WAV to MP#
秒數
越小越好
22.86
x264 v2011-12-06H.264 Video Encoding
每秒幀數(FPS)
越大越好
54.04
FFmpeg v0.10AVI to NTSC VCD
秒數
越小越好
17.57
OpenSSL v1.0.0eRSA 4096-bit
每秒簽名數
越大越好
58.58
Himeno Benchmark v3.0Poisson pressure solver
MFLOPS
越大越好
516.47
PostgreSQL pgbench v8.4.11TPC-B transaction per second
TPS
越大越好
427.13
Apache benchmark v2.2.21Static web page serving
每秒請求數
越大越好
11,784.34
C-Ray v1.1
秒數
越小越好
120.23
POV-Ray v3.6.1
秒數
越小越好
1,129.00
Smallpt v1.0Global Illumnination Renderer
秒數
越小越好
241.00
TSCP v1.81AI Chess performance
每秒計算的節點數
越大越好
261,528.00
NAS Parallel benchmarks v3.3EP.B
總的Mop/s
越大越好
70.06
STREAM v2009-04-11Copy
MB/s
越大越好
6,381.28

SPEC CPU基準測試程式

基準測試程式中最重要的一類就是SPEC組織推出的SPEC CPU系列測試程式集。SPEC是由計算機廠商、系統整合商、大學、研究機構、諮詢公司等多家單位組成的非營利組織,這個組織的目標是建立、維護一套用於評估計算機系統的標準。SPEC組織建立了SPEC CPU系列測試程式集合,主要關注CPU的效能,如SPEC CPU89、SPEC CPU92、SPEC CPU95、SPEC CPU2000、SPEC CPU2006和SPEC CPU2017。
SPEC基準測試程式來自於真實的程式,做了適當的修改,主要是為了可移植性和減少IO影響。SPEC測試代表了絕大多CPU密集型的運算,包括程式語言、壓縮、人工智慧、基因序列搜尋、影片壓縮及各種力學的計算等,包含了多種科學計算,可以用來衡量系統執行這些任務的快慢。SPEC CPU測試中,測試系統的處理器和編譯器都會影響最終的測試效能,而磁碟、網路等IO和圖形子系統對於SPEC CPU的影響比較小。SPEC CPU基準測試程式特別適用於桌面系統和單CPU伺服器系統的CPU效能測試。
以下圖表分別是SPEC CPU2000、2006和2017具體的測試專案和說明。
SPEC CPU2000程式及描述
定點測試程式
語言
分類
描述
164.gzip
C
壓縮
gzip來源於是GNU的gzip。gzip使用LZ77(Lempel-Ziv)壓縮演算法,所有的壓縮和解壓縮都在記憶體中發生
175.vpr
C
FPGA電路佈局和佈線
FPGA積體電路中的佈局和佈線程式,能自動實現對映技術的電路,如網表或超圖,把FPGA邏輯塊和IO pad連在一起
176.gcc
C
C程式語言編譯器
基於gcc版本2.7.2,它產生Motorola 88200處理器的程式碼,該編譯過程開啟了許多最佳化的選項
181.mcf
C
組合,最佳化
該程式為解決公共交通公司單車場容量約束車輛排程問題設計求解的演算法
186.crafty
C
棋類遊戲,國際象棋
高效能計算機棋類程式,包含大量的邏輯操作,例如與、或、異或和移位。其輸入5個不同棋盤和深度,搜尋樹決定下一步的移動,用於比較處理器的定點、分支預測和流水線的效率
197.parser
C
字處理
基於link語法的英文語法解析器,解析器包含一個60000詞的字典,輸入為一個句子,輸出為句子的分析,分析捕獲了句子的語法結構
252.eon
C++
計算機視覺化技術
一種基於機率的射線追蹤器。其渲染了一個150×150畫素屋子角落前方的椅子,渲染的演算法採用Kajiya、Cook和Rushmeier
253.perlbmk
C
PERL程式語言
解釋執行語言Perl,包括四個指令碼:Email到HTML的轉換MHonArc;Specdiff指令碼;使用標準迭代演算法尋找完全數;檢測所產生的1000個隨機數
254.gap
C
群論,直譯器
GAP表示群論、演算法和程式設計,其實現了計算群論中的一個語言和庫。程式執行包括一些組合函式、大數、有限域函式、置換群、子群格計算和可解群中找到正規化子等等
255.vortex
C
面向物件資料庫
源自一個單使用者面向物件的資料庫交易測試VORTEx,事務包括在資料庫中建立一項、刪除一項和資料的查詢。包括三個不同的資料庫,郵件列表、零件目錄表和幾何資料
256.bzip2
C
壓縮
源自Julian Seward的bzip2,一個塊排序的資料壓縮演算法,所有的壓縮和解壓縮在記憶體中進行。三個輸入:大的tiff影像檔案,程式二進位制檔案,原始碼的tar檔案
300.twolf
C
佈局佈線模擬器
晶片的佈局和標準單元的全域性連線的模擬。佈局的問題是排列,採用模擬退火作為啟發式方法來尋找最好的解決方法。全域性路由使用了構造演算法和迭代改進對子微晶片進行互連
浮點測試程式
語言
分類
描述
168.wupwise
Fortran 77
物理,量子色動力學
Wuppertal Wilson Ferminon求解器的簡稱,屬於量子色動力學的格點規範理論領域。透過BiCGStab迭代的方法,求解了非齊次Lattice-Dirac方程
171.swim
Fortran 77
淺水建模
天氣預報程式,用於測試當前高效能計算機的效能。實現淺水方程的有限差分的動力學模型,處理1335×1335範圍的資料陣列,迭代512次
172.mgrid
Fortran 77
三維勢場多柵格求解器
使用一個簡單的多網格求解器來計算一個三維的線性勢場,源自NAS並行測試程式,對可移植性進行修改並採用不同的工作負載
173.applu
Fortran 77
拋物線/橢圓偏微分方程
模擬了三維邏輯結構化網格上的5個耦合非線性偏微分方程(PDE),使用了隱式偽時間匹配方法,基於稀疏雅可比矩陣的雙因子近似因子分解方法
177.mesa
C
三維圖形庫
Mesa是一個開源的OpenGL實現庫,支援通用幀緩衝,能配置為與OS和視窗系統無關。測試浮點、標量和記憶體的效能。輸入為二維標量域,輸出為PNG的二維影像檔案
178.galgel
Fortran 90
計算流體動力學
源自GAMM測試程式的特定例項。低普朗特數流體在對流時發生震盪失穩的數值分析,計算穩態到失穩的臨界格拉曉夫數和臨界頻率,使用頻譜伽略金方法
179.art
C
影像識別,神經網路
使用自適應共振理論2(ART 2)神經網路方法,在溫度影像中識別物件。物件是直升飛機或者飛機,神經網路首先在物件上進行訓練,訓練結束後,在掃描域影像中去找已經學習過的影像
183.equake
C
地震波傳播模擬
使用有限元方法在非結構化網格中計算波長,模擬了地震時彈性波的傳播,在大的、異構的山谷,如加州的聖費爾南多山谷或洛杉磯盆地,計算彈性波的傳播,目標是能識別地震引起地表運動的歷史時間
187.facerec
Fortran 90
影像處理,人臉識別
人臉的學習,從典範影像中抽取影像。對於每個要探測的相簿,與相簿相簿進行匹配,查詢相似性結果向量,尋找最大值,識別出相關影像
188.ammp
C
計算化學
在水包裹的混合蛋白質抑制劑環境下計算分子動力學,求解ODE方程,它是系統中原子運動的牛頓方程。該程式所模擬的蛋白質是HIV蛋白酶和茚地那韋抑制劑混合物
189.lucas
Fortran 90
數論,素數測試
執行了Lucas-Lehmer測試,檢查梅森數的素數性2p-1。透過離散加權轉換技術來計算梅森mod平方,使用資料區域性的FFT演算法來執行Lucas-Lehmer迭代的大定點數的平方
191.fma3d
Fortran 90
有限元碰撞模擬
這個程式計算非彈性、三維固體和結構在受到衝擊或者突然加上負載時的瞬態動態響應行為。該程式構建了元素庫,也對真實物質的特性進行建模,如彈性和塑性等
200.sixtrack
Fortran 77
高能核物理加速器設計
模擬在粒子加速器模型中,跟蹤變化數量的粒子,以及變化數量的粒子發生了翻轉。加速器的模型,如大型強子對撞機(LHC),可以用於動力學孔徑的檢查,如梁的長期穩定性
301.apsi
Fortran 77
氣象學,汙染物分佈
求解中尺度天氣系統的和天氣的變化,包括位溫,U和V風的分量,中尺度的垂直速度,W壓力,汙染物濃度分佈C,源Q。採用劈分演算法對整個系統進行求解
SPEC CPU2006程式及描述
定點測試程式
語言
分類
描述
400.perlbench
C
Perl程式語言
Perl指令碼程式,包括垃圾郵件檢測程式SpamAssassin、郵件索引器MHonArc和specdiff
401.bzip2
C
壓縮
bzip2壓縮程式,輸入包括JPEG圖片、原始碼、HTML檔案和混合檔案等,使用不同的壓縮級別進行壓縮和解壓縮
403.gcc
C
C編譯器
基於gcc 3.2編譯器,產生Opteron的程式碼
429.mcf
C
組合最佳化
一個用於大型公共交通的單車場車輛排程程式,使用了商業產品中常用的網路單純形演算法
445.gobmk
C
人工智慧,圍棋go
下圍棋遊戲,讀入圍棋格式檔案,然後執行一些命令,根據圍棋規則分析當前的局勢,決定更為有利的下一步走法
456.hmmer
C
基因序列搜尋
使用Profile隱馬爾可夫模型(HMM),進行蛋白質基因序列分析
458.sjeng
C
人工智慧,棋類遊戲
一個排名很高的棋類遊戲,屬於棋類樹的搜尋和模式識別,透過組合alpha-beta剪枝或proof-number樹搜尋、形式判斷、啟發式前向修剪來尋找最佳的棋子移動
462.libquantum
C
物理,量子計算
模擬了一臺量子計算機,執行了Shor多項式時間因式分解演算法
464.h264ref
C
影片壓縮
影片壓縮標準H.264/AVC的一種參考設計,基於h264avc 9.3版本,使用兩個引數組對YUV格式原始檔進行H.264編碼
471.omnetpp
C++
離散時間模擬
使用OMNet++離散時間模擬器對一個大型的校園網路進行建模,包括8000臺計算機和900個交換機以及各種乙太網協議
473.astar
C++
路徑尋找演算法
二維地圖的尋路演算法庫,常用於遊戲中的人工智慧,實現了三種不同型別的A*演算法
483.xalancbmk
C++
XML處理
將XML文件轉換為HTML、純文字或者其他XML格式的文件。是Xalan-C++的一個修改版本,Xalan-C++實現了XSL轉換和XML Path語言
浮點測試程式
語言
分類
描述
410.bwaves
Fortran
流體動力學
對三維瞬間跨音速粘性流體層流衝擊波的模擬計算。該演算法實現了非壓縮Navier-Stokes等式的全隱式無分裂求解,採用了Bi-CGstab演算法,迭代求解了非對稱線性方程組
416.gamess
Fortran
量子化學
源自量子化學計算用得最廣的GAMESS(從頭計算量子化學程式)。採用三種SCF自洽場方法(RHF、ROHF、MCSCF)對胞嘧啶分子、水和Cu2+離子、三唑離子進行自洽場計算
433.milc
C
物理,量子色動力學(QCD)
來自MIMD格計算(MILC)、四維SU(3)格點規範理論的模擬,用來研究QCD量子色動力學、夸克和膠子,採用了su3imp程式的序列版本
434.zeusmp
Fortran
物理,計算流體動力學(CFD)
伊利諾伊大學香檳分校開發的計算流體動力學程式,用於模擬天體物理現象。模擬了一個沿著X軸方向統一磁場中的三維衝擊波
435.gromacs
C/ Fortran
生物化學,分子動力學
計算數百到數百萬粒子的牛頓運動方程。模擬了一個在水和離子溶液中的蛋白質溶菌酶結構在各種實驗手段如核磁共振的X光照射下的變化
436.cactusADM
C/ Fortran
物理,廣義相對論
採用交錯超越的數值分析方法,對時空曲率由內部物質決定的愛因斯坦演化方程進行求解,演化方程由10個標準的ADM 3+1分解的二階非線性偏微分方程組成
437.leslie3d
Fortran
流體動力學
來自三維大渦模擬和線性渦流模型,其使用麥科馬克預測校正時間積分方法,用來計算湍流的計算流體力學程式。計算了一個如燃油注入燃燒室的時間分層混合流體
444.namd
C++
生物學,分子動力學
源自並行程式NAMD,其模擬了大規模的生物分子系統。namd.input模擬了92224個原子組成的A-I載脂蛋白,ref有38次迭代
447.dealII
C++
有限元分析
計算自適應有限元和誤差估計。對非常係數的亥姆霍茲方程進行求解,使用了基於二元加權誤差估計生成最佳網路的自適應方法
450.soplex
C++
線性規劃,最佳化
使用了單純型演算法和鬆弛線性演算法求解線性方程。測試模擬包括鐵路規劃和軍用空運規劃的物理模型
453.povray
C++
影像光線跟蹤
光線跟蹤是一種渲染技術,透過模擬真實世界的光線傳輸方式計算實景的影像。該計算基於柏林噪聲函式,渲染一幅1280×1024的反鋸齒國際象棋棋盤影像
454.Calculix
C/ Fortran
結構力學
使用SPOOLES求解器庫,進行線性和非線性三維結構力學的有限元分析。計算了一個高速旋轉壓氣盤在離心力作用下的應力和變形情況
459.GemsFDTD
Fortran
計算電磁學
使用了FDTD(有限差分時域)方法求解三維時域中的麥克斯韋方程,計算了一個理想導體的雷達散射介面
465.tonto
Fortran
量子化學
面向物件的從頭算量子化學包。模擬了量子晶體學領域計算,設定約束於分子的HF波函式,更好地匹配X光衍射實驗資料
470.lbm
C
流體動力學
實現了格子玻爾茲曼方法(LBM),模擬在三維空間的非壓縮流體,常用於材料科學中模擬流體的行為
481.wrf
C/ Fortran
天氣預報
基於WRF模型,是下一代中等規模數值天氣預報系統,用於天氣預報和大氣研究,模擬30公里區域和兩天內的天氣
482.sphinx3
C
語音識別
基於卡內基-梅隆大學開發的著名的語音識別軟體,使用了AN4資料庫,輸入為原始的音訊格式,輸出為識別出來的話語
SPEC CPU2017程式及描述
SPECrate 2017定點程式
SPECspeed 2017定點程式
語言
描述
500.perlbench_r
600.perlbench_s
C
文字處理,Perl直譯器
502.gcc_r
602.gcc_s
C
編譯,GNU C編譯器
505.mcf_r
605.mcf_s
C
組合和最佳化,求解車輛排程問題
520.omnetpp_r
620.omnetpp_s
C++
計算機網路,離散事件模擬
523.xalancbmk_r
623.xalancbmk_s
C++
透過XSLT將XML轉換為HTML
525.x264_r
625.x264_s
C
影片壓縮,x264影片編解碼
531.deepsjeng_r
631.deepsjeng_s
C++
人工智慧,下棋程式,alpha-beta樹搜尋
541.leela_r
641.leela_s
C++
人工智慧,下棋程式(go),蒙特卡洛樹搜尋
548.exchange2_r
648.exchange2_s
Fortran
人工智慧,9×9數獨,遞迴方式求解
557.xz_r
657.xz_s
C
壓縮和解壓縮,xz壓縮程式
SPECrate 2017浮點程式
SPECspeed 2017浮點程式
語言
描述
503.bwaves_r
603.bwaves_s
Fortran
計算流體動力學,爆炸建模
507.cactuBSSN_r
607.cactuBSSN_s
C++, C, Fortran
物理,廣義相對論和數值相對論,求解真空中的愛因斯坦方程
508.namd_r
C++
結構生物學,模擬大規模的生物分子系統
510.parest_r
C++
分子醫學成像,光學層析成像問題的有限元求解器
511.povray_r
C++, C
計算機視覺化,光線追蹤應用POV-Ray
519.lbm_r
619.lbm_s
C
流體動力學
521.wrf_r
621.wrf_s
Fortran, C
天氣預報建模,基於新一代中尺度數值天氣預報系統WRF
526.blender_r
C++, C
三維渲染和動畫,基於開源的三維製作套件Blender
527.cam4_r
627.cam4_s
Fortran, C
大氣環流建模,地球系統模型CESM中的大氣建模部分
628.pop2_s
Fortran, C
大規模海洋建模(氣候層面),地球系統模型CESM中的海洋建模部分
538.imagick_r
638.imagick_s
C
影像處理,影像處理軟體包ImageMagick中convert部分
544.nab_r
644.nab_s
C
分子動力學,基於生命科學計算領域中分子建模應用NAB(核酸構建器)
549.fotonik3d_r
649.fotonik3d_s
Fortran
計算電磁學,利用時域有限差分方法計算光子波導的透射係數
554.roms_r
654.roms_s
Fortran
區域海洋建模,基於區域海洋建模系統ROMS
SPEC CPU2000包括12個定點測試程式(CINT2000)和14個浮點測試程式(CFP2000),定點測試程式包括C編譯器、VLSI佈局和佈線工具、圖形應用等。浮點測試程式包括量子色動力學、有限元建模和流體動力學等。測試機的記憶體應不小於256MB,以確保滿足所有程式執行時的記憶體需求。
SPEC CPU2006中對SPEC CPU2000中的一些測試程式進行了升級,並拋棄和加入了一些測試程式,以更好地反映當時主流應用的特性。SPEC CPU2006包括了12項整數運算和17項浮點運算。SPEC CPU2006的工作集變大了一些,對測試機的最小記憶體需求是1GB。
SPEC CPU2017是SPEC組織於2017年再次更新的CPU基準測試程式集,其包含43個基準測試程式,分為4個測試程式集,兩個定點程式集:SPECrate 2017 Integer、SPECspeed 2017 Integer,兩個浮點程式集:SPECrate 2017 Floating Point和SPECspeed 2017 Floating Point。CPU2017工作集變得更大了,如SPECspeed需要最小16GB記憶體,SPECrate在64位系統中每份複製最小需要2GB記憶體。
為了便於比較,SPEC CPU產生一個分值來歸納基準程式的測試結果。具體方法是將被測計算機的執行時間標準化,即將被測計算機的執行時間除以一臺參考計算機的執行時間,結果稱為SPECratio,SPECratio值越大,表示效能越快。綜合測試結果是取所有程式SPECratio的幾何平均值,所有定點程式的平均值稱為SPECint,浮點程式的平均值稱為SPECfp。為了測試多核系統的吞吐能力,SPEC CPU還可以測試在多個CPU核同時執行多份程式複製的效能,並且把CPU的時間轉換為SPECrate分數。SPEC CPU 2017略有不同,SPECspeed 2017允許透過OpenMP或者自動並行化對單個程式進行多執行緒並行化的執行,測試的是系統多執行緒的效能,而不僅僅是單核單執行緒效能,它的程式集也和SPEC rate不完全相同。
參考來源:https://foxsen.github.io/archbase

請之前購買過全店打包架構師技術全店資料打包彙總(全)”的讀者,請憑藉購買記錄在微店留言免費獲取(PDF閱讀版本)。後續所有更新均免費發放目前48本資料)。

免責申明:本號聚焦相關技術分享,內容觀點不代表本號立場,可追溯內容均註明來源,釋出文章若存在版權等問題,請留言聯絡刪除,謝謝。
推薦閱讀
更多架構相關技術知識總結請參考“架構師全店鋪技術資料打包(全)”相關電子書(48本技術資料打包彙總詳情可透過“閱讀原文”獲取)。
溫馨提示:
掃描二維碼關注公眾號,點選閱讀原文連結獲取架構師技術全店資料打包彙總(全)電子書資料詳情


相關文章