HMPP是Hybrid Multicore Parallel Programming的英文缩写。HMPP提供了一些指令,这些指令致力于将可以并行的程序移植到协处理器(协处理器(co-processor)在HMPP中常被称为硬件加速器(Hardware Accelerator, HWA))上执行。目前比较熟悉的加速器是GPU以及MIC。
使用HMPP可以有几个好处:
① 程序员可以不关心您的程序是在什么类型的硬件加速器上执行,尽管很多情况下大家都知道自己用的是什么加速器。
② 如果你的机器没有加速器或者你的加速器不可用,那么你的程序可以继续以原有的方式执行,这样就保证了程序能继续执行。
③ 使用HMPP,你只需要几句指令你的程序就可以移植了,再也不用学习什么CUDA、OpenCL、Cg之类的东西了。给大家减轻了负担。
需要到CAPS的官方网站去登记(http://www.caps-entreprise.com.cn/download/hmpp-openacc-compiler这个网站将主要用于亚洲用户的下载),然后才可以下载HMPP编译器,目前最新的版本是3.1,这个版本只有支持Linux 64位的版本,支持Windows的版本将在晚些时候发布。新的版本加入对OpenACC1.0标准的全部支持。可以同时使用HMPP以及OpenACC的指令,当然我们需要满足一定的规则。这些规则将会在我后续的文章中逐渐讲到。期待大家的关注奥。
在Windows下安装。只需要你双击软件安装包就可以了。然后根据提示安装就可以了。
在Linux下安装。各位可以参考http://blog.csdn.net/bendanban/article/details/7769907
因为HMPP不会把语言编译的所有活都干完,他需要你有额外的编译器。所以在windows下你最好有Visual Studio,并且推荐VS2008(VS9.0)。Fortran语言的话在Windows下推荐使用Intel FORTRAN Compiler。
下面我用VisualStudio2008来配置编译自己的C程序的整个过程。这里假设各位已经安装好了HMPP和VisualStudio2008。下面直接配置吧。
编译环境的配置过程!
Step1 在你下载的压缩文件中会有类似这样命名的文件:HMPPWorkbench-*.*.*_WindowsTutorial.zip。把他解压,在解压出的文件夹中(labs/common/)找到一个名为HMPP.rules的文件。把这个文件拷贝到[Visual Studio 安装目录]\VC\VCProjectDefaults\目录下。
Step2 下面使用VS建立自己的工程。打开VS,如图4-1所示建立一个空的工程。
图4-1
Step3 在新工程中添加代码文件。你可以拷贝我下面的代码。:-)
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello HMPP\n");
getchar();
return 0;
}
Step4 添加自定义生成规则搭建所需环境。如图4-2到图4-6所示。
图4-2
图4-3
图4-4
图4-5
图4-6
走到这一步,各位不要着急去编译自己的程序奥。你要确保自己有权利使用HMPP编译器奥。现在唯一的途径就是去CAPS的官方网站去登记,然后获得试用版的license才行奥。下面假设你已经获得了License文件。讲述如何成功编译第一个Hello HMPP程序。
编译权限的配置过程!
Step1 首先将你获得的.lic拷贝到HMPP安装目录下的licensens文件夹下。
Step2 按照图4-7打开控制台,按照图4-8所示执行命令。千万注意,一定不要在需要使用HMPP编译时关闭你刚刚打开的控制台。
完成上面这两大部分之后,就可以编译执行第一个HMPP编译出的程序了!!图4-9展示了执行结果。
图4-7
图4-8
图4-9
参考文献:
[1] HMPPWorkbench-2.5_HMPP_Directives_ReferenceManual[M/OL].