Visual C++ 本地多核编程

Visual C++从2005版开始支持OpenMP 2.0的多核编程(2008和2010版也只支持2.0版)。
Visual C++ 2010 Beta 1版支持本地C++的PPL(Parallel Pattern Library,并行模式库)编程。
本小节介绍OpenMP多核编程,主要内容包括:OpenMP简介、OpenMP编程技术、OpenMP应用程序设计的考虑因
素和Visual C++的OpenMP多核编程。
OpenMP的MSDN帮助文档位于:开发工具与语言\Visual Studio\Visual C++\参考信息
\Libraries Reference\OpenMP\(为英文版)。

OpenMP (Open Multi-Processing,开放多处理)是一种面向共享内存以及分布式共享内存的多处理器多线程并行编程
语言,是一种能够被用于显示指导多线程、共享内存并行的应用程序编程接口(API),包含一组编译器指令、库程序、
和影响运行时行为的环境变量。OpenMP具有良好的可移植性,支持多种编程语言C/C++ 和Fortan等。支持OpenMP
的编译器包括Sun Compiler、GNU Compiler、Intel Compiler和Microsoft Visual C++等。OpenMP能够支持49
多种平台,包括大多数的类UNIX系统以及Windows NT系统(Windows 2000、Windows XP、Windows Vista、
Windows 7等)。
penMP不包含的性质有:不是建立在分布式存储系统上的、不是在所有的环境下都是一样的、不是能保证让多数共享存储器均能有效的利用

编译指导语句
在编译器编译程序的时候,会识别特定的注释,而这些特定的注释就包含着OpenMP程序的一些语义。

#pragma omp <directive> [clause[ [,] clause]…] newline 
#pragma(编译指示/附注/注记/杂注)为编译指令,omp 表示
OpenMP;<directive>(指导/指令/指示/指向)部分就包含了具体的编译指导语句,包括:
parallel、for、parallel for、section、sections、single、master、critical、flush、ordered和atomic;
clause(子句)为可选的若干子句,子句间可以用逗号或白空符分隔;newline为换行符,每
个OpenMP语句必须以换行符结束。例如: 
#pragma omp parallel private(var1, var2) shared(var3) {……} 

编译指导语句的功能是将串行的程序逐步地改造成一个并行程序,达到增量更新程序的目的,减少程序编写人员一定的负担。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值