2010年11月15日

LibSVM 3.0使用G++與Intel compiler加OpenMP效能的比較

由於Intel的compiler在non-commercial的條件下可以免費使用(下載),所以就抓下來安裝和g++比較看看效能上的差異。

首先要照官方網站上FAQ內使用OpenMP前要對svm.cpp修改。

此時g++版本內的Makefile參數應該如下:

CXX ?= g++
CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp

而intel compiler(icpc)的Makefile參數如下:

CXX = icpc
CFLAGS = -Wall -Wconversion -O3 -fPIC -openmp

其它部份參數都一樣。

我的執行平台是Ubuntu 10.04, CPU為Intel(R) Core(TM)2 Quad CPU Q8300, g++版本為4.4.3, icpc版本為v12.0.0, OpenMP使用4個核心運算,使用官方網站上的a9a範例做training, 執行時間如下:

g++:
real:  0m50.562s
user: 3m8.672s
sys: 0m0.588s
icpc:
real: 0m47.233s
user: 2m58.003s
sys: 0m2.220s