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

转载时请注明原文出处(http://blog.sina.com.cn/wyw1976)及作者邮箱()

(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/3095347.html

OpenMP 多核编程(转载)相关推荐

  1. 多线程的那点儿事(之多核编程)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 多核编程并不是最近才兴起的新鲜事物.早在intel发布双核cpu之前,多核编程已经在业内存在了 ...

  2. 积极准备、谨慎行动——应对多核编程革命

    本文发表于<程序员>杂志2007年4月刊,版权所有,如蒙转载,敬请保留作者等版权信息,违者必究! 本文发表于恋花蝶的博客(http://blog.csdn.net/lanphaday) 积 ...

  3. 网络分流器-网络分流器-多核编程的几个难题及其应对策略

    网络分流器-网络分流器-多核编程的几个难题及其应对策略! 戎腾网络: 随着多核CPU的出世,多核编程方面的问题将摆上了程序员的日程,有许多老的程序员以为早就有多CPU的机器,业界在多CPU机器上的编程 ...

  4. 推荐阅读的多核编程技术书籍

    多核编程技术好书推荐 多核程序设计技术--通过软件多线程提升性能 , 作 者: (孟加拉)阿克特(Akhter,S.),(美)罗伯茨(Roberts,J.) 著,李宝峰,富弘毅,李韬 译 本书从原理. ...

  5. .NET 并行(多核)编程系列之七 共享数据问题和解决概述

    .NET 并行(多核)编程系列之七 共享数据问题和解决概述 原文:.NET 并行(多核)编程系列之七 共享数据问题和解决概述 .NET 并行(多核)编程系列之七 共享数据问题和解决概述 前言:之前的文 ...

  6. 多核编程文章汇总[z]

    以下为截止2009年3月21日前发布在本人博客中的多核相关的文章汇总,这些文章大部分摘自于我写的<多核计算与程序设计>一书.现将这些文章分类汇总,方便大家阅读. 后续如果博客中继续发布了多 ...

  7. .NET 并行(多核)编程系列之六 Task基础部分完结篇

    .NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍. 本篇的主要 ...

  8. 精通lambda表达式:Java多核编程pdf

    下载地址:网盘下载 内容简介  · · · · · · lambda表达式权威指南 <精通lambda表达式:Java多核编程>介绍Java SE 8中与lambda相关的特性是如何帮助J ...

  9. 多核编程中的负载平衡难题

    多核编程中的负载平衡难题 作者:周伟明 相关文章链接: 多核编程中的锁竞争难题 多核编程的几个难题及其应对策略(难题一) OpenMP并行程序设计(二) OpenMP并行程序设计(一) 双核CPU上的 ...

最新文章

  1. elastic ik分词搜索_php环境下使用elasticSearch+ik分词器进行全文搜索
  2. SQL Server 2017 AlwaysOn on Linux 配置和维护(18)
  3. AbilitySlice之间的回传值
  4. 在线预览视频/直播:m3u8、rmpt、mp4、flv
  5. linux oracle swd.oui,centos7安装oracle11g报错,请问怎么解?
  6. 真格量化——菜粕策略
  7. 操作系统设计与实现 读笔(2)
  8. 二级c语言上机程序填空,浙江省计算机二级c语言上机考试真题(二)程序填空
  9. 【U-Net】【粗读】U-Net: Convolutional Networks for Biomedical Image Segmentation
  10. vue.js笔记1.0
  11. 《交互设计》作业-第二周
  12. vulntarget-a靶场的学习思考
  13. 数据库系统的组成及模式结构
  14. 写了一个微信发红包的代码
  15. 移动硬盘数据丢失如何恢复
  16. vue使用provide / inject 组合刷新页面+单独组件刷新
  17. GDIplus的初次接触--加载并显示常用格式图片
  18. iOS各版本发布时间和特点
  19. 特斯拉电动汽车接连发生两起致命车祸 美国监管机构已介入调查
  20. 大数据分析与实践 使用Python以UCI心脏病数据集为例,进行数据简单分析

热门文章

  1. 机器人等级考试一级教具_机器人等级考试一级之“齿轮”
  2. input date保存值_涛哥文集(36):R keras保存和还原模型
  3. mysql 删除时间一个星期_15天快速学习 数据库Mysql 基础操作命令(第一章)
  4. 网维大师服务器不运行,网维大师客户机连不上的解决方法
  5. .计算机自动关机或重启,电脑自动关机或者重启怎么处理
  6. websocket后台推送数据
  7. [shell]C语言调用shell脚本接口
  8. hadoop调优之一
  9. Linux 最常用命令
  10. elasticsearch配置文件详解