热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenMP多核编程

第一次编写OpenMP程序所遇到的问题(1)(2010-07-0206:49:29)转载▼标签:杂谈分类:并行
第一次编写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

#include

void tt( int a )

{

std::cout<

}

int main( )

{

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

//#pragma omp parallel for

//for( int i&#61;0;i<40 ;i&#43;&#43; )

int i&#61;0;

#pragma omp parallel

{

if( i<&#61;0 )

{

std::cout<<" i&#61;"<

}

std::cout<<" threadnum&#61;"<

}

 

int a;

std::cin>>a;

return 0;

}


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



推荐阅读
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射)
    提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射) ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 在《ChartData类详解》一文中,我们将深入探讨 MPAndroidChart 中的 ChartData 类。本文将详细介绍如何设置图表颜色(Setting Colors)以及如何格式化数据值(Formatting Data Values),通过 ValueFormatter 的使用来提升图表的可读性和美观度。此外,我们还将介绍一些高级配置选项,帮助开发者更好地定制和优化图表展示效果。 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
author-avatar
手机用户2502917981
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有