OpenMP
文章平均质量分 87
lianqiang_sun
这个作者很懒,什么都没留下…
展开
-
OpenMP 入门
【系列讲座】OpenMP 入门(转) OpenMP是一个业界的标准,很早以前就有了,只是近一段时间才逐渐热起来。我们可以在C/C++和Fortran使用OpenMP、很容易的引入多线程。 OpenMP目前的标准是2.5,3.0马上也要通过了。官方网站www.openmp.org上有你需要知道的一切信息,包括OpenMP规范文档。 下图是一个典型的OpenMP程转载 2013-09-10 15:47:22 · 759 阅读 · 0 评论 -
编程计算Pi(π)的N种方法
一个看起来很牛的计算Pi的程序:int a=10000,b,c=2800,d,e,f[2801],g; main() { for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c -=14,printf("%.4d",e+d/a),e=d%a) for(b=c; d+=f[b]*a,f[b]=d%--g,d/=g--,--b; d*原创 2013-09-05 12:29:35 · 28197 阅读 · 0 评论 -
VS2010中配置CUDA和openMP
今天早上配置CUDA环境,因为C盘空间不组安装失败,又用金山卫士中的“大文件管理”清理了一下C盘,还是安装失败。重启了一下电脑,改用自定义安装,还是有东西没安装成功,不过主要的安装上了,运行 addVector, bandWidth, testOpenMP, 都可以。 在CUDA程序中打开 openMP 开关。 项目-》 属性 -》 CUDA C/C++ -> Host ->原创 2013-12-23 15:23:27 · 1488 阅读 · 2 评论 -
一起来学OpenMP(9)——线程同步之事件同步机制
一起来学OpenMP(9)——线程同步之事件同步机制 (2012-03-04 12:46:32)转载▼一、引言前边已经提到过,线程的同步机制包括互斥锁同步和事件同步。互斥锁同步包括atomic、critical、mutex函数,其机制与普通多线程同步的机制类似。而事件同步则通过nowait、sections、single、master等预处理器指示符声明来完成。转载 2013-09-10 18:20:56 · 1084 阅读 · 0 评论 -
一起来学OpenMP(6)——线程同步之atomic
一起来学OpenMP(6)——线程同步之atomic (2012-03-04 12:42:54)转载▼一、引言在OpenMP中,线程同步机制包括互斥锁同步机制和事件同步机制。本节介绍互斥锁同步机制中的atomic方法。 二、互斥锁同步的概念互斥锁同步的概念类似于Windows中的临界区(CriticalSection)以及Windows和Li转载 2013-09-10 18:16:23 · 1969 阅读 · 0 评论 -
一起来学OpenMP(3)——for循环并行化基本用法
一起来学OpenMP(3)——for循环并行化基本用法 一、引言在“一起来学OpenMP(1)——初体验”中给出了一个for循环并行化的例子,这里做进一步的分析,但本节仅描述for循环并行化的基本用法(即#pragma omp parallel for预处理器指示符),该用法需要满足数据不相关性。 二、数据相关性在循环并行化时,由于多个线程同时执行循环,迭代转载 2013-09-10 17:54:36 · 1572 阅读 · 0 评论 -
OpenMP--private, shared变量
最近刚学OpenMP, 上来就遇到一个循环嵌套的问题,下面这段代码就是输出2*5个数,但是结果只输出了5+1个数 int i=0;int j=6;#pragma omp parallel forfor (i = 0; i < 2; ++i) { for (j = 0; j < 5; ++j) { printf("i=%d j=%d\n fro原创 2013-09-10 13:38:09 · 13941 阅读 · 2 评论 -
openMP的一点使用经验(图像特征提取OpenCV)
openMP的一点使用经验最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解多线程的底层知识,从而提高编程效率。这两天关注的多核编程的工具包括转载 2013-09-11 09:23:12 · 1138 阅读 · 0 评论 -
一起来学OpenMP(7)——线程同步之临界区
一起来学OpenMP(7)——线程同步之临界区 (2012-03-04 12:44:18)转载▼一、引言上一节介绍了OpenMP中atomic互斥锁机制的使用用法,本节介绍临界区互斥锁机制的使用用法。这里的临界区与Windows下的CriticalSection类似。 二、临界区声明方法#pragma omp critical [(nam转载 2013-09-10 18:17:44 · 1180 阅读 · 0 评论 -
一起来学OpenMP(4)——数据的共享与私有化
一起来学OpenMP(4)——数据的共享与私有化 (2012-03-04 12:33:41)一、引言在并行区域中,若多个线程共同访问同一存储单元,并且至少会有一个线程更新数据单元中的内容时,会发送数据今生。本节的数据共享与私有化对数据竞争做一个初步的探讨,后续会在同步、互斥相关文章中进行进一步描述。 二、并行区域中变量的共享与私有除了以下三种情况外,并行转载 2013-09-10 18:06:37 · 1014 阅读 · 0 评论 -
一起来学OpenMP(5)——有效的数据规约
一起来学OpenMP(5)——有效的数据规约 (2012-03-04 12:41:03)转载▼一、引言本节介绍reduction的用法。 二、reduction示例[cpp] view plaincopyprint?#include #include // OpenMP编程需要包含的头文件 int ma转载 2013-09-10 18:10:32 · 845 阅读 · 0 评论 -
境下配置Google Test、TBB、OpenMP和OpenCV
Linux环境下配置Google Test、TBB、OpenMP和OpenCV最近逐渐把开发环境从Windows转到Linux下,原因是Visual Studio提供的环境太庞大,总感觉看不到全貌,并且对于C++11的支持实在是太慢了。而在Linux下,有非常大的选择空间,编辑器可以选vim或者emacs,两者都是顶级的文本编辑器(不仅仅是文本编辑器)。编译器可以选g++或转载 2014-02-01 09:46:44 · 1204 阅读 · 0 评论