由於Intel的compiler在non-commercial的條件下可以免費使用(下載),所以就抓下來安裝和g++比較看看效能上的差異。
首先要照官方網站上FAQ內使用OpenMP前要對svm.cpp修改。
此時g++版本內的Makefile參數應該如下:
CXX ?= g++
CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp
CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp
而intel compiler(icpc)的Makefile參數如下:
CXX = icpc
CFLAGS = -Wall -Wconversion -O3 -fPIC -openmp
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
real: 0m50.562s
user: 3m8.672s
sys: 0m0.588s
icpc:
real: 0m47.233s
user: 2m58.003s
sys: 0m2.220s
real: 0m47.233s
user: 2m58.003s
sys: 0m2.220s