[置顶] 一起来学OpenMP(1)——初体验

OpenMP是一种面向共享内存以及分布式共享内存的多处理器多线程并行编程语言。

我的开发环境是Windows、VS2008、双核处理器。

 

1. 在VS2008程序目录下找到vcomp90d.dll文件,并复制到windows/system32/目录下。

2. 创建一个名为OpenMP的空控制台工程(即没有VS2008不会生成任何文件)

3. 添加一个名为OpenMP.cpp的源文件

4. “工程属性->C/C++->OpenMP支持”设置如下图:

 

5. 简单的OpenMP代码。

#include <iostream> #include <stdio.h> #include <omp.h> // OpenMP编程需要包含的头文件 int main() { #pragma omp parallel for for(int i = 0; i < 10; ++i) { std::cout << i << std::endl; } return 0; };

执行结果如下:

    

 

可以看到,i从0至9的循环任务被分配到两个核上,第一个核执行了0~4,第二个核执行了5~9。

 

6. 小节

通过#pragma omp预处理指示符指定要采用OpenMP,这里通过#pragma omp parallel for来指定下方的for循环采用多线程执行,此时编译器会根据CPU的个数来创建线程数,对于双核系统,编译器会默认创建两个线程执行并行区域的代码。

 

#pragma omp有许多用法,后续一一介绍。

 

 

你可能感兴趣的:(多线程,编程,windows,任务,编译器,parallel)