赞
踩
http://blog.csdn.net/theprinceofelf/article/details/7205813
(1)openMP的配置(windows平台+vs2010)。在Visul Studio中配置openMP十分简单,只需打开“项目 - > 属性 - > C/C++ - > 语言”中将“OpenMPI支持”选为"是" 如下图所示:
这样你就可以开始OpenMP之旅了。
(2)下面开始我们最简单的OpenMPI语句,hello world!
(3)OpenMP的循环并行化
最基础和典型的并行部分应该就是循环,我们先从循环的并行开始
这段代码中添加了运行时间测试语句,是为了比较并行处理的效果,并行指导语句只有一句#pragma omp parallel for,其作用就是将for循环的内部迭代使用多个线程处理。第二个循环是非并行的参照组,在我的机子上这两段代码的时间分别是35ms,65ms左右。
(3)OpenMPI的一般语句并行化
(4)OpenMP的并行调度算法
OpenMPI 的调度算法一共有三个:static , dynamic, guided. 另外有一个根据环境变量选择三者之一的runtime选项。使用方法也十分简单:
static : 每个线程分配 迭代总数 / 线程数 的迭代次数,如9500次迭代,10个线程,那么每个线程被分配950次迭代。任务分配可能不均衡。因为每次迭代的时间可能不同。
dynamic : 每次线程完成了当前工作就重新申请新的工作,开销比static大,但能基本保证任务分配的均衡。
guided : 程序员可以给出分配公式,指导任务的分配。
待续……
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。