c++实例研究

从0开始

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  104 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
openMP 全称 open multiple processing, 是一个多线程执行的编译器规范。 规范支持用类似 #progma 的宏定义说明多线程的性质,遵守openMP规范的编译器将识别这些宏,并多线程的运行被宏定义之下的大括号括起来的代码。

下面是在ubuntu的gcc编译器下进行的实验:

// omp_parallel.cpp
// compile with: /openmp 
#include <stdio.h>
#include 
<omp.h>

int main() {
   #pragma omp parallel num_threads(
4)
   
{
      
int i = omp_get_thread_num();
      printf(
"Hello from thread %d\n", i);
   }

}

gcc omp_parallel.cpp -fopenmp

./a.out

result:
Hello from thread 0
Hello from thread 3
Hello from thread 1
Hello from thread 2

注意:一定需要-fopenmp,不然会链接不到omp_get_thread_num函数。
posted on 2010-10-21 16:28 elprup 阅读(940) 评论(0)  编辑 收藏 引用 所属分类: 工程问题集

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理