前段时间,我工作的台式机换成了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编程.ppt
多核并行编程中,openmp作为一个不错的选择,此文档对openmp的特点,编程特性跟据例子进行讲解,有助于快速掌握openmp的编程
INTEL 软件学院讲解INTEL工具的PPT系列: 01 Intel 处理器结构 02 Intel 编译器、vtune ...*04 用OpenMP编程 05 Thread building block 06 Thread checker 07 Thread profiler 分开上传,大家看需求下载
OpenMP编程指南.ppt
简单的介绍OPenMP及它的语法。适合入门
OpenMP编程课件ppt 使用Visual Studio 2005编写OpenMP程序
康奈尔大学资源,mpi和openmp混合编程详解,有一定参考价值。
并行程序设计(openMP编程)
openMP学习
OpenMP编程技术总结[归类].pdf
并行计算机架构与编程上机实验程序 求矩阵行列式MPI+OpenMP多线程编程 MPI+OpenMP多线程编程的PBS
OPenMp多核编程命令详解包括:OpenMP简介,基本语法,以及相关练习
openmp 经典入门篇 介绍了openmp的入门,实例 给读者一个最简单的入门教学
OpenMP is a framework for shared memory parallel computing. OpenMP is a standard C/C++ and Fortran compilers. Compiler directives indicate where parallelism should be used. C/C++ use #pragma ...
MPI+OpenMP混合并行编程模型应用研究
OpenMp并行编程技术是并行编程技术中比较容易学的一种,相对MPI来说非常简单,但是效果却也是非常的理想。欢迎下载
不可多得OpenMP编程学习资料,非常珍贵,个人收藏的
很好的OpenMP多线程并行编程资料。
该工程包括三个文件:stdafa.h;OpenMp.cpp;stdafx.cpp。...实现的功能是:在一个元素个数为10000的随机数组中(元素值为0—9之间),在不同的线程数时,查找某一个数字出现的次数和查找所用到的时间。