代码改变世界

openMP学习笔记(一)

2009-04-30 11:37  libiver  阅读(307)  评论(0编辑  收藏  举报

声明:欢迎任何人和组织转载本blog中文章,但必须标记文章原始链接和作者信息。

本文链接:http://blog.csdn.net/li_007/archive/2009/04/30/4139211.aspx

开拓进取的小乌龟------->CSDN点滴点点滴滴Blog

之前大概看了一下openMP,并且在初期像很多人一样犯了一些低级错误。

openMP是一种API,不是另一种编程语言,是像XML这样的一种业界标准,是一种基于内存共享的可扩展的可移植的多核并行编程模型,它适合于PC应用程序,同样也适合超级计算机的并行编程。可以去openMP的官网(www.openmp.org)它的介绍。

openMP的语句也很简洁,由#pragma omp这个directives加上一些如parallel、for、section、etc子语句组成,现在又很多人写了大量这方面的文章,如何感兴趣可以去baidu or google一下,当然最好是去官网或者www.wikipedia.org看看,毕竟它们更权威和专业。

支持openMP的编译器有很多,流行的Visual Studio .NET 2005/2008都支持(说明一下,只有professional Edition 和 Team Edition才支持)、当然还有Intel studio@parallel、gcc 4.3.2以上版本的编译器都支持openMP。在VS系列中,如果没有用到openMP的omp_get_thread_num()等等这些API,是不需要包含<omp.h>头文件的。只需要在项目属性中打开openMP支持就可以了。

 

 

上面是一个简单的利用了openMP的程序 ,执行结果如下:

 

注:在这里说明一下,不能使用C++的cout输出,貌似是不支持多线程输出,大家可以自己去测试。