http://blog.csdn.net/bendanban/article/details/7662583
1、 什么是HMPP
HMPP是Hybrid Multicore Parallel Programming的英文縮寫。HMPP提供了一些指令,這些指令致力于將可以并行的程序移植到協(xié)處理器(協(xié)處理器(co-processor)在HMPP中常被稱為硬件加速器(Hardware Accelerator, HWA))上執(zhí)行。目前比較熟悉的加速器是GPU以及MIC。
使用HMPP可以有幾個(gè)好處:
① 程序員可以不關(guān)心您的程序是在什么類型的硬件加速器上執(zhí)行,盡管很多情況下大家都知道自己用的是什么加速器。
② 如果你的機(jī)器沒有加速器或者你的加速器不可用,那么你的程序可以繼續(xù)以原有的方式執(zhí)行,這樣就保證了程序能繼續(xù)執(zhí)行。
③ 使用HMPP,你只需要幾句指令你的程序就可以移植了,再也不用學(xué)習(xí)什么CUDA、OpenCL、Cg之類的東西了。給大家減輕了負(fù)擔(dān)。
2、 如何獲得HMPP
需要到CAPS的官方網(wǎng)站去登記(http://www.caps-entreprise.com.cn/download/hmpp-openacc-compiler這個(gè)網(wǎng)站將主要用于亞洲用戶的下載),然后才可以下載HMPP編譯器,目前最新的版本是3.1,這個(gè)版本只有支持Linux 64位的版本,支持Windows的版本將在晚些時(shí)候發(fā)布。新的版本加入對(duì)OpenACC1.0標(biāo)準(zhǔn)的全部支持。可以同時(shí)使用HMPP以及OpenACC的指令,當(dāng)然我們需要滿足一定的規(guī)則。這些規(guī)則將會(huì)在我后續(xù)的文章中逐漸講到。期待大家的關(guān)注奧。
3、如何安裝HMPP
在Windows下安裝。只需要你雙擊軟件安裝包就可以了。然后根據(jù)提示安裝就可以了。
在Linux下安裝。各位可以參考http://blog.csdn.net/bendanban/article/details/7769907
4、如何使用HMPP
因?yàn)?span style="font-family: Calibri">HMPP不會(huì)把語(yǔ)言編譯的所有活都干完,他需要你有額外的編譯器。所以在windows下你最好有Visual Studio,并且推薦VS2008(VS9.0)。Fortran語(yǔ)言的話在Windows下推薦使用Intel FORTRAN Compiler。
下面我用VisualStudio2008來配置編譯自己的C程序的整個(gè)過程。這里假設(shè)各位已經(jīng)安裝好了HMPP和VisualStudio2008。下面直接配置吧。
編譯環(huán)境的配置過程!
Step1 在你下載的壓縮文件中會(huì)有類似這樣命名的文件:HMPPWorkbench-*.*.*_WindowsTutorial.zip。把他解壓,在解壓出的文件夾中(labs/common/)找到一個(gè)名為HMPP.rules的文件。把這個(gè)文件拷貝到[Visual Studio 安裝目錄]\VC\VCProjectDefaults\目錄下。
Step2 下面使用VS建立自己的工程。打開VS,如圖4-1所示建立一個(gè)空的工程。

圖4-1
Step3 在新工程中添加代碼文件。你可以拷貝我下面的代碼。:-)
#include <stdio.h>
int main(int argc, char **argv)


{
printf("Hello HMPP\n");
getchar();
return 0;
}
Step4 添加自定義生成規(guī)則搭建所需環(huán)境。如圖4-2到圖4-6所示。

圖4-2

圖4-3

圖4-4

圖4-5

圖4-6
走到這一步,各位不要著急去編譯自己的程序奧。你要確保自己有權(quán)利使用HMPP編譯器奧。現(xiàn)在唯一的途徑就是去CAPS的官方網(wǎng)站去登記,然后獲得試用版的license才行奧。下面假設(shè)你已經(jīng)獲得了License文件。講述如何成功編譯第一個(gè)Hello HMPP程序。
編譯權(quán)限的配置過程!
Step1 首先將你獲得的.lic拷貝到HMPP安裝目錄下的licensens文件夾下。
Step2 按照?qǐng)D4-7打開控制臺(tái),按照?qǐng)D4-8所示執(zhí)行命令。千萬注意,一定不要在需要使用HMPP編譯時(shí)關(guān)閉你剛剛打開的控制臺(tái)。
完成上面這兩大部分之后,就可以編譯執(zhí)行第一個(gè)HMPP編譯出的程序了!!圖4-9展示了執(zhí)行結(jié)果。

圖4-7

圖4-8

圖4-9
參考文獻(xiàn):
[1] HMPPWorkbench-2.5_HMPP_Directives_ReferenceManual[M/OL].