Visual C++ 本地多核编程
来源:互联网 发布:矩阵diag是什么意思 编辑:程序博客网 时间:2024/06/06 06:48
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) {……}
编译指导语句的功能是将串行的程序逐步地改造成一个并行程序,达到增量更新程序的目的,减少程序编写人员一定的负担。
- Visual C++ 本地多核编程
- c#Task多核编程
- Visual Studio 11可视化多核多线程编程的行为
- Visual C#数据库编程
- 《编程经典Visual C++》
- Visual Studio 11开发指南(12)Visual Studio 11可视化多核多线程编程的行为
- C/C++_多核多线程编程_互斥锁
- 祥解Visual C#数据库编程
- 祥解Visual C#数据库编程
- 祥解Visual C#数据库编程
- Visual C#的Excel编程
- Visual C++.NET DirectShow编程
- Visual C#的Excel编程
- Visual C#的Excel编程
- Visual C#的剪切板编程
- Visual C++DLL编程实现
- Visual C++DLL编程实现
- Visual C#数据库编程初步
- 配置wamp时候遇到的各种问题
- Apache kafka 工作原理介绍
- Codeforces 358D. Dima and Hares (DP)
- 1010: [HNOI2008]玩具装箱toy 斜率优化
- 使用atom工具
- Visual C++ 本地多核编程
- intellij ideal连接自己的仓库地址,并提交代码
- 进一步解析“Hello World”程序
- 线程互斥与同步(part2)—互斥锁(Mutex)的“cp”:条件变量(Condition Variable)
- POJ 2955 Brackets——区间dp
- CPU百分百问题的研究
- MySQL 数据库基本命令汇总
- 线段树
- Java基础之——字母大小写转换