OpenMP编程学习笔记一
来源:互联网 发布:php常用的数组函数 编辑:程序博客网 时间:2024/05/01 20:16
前段时间,我工作的台式机换成了PC 工作站。除了有6G内存,64位外,而且是4核的。刚好这段时间工作上没有什么事情,于是开始学习多核与并行编程。以前做了很长时间的单核多线程编程,所以对多核多线程编程很是期待。今天,在VS2008与Linux下,分别测试了openMP的简单例子,对多核编程有了一点直观认识。
测试例子test.cpp为:
#include <stdio.h>
#include <omp.h>
int main()
{
omp_set_num_threads(4); //my workstation has 4 cores
#pragma omp parallel for
for(int i =0; i < 20; i++)
{
printf("i = %d/n", i);
}
return 0;
}
VS2008缺省编译不支持openMP, 需要在properties -> C/C++ -> Language -> OpenMP Support设置(参见贴图)。
Linux下编译方法为:g++ -fopenmp test.cpp
一种运行结果为:
i = 5
i = 6
i = 7
i = 8
i = 9
i = 0
i = 1
i = 2
i = 3
i = 4
i = 10
i = 11
i = 12
i = 13
i = 14
i = 15
i = 16
i = 17
i = 18
i = 19
可以看出结果与串行执行结果是不同的,整个任务被平均分配给了4个core,4个core同步执行。这是物理意义上的同步执行,不同于单核的进程线程切换。
- OpenMP编程学习笔记一
- OpenMP学习笔记<一>
- 多核编程学习笔记之OpenMP(一)
- OpenMP编程学习笔记二
- OpenMP编程学习笔记三
- OpenMP编程学习笔记四
- OpenMP编程学习笔记五
- OpenMP编程学习笔记六
- OpenMP编程学习笔记七
- OpenMP编程学习笔记八
- OpenMP编程学习笔记九
- openMP学习笔记(一)
- OpenMP Tutorial学习笔记(2)OpenMP编程模型
- OpenMP学习总结一
- OpenMP学习(一)
- OpenMP学习笔记
- openmp学习笔记
- OpenMP学习笔记
- Spring 对JMS的支持
- 复数类
- google使用技巧
- 增加虚拟班字段解决由选客授课表计算教师工作量的两点问题
- 判断一个数是否是2的阶次方数
- OpenMP编程学习笔记一
- 复数类
- MySQL常用内置函数
- 乱文
- DirectX技术实现视频会议中的音频通信
- OTSR在欧洲的成功应用
- QT model/view 学习四
- Facebook鲜为人知26件事:谷歌如并购需通知微软
- mysql中length函数和char_length的区别