博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenMP 多核编程
阅读量:6073 次
发布时间:2019-06-20

本文共 1803 字,大约阅读时间需要 6 分钟。

第一次编写OpenMP程序所遇到的问题(1) 
(2010-07-02 06:49:29) 标签:  分类: 

转载时请注明原文出处()及作者邮箱()

 

   (1)打开VS2008,新建一个空白的Win32 Console Application工程,添加源文件中并输入如下的代码:

  (2)上面是一个最简单的OpenMP程序,它将并行的输出5个整数,可是实际的输出结果如下:
   结果好像是串行的输出,并没有看出并行的效果嘛!原因在于VS2008缺省是将OpenMP的支持关闭,打开的方法如下, 将OpenMP Support 项设为Yes,即可:
(3)重新编译,没有任何问题,可是运行或调试该程序,却报错:"This application has failed to start because VCOMP90D.DLL was not found. Re-installing the application may fix this problem", 如下图所示:

原因是没有找到VCOMP90D.dll,实际上,你可以在C:\Windows\winsxs\目录下找到VCOMP90D.dll,例如在我的机器上,它所在的具体目录为:

C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugOpenMP_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_72b673b0

 

现在我们需要在VS工程设置中指定该文件即可,properties->configuration properties->Linker->Manifest File->Additional Manifest Dependencies输入如下字符串:

"type='win32' name ='Microsoft.VC90.DebugOpenMP' version ='9.0.21022.8' processorArchitecture ='x86' publicKeyToken= '1fc8b3b9a1e18e3b' "

注意:字符串中的值来源于VCOMP90D的父目录,而且在输入时,单引号和双引号不能少。

 

(4)重新编译,成功运行,结果如下:

    这才是并行运行的效果!!!!

需要说明的是:

   (1)上面的情况针对的工程配置是Debug,如果是Release, 它会报错“VCOMP90.DLL was not found”, 只需在winsxs中找到该文件,并按照同样的方法更改“Additional Manifest Dependencies”即可,例如:

"type='win32' name ='Microsoft.VC90.OpenMP' version ='9.0.21022.8' processorArchitecture ='x86' publicKeyToken= '1fc8b3b9a1e18e3b' "

 (2)上面的情况只是针对VS2008自带的编译器,对于其他的编译器,可能不一样,例如如果选用Intel的编译器,就不需要设置“Additional Manifest Dependencies”

 

 

 

#include "stdafx.h"

#include <iostream>

#include <omp.h>

void tt( int a )

{

std::cout<< a <<std::endl;

}

int main( )

{

std::cout<<" thread: number:"<<  omp_get_thread_num() << std::endl;

//#pragma omp parallel for

//for( int i=0;i<40 ;i++ )

int i=0;

#pragma omp parallel

{

if( i<=0 )

{

std::cout<<" i="<< i++ <<std::endl;

}

std::cout<<" threadnum="<< omp_get_thread_num()  <<std::endl;

}

 

int a;

std::cin>>a;

return 0;

}

转载于:https://www.cnblogs.com/xibao/archive/2013/05/23/3095239.html

你可能感兴趣的文章
html中静态包含公共部分
查看>>
Spring Boot整合Redis(附带序列化方式对比)
查看>>
Docker搭建mysql案例
查看>>
你真的了解你的显示器吗?(科普显示器知识,如何选购显示器)
查看>>
虎牙直播在微服务改造方面的实践和总结
查看>>
云宏刘建平:细说中小企业如何上云
查看>>
超融合与云计算的不同之处是什么?
查看>>
工作中的CAD图纸文件怎么转换成BMP格式后保存桌面?
查看>>
文件查找locate与find
查看>>
Linux内核目录结构
查看>>
Microsoft System Center 2012 Virtual Machine Manager 部署过程
查看>>
CentOS下安装Nagios
查看>>
批量删除Exchange 2010 邮件队列
查看>>
关于MyEclipse在载入CVS中的工程后,工程无法运行的解决
查看>>
ESX_4.1_命令行网络配置(vlan)
查看>>
今天终于收到51CTO的奖品了
查看>>
ubuntu 配置R语言环境
查看>>
Ngnix中的fastcgi参数性能优化和解释
查看>>
Mysql 数据库备份与恢复
查看>>
代码解密cxx
查看>>