您的位置:首页 > 编程语言 > Java开发

OpenMP并行程序设计——Eclipse开发环境的搭建

2014-10-12 15:53 288 查看
转载请声明出处:/article/7618177.html

最近正在听一门叫并行程序设计的课程,课上介绍了程序并行化的分析以及OpenMP的使用,在C/C++代码中使用OpenMP可以将程序代码中比较耗时的操作(如循环体)并行化,感觉就是编译器在编译的时候对代码做了处理,开多个线程执行同一块代码段,至于能否并行处理需要分析代码语句间的依赖关系(主要就是流依赖和反依赖关系),在最新的gcc4.9.1编译器中已经支持OpenMP
v4.0标准了。

看起来挺好玩的,而且连gcc都支持了,果断捣鼓一下。关于OpenMP的相关知识可以自行google学习,官网在这里http://openmp.org/wp/。还有另一种用得比较多的并行编程技术MPI,搭建MPI开发环境也是挺麻烦的,下一篇文章将讲解在Eclipse上搭建MPI开发环境。本文将介绍如何在Eclipse上编写OpenMP的并行程序。

首先,下载这个版本的Eclipse:http://www.eclipse.org/downloads/packages/eclipse-parallel-application-developers/lunasr1

这个版本要求jdk1.7以上,所以可以到这里下载最新的jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html

安装完了jdk在cmd窗口输入javac命令看能不能识别,如果显示不是命令则需要配置JAVA_HOME,百度一下怎么配置吧。能识别javac命令并打印出来一堆东西的话就不用配置了。

jdk安装配置完了如果运行不了上面的Eclipse,把eclipse文件夹里的eclipse.ini里最后两个参数改小一点:



我这里是512和1024,可以都改成512试试。

eclipse准备完毕了,然后下载这个版本的gcc:http://tdm-gcc.tdragon.net/download

下载的时候看清楚32位和64位的。

下载完了点击安装,我的安装路径是C:\TDM-GCC-64:



这时候在cmd输入gcc回车如果提示没有输入文件就没有问题了,否则自己在环境变量里path添加路径。

接下来,最重要的一步:

下载http://tdm-gcc.tdragon.net/download网站里的这个包含OpenMP库的压缩包:

32位系统的下载这个:



64位系统下载这个:



下载完了后解压看到这些文件:



将这些文件全部选择,复制。在这里粘贴:



选择是,合并文件夹。

到这里就已经完成OpenMP开发环境的搭建了,接下来打开Eclipse新建一个OpenMP应用程序吧~~



选择OpenMP工程,在这里新建的是C语言的工程,编译用的gcc,后面会讲到怎么在C++工程里也是用OpenMP。



然后右键工程,Build Project:



接下来右键Run As:



看看输出结果吧~~



上面只是一个初步介绍,不知道有没有发现在新建工程时没有提供C++ OpenMP选项,如果要在C++工程中使用OpenMP怎么办呢?其实在新建项目的时候没有必要按照上面的要求来,可以新建一个任意的C或C++工程。只要设置编译和链接参数即可。接下来新建一个C++ HelloWorld程序并使用OpenMP。

在刚才新建项目的选项中选择Hello World C++ Project:



把源文件代码改成这样:

#include <omp.h>
#include <iostream>
using namespace std;

int main() {
omp_set_num_threads(4);
#pragma omp parallel
cout << "!!!Hello World!!! from thread " << omp_get_thread_num() << endl; // prints !!!Hello World!!!
return 0;
}


然后右键工程—>属性(Properties),在下面这里选择C++编译器,在g++后面加入编译参数

(注意"-fopenmp"和"g++"之间有个空格!)



同样,在C++链接器里也需要加入同样的参数:



OK之后就可以build项目然后运行了~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: