openMP 设置 (并行计算)

windows:


如何建立Openmp编程环境
    

       OpenMP在Windows环境下比较容易实现,只要打开VS2008中的编译选项/openmp,设置一下环境变量OMP_NUM_THREADS就可以了。

        一般是新建一个c++项目,以次选择Project -> (alt+f7)属性 -> 配置属性(configuration property) -> c/c++ -> 语言(Language),打开OpenMP支持;

       设置环境变量:我的电脑 -> 属性 -> 高级 -> 环境变量,新建一个OMP_NUM_THREADS变量,值设为2,即为程序执行的线程数。

       至于其它环境变量,在使用的时候我们再设置就可以了,所以暂时不考虑。这样,就可以进行OpenMP程序设计了。

测试例子1:

#include "omp.h"

int main(int argc, char* argv[]) 
{

#pragma omp parallel 
for(;;) 

       int i = 0 ; 
       i++; 
       int y = i; 

return 0; 
}



Linux:

 

下载安装gcc4.2后,编译的时候加上-fopenmp参数即可。

     gcc -fopenmp test_omp.c

     g++ -fopenmp test_omp.cc

     gfortran -fopenmp test_omp.f90(95)

    “#pragma omp parallel”是一条OpenMP标准的语句,它的含义是让它后面的语句按照多线程来执行。需要注意的是每个线程都去做相同的事情。
[xuyc@sv168 openmp]$ gcc –fopenmp –o  helloworld  helloworld.c
[xuyc@sv168 openmp]$ OMP_NUM_THREADS=10
[xuyc@sv168 openmp]$ export OMP_NUM_THREADS
[xuyc@sv168 openmp]$ ./helloworld  
Hello world!
Hello world!
Hello world!
Hello world!
OMP_NUM_THREADS=2 ./helloc
如果不定义OMP_NUM_THREADS,默认会等于CPU数量,在8核心的机器上,会打印出8行"Hello World".

 

 

例子1  helloworld.c
01 #include 
//#include "omp.h" 如果用intel的icc 编译器,就要写上这行
02 int main( argc, argv)
03 int argc;
04 char **argv;
05 {
06 #pragma omp parallel
07 printf( "Hello world!/n" );
08 return 0;
09 }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值