Monday, September 22, 2008

OpenMP on VC6

OpenMP已經出來很久了
但是我發現它卻是最近的事情
就如同很多人還沒有發現自己的開發工具
其實是支援OpenMP的

[OpenMP Compilers]


如果您對OpenMP還很陌生的話
請參考

[簡易的程式平行化方法]


當然
在拜讀heresy大的文章之後
興致沖沖的趕快開啟VC 2005來試試看
看到雙CPU的電腦可以衝上100%是一種感動
總算沒有白花錢買電腦了
但是
自己之前的程式
都是投資在VC6上面
VC6沒有辦法直接用OpenMP是一大缺憾
但是卻有變通的方法
那就是使用VC6 + Intel Compiler

使用步驟如下
首先 去download 
[intel compiler Evaluate Version]


灌起來之後
打開VC6 
就會在menu->Tools 多出一個工具 [Intel(R) C++ compiler selection tools]
裡面會出現你所灌的compiler版本資訊



接下來就是重點了

打開你之前的VC6專案檔

在Project Settings裡



1. C/C++ ->Preprocessor Definitions 裡加上 _USE_INTEL_COMPILER




2. C/C++ -> Project Options 裡加上 /Qopenmp




3. 如果 Project Options是 "/MT",libguide.lib 會 statically linked,但是你用 "/MD" 的話,請在Link 的頁簽 加上 libguide.lib 不然程式會出現缺少libguide40.dll的錯誤訊息



程式的部份就要注意在有用到OpenMP的地方

加上 #include <omp.h>

當舊程式可以支援多CPU時

那種感動真是無法言語....