并行计算--openMP学习笔记(1)

    这学期学习并行计算,感觉挺有趣的,openMP是一种基于线程的并行编程模型。首先要求该计算机拥有多个CPU,不然写并行程序并不能给程序带来运行速度上的提升。所有的openMP并行程序都开始与一个单独的主线程,中间会有一个或多个并行域。编程的时候一般是先写出串行程序,验证正确后,再一句一句改写成并行程序。

    推荐书籍有入门书:陈国良院士编著的《并行计算----结构·算法·编程》,以及关于openMP的详尽信息网址:http://www.openmp.,org。

    我就不再说openMP的历史等一些概念性的东西了,直接进入正题。

    首先当然是搭建环境了,支持openMP的IDE很多,由于学校的超级计算机装了VS2013,所以这里我也就使用了VS2013。下载安装的事我就不说了,官网有免费版。

    首先,打开VS2013,创建新项目,输入项目名称,如下图,点击确定,再下一步并行计算--openMP学习笔记(1)_第1张图片

在这一步中选择空项目,如下图,再点击完成。

并行计算--openMP学习笔记(1)_第2张图片

右键点击该项目,选择属性,如下图,在“openMP支持”右边选择“是” -> 确定。

并行计算--openMP学习笔记(1)_第3张图片

接下来,在源文件中右键,选择添加->新建项,新建一个C++文件。至此就可以在该C++文件中编辑并行代码了。

并行计算--openMP学习笔记(1)_第4张图片

下面是一段简单的测试代码,

#include
#include
int main()
{
	omp_set_num_threads(4);
	#pragma omp parallel
	{
		int tid = omp_get_thread_num();
		printf("Hello World from OMP thread %d\n", tid);
		if (tid == 0)
		{
			printf("I am the first thread\n");
		}
	}
	return 0;
}
其中一次运行结果如下,由于我分配给线程0的任务多于其它线程,所以线程0执行完成比较慢。每次运行结果有一定概率是不同的。

并行计算--openMP学习笔记(1)_第5张图片

你可能感兴趣的:(学习笔记,并行计算,并行计算,openmp)