schedule(static, size)

这是静态调度,如果没有设置size, 默认是根据任务书来决定, 比如我电脑是8核,有26个任务,那么分配后结果是4 4 3 3 3 3 3 3. 因为先分配的先调度,所以把没对齐部分分配给先调度的任务。

这种调度适合每个任务运行时间都差不多的情况。

size一般不用写,默认即可。

schedule (dynamic, size)

这是动态调度,刚开始以为size如果是默认的话,每个块的大小是平均的,结果试了下发现默认size是1,导致调度消耗比较大。如果任务数不是很大,可以使用默认size,如果任务数很大,最好自己计算size的大小。

    #pragma omp parallel for schedule(dynamic)
for(int i=; i<; i++)
{
_sleep(i);
int j =;
while(j--);
#pragma omp critical
cout <<omp_get_thread_num() << " " << i << " " << endl;
}

上面是测试代码,运行结果是

5 0
1 1
6 2
4 3
3 4
2 5
0 6
7 7
5 8
1 9
6 10
4 11
3 12
2 13
0 14
7 15
5 16
1 17
6 18
4 19
3 20
2 21
0 22
7 23
5 24
1 25

可以发现,默认size是1. 如果改成2。结果在下面

5 0
5 1
6 2
1 4
6 3
3 6
0 8
1 5
2 10
4 12
3 7
7 14
0 9
5 16
2 11
6 18
4 13
7 15
1 20
5 17
3 22
0 24
6 19
1 21
3 23
0 25

可以发现,没有对齐部分也是按照size来分配的,导致没有对齐部分的其它cpu都空闲。

OpenMP的调度的更多相关文章

  1. 应用OpenMP的一个简单的设计模式

    小喵的唠叨话:最近很久没写博客了,一是因为之前写的LSoftmax后馈一直没有成功,所以在等作者的源码.二是最近没什么想写的东西.前两天,在预处理图片的时候,发现处理200w张图片,跑了一晚上也才处理 ...

  2. OpenMP并行构造的schedule子句详解 (转载)

    原文:http://blog.csdn.net/gengshenghong/article/details/7000979 schedule的语法为: schedule(kind, [chunk_si ...

  3. Vs 2008 对 OpenMP 的 支持 以及 OpenMP的环境变量及库函数

    Visual C++® 2008对OpenMP的支持 VC++2008根据项目属性配置的指示进行 /openmp编译器切换,当配置了OpenMP支持后,编译器会提供_OPENMP定义,可以使用#ifd ...

  4. 使用Openmp并行化

    运行命令:g++ -fopenmp xx.cpp -lgomp -lpthread -o xx.out 用例一: #include <omp.h> #include <stdio.h ...

  5. 【CUDA 基础】6.2 并发内核执行

    title: [CUDA 基础]6.2 并发内核执行 categories: - CUDA - Freshman tags: - 流 - 事件 - 深度优先 - 广度优先 - 硬件工作队列 - 默认流 ...

  6. OpenMP共享内存并行编程详解

    实验平台:win7, VS2010 1. 介绍 平行计算机可以简单分为共享内存和分布式内存,共享内存就是多个核心共享一个内存,目前的PC就是这类(不管是只有一个多核CPU还是可以插多个CPU,它们都有 ...

  7. OpenMP的简单使用教程

    转自:http://binglispace.com/2015/01/09/openmp-intro/ OpenMP的简单使用教程 今天有幸参加了一个XSEDE OpenMP的workshop讲座,真是 ...

  8. 并行计算之OpenMP中的任务调度

    本文参考<OpenMP中的任务调度>博文,主要讲的是OpenMP中的schedule子句用法. 一.应用需求 在OpenMP并行计算中,任务调度主要用于并行的for循环.当for循环中每次 ...

  9. 并行计算之OpenMP入门简介

    在上一篇文章中介绍了并行计算的基础概念,也顺便介绍了OpenMP. OpenMp提供了对于并行描述的高层抽象,降低了并行编程的难度和复杂度,这样程序员可以把更多的精力投入到并行算法本身,而非其具体实现 ...

随机推荐

  1. Four Operations---hdu5938(暴力)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5938 题意:给一个不超过20位并且大于2位的数字字符串(只包含1-9)然后找到适当的位置依次放入&qu ...

  2. Java学习-038-JavaWeb_007 -- JSP 动作标识 - plugin

    plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet&q ...

  3. chem02-- ajax登录

    1.ajaxLogin.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

  4. 记录:在老XPS1330上安装CentOS7

    下图是设置时的图片,注意分区设置. 下图是安装成功的画面. 下图是在Gnome桌面环境打开Firefox上本博客的画面. 注意点: 1.安装时没啥特殊的,就两点,一是要分区设置好,图省事就让自动分区: ...

  5. 浅谈Java回调机制

    像许多网上介绍回调机制的文章一样,我这里也以一个现实的例子开头:假设你公司的总经理出差前需要你帮他办件事情,这件事情你需要花些时间去做,这时候总经理肯定不能守着你做完再出差吧,于是就他告诉你他的手机号 ...

  6. iOS腾讯百度面试题

  7. delegate and event

    事件是特殊的委托 委托:第一个方法注册用“=”,是赋值语法,因为要进行实例化,第二个方法注册则用的是“+=”   修饰符应该public的时候public,应该private的时候private 事件 ...

  8. 神奇的计算器dc和bc

    神奇的计算器dc和bc Linux就这个范儿 P244http://baike.baidu.com/link?url=YlTtivBfc1tfzreeUQoe8D0C6yqwbZGqnmlObq1hj ...

  9. Android 回到底部和返回顶部实现

    效果 准备四张图片资源 首先XML布局 我们采用FrameLayout布局 代码: <?xml version="1.0" encoding="utf-8" ...

  10. div元素呈圆环排列

    <style> .path { width: 300px; height: 300px; padding: 20px; border-radius: 50%; background: rg ...