我有一个关于使用OpenMP(使用C)的简单问题,我希望有人可以帮助我.我在下面添加了一个小例子来说明我的问题.

#include

#include

#include

#include

using namespace std;

int main(){

srand(time(NULL));//Seed random number generator

vectorv;//Create vector to hold random numbers in interval [0,9]

vectord(10,0);//Vector to hold counts of each integer initialized to 0

for(int i=0;i<1e9;++i)

v.push_back(rand()%10);//Push back random numbers [0,9]

clock_t c=clock();

#pragma omp parallel for

for(int i=0;i

d[v[i]]+=1;//Count number stored at v[i]

cout<

for(vector::iterator i=d.begin();i!=d.end();++i)

cout<

return 0;

}

上面的代码创建了一个向量v,它包含[0,9]范围内的10亿个随机整数.然后,代码循环通过v计算每个不同整数的实例数(即,在v中找到多少个,有多少两个,等等)

每次遇到特定整数时,通过递增向量d的适当元素来计算它.因此,d [0]计算多少个零,d [6]计算多少个六,依此类推.到目前为止有道理吗?

我的问题是当我尝试使计数循环并行时.如果没有#pragma OpenMP语句,我的代码需要20秒,但是使用pragma需要60秒.

很明显,我误解了一些与OpenMP相关的概念(也许是如何共享/访问数据的?).有人可以解释我的错误,或者指点我用一些有见识的文献和适当的关键词来帮我搜索?

openmp 并行 速度更慢_OpenMP和C并行for循环:为什么我的代码在使用OpenMP时会变慢?...相关推荐

  1. 串行通信比并行通信的速度更高

    串行通信比并行通信的速度更高 "众人拾柴火焰高"是句老话,但电脑领域却发生了多根线比不过1根线的怪事.无论从通信速度.造价还是通信质量上来看,现今的串行传输方式都比并行传输方式更胜 ...

  2. 行通信比并行通信的速度更高

    串行通信比并行通信的速度更高 "众人拾柴火焰高"是句老话,但电脑领域却发生了多根线比不过1根线的怪事.无论从通信速度.造价还是通信质量上来看,现今的串行传输方式都比并行传输方式更胜 ...

  3. 串行通信速度一定比并行通信速度“更快”吗?

    为什么USB要用串行通信而不是用并行呢? 来自:http://zhidao.baidu.com/question/293842108.html?fr=qrl&cid=93&index= ...

  4. 有力度、有速度更有温度,亚马逊献上史上最长黑五狂欢季

    随着海淘大军的崛起和头部电商企业的推广造势, "黑五"在中国已经成长为新中产最为期待的购物狂欢节之一,这其中,自然少不了"黑五"扛旗人亚马逊的功劳.不夸张的说, ...

  5. mysql 多线程并行复制_【MySQL】开启并行复制

    [MySQL]开启并行复制 一.介绍 在官方的 5.6 版本之前,MySQL 只支持单线程复制,由此在主库并发高.TPS 高时就会出现严重的主备延迟问题. 如果备库执行日志的速度持续低于主库生成日志的 ...

  6. NVIDIA CUDA 高度并行处理器编程(七):并行模式:前缀和

    并行模式:前缀和 背景 简单并行扫描 效率 高效的并行扫描 更大长度的并行扫描 背景 前缀和(prefix sum)也叫扫描(scan),闭扫描(inclusive scan)操作对 n 元数组[x0 ...

  7. python 多线程并行 矩阵乘法_python实现简单的并行矩阵乘法

    python实现简单的并行矩阵乘法 python实现简单的并行矩阵乘法 本文采用的矩阵乘法方式是利用一个矩阵的行和二个矩阵的列相乘时不会互相影响.假设A(m,n)表示矩阵的m行,n列.那么C(m,m) ...

  8. [计算机视觉]-从ShuffleNet V2来看,为什么有些FLOPs小的模型在实际推理过程中所花费的时间更长/速度更慢?

    惯例资源 论文地址 1.简介 相对于传统卷积方式,目前如分组卷积,空洞卷积,深度可分离卷积等,这些新型的卷积方式可以有效的降低模型的FLOPs,然而在实际设备上,由于各种各样的优化计算操作,导致计算量 ...

  9. 有bug!用Pytorch Lightning重构代码速度更慢,修复后速度倍增

    选自Medium 作者:Florian Ernst 机器之心编译 编辑:小舟.陈萍 用了 Lightning 训练速度反而更慢,你遇到过这种情况吗? PyTorch Lightning 是一种重构 P ...

  10. 【Java代码】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升源码分享(并行流+多线程+泛型)

    1.分析 算法详细流程可查看<道格拉斯抽稀算法流程图解+使用JDK8方法实现+详细注解源码>经典的 D-P 算法描述如下[红色部分用于辅助理解 可忽略]: 连接当前矢量曲线首尾点a.b,该 ...

最新文章

  1. 关于Linux中权限列中的加号及点的深度探索
  2. ESP8266在线视频网址
  3. 浅谈微信小程序生命周期
  4. 让Dapper支持读写分离
  5. sonarqube查看问题
  6. 在mysql中加载并执行sql文件
  7. mysql数据库索引回表_简述 MySQL 数据库的覆盖索引与回表
  8. 决策树算法小结(三) CART原理及代码实现
  9. 智能锁行业安全分析报告
  10. android系统裁剪方法
  11. on one's own用法
  12. CSDN日报191021:我与CSDN的这十年——笔耕不辍,青春热血
  13. BZOJ2959长跑——LCT+并查集(LCT动态维护边双连通分量)
  14. python 直方图 横向_python绘制直方图
  15. oCPC实践录 | 随你千变万化,oCPC PID控制(1)
  16. MySQL 批量插入数据,一次插入多少行数据效率最高?
  17. hdf heg 批量拼接_python调用HEG工具批量处理MODIS数据
  18. Python自动化办公系列-Python添加Word段落
  19. 软考:净现值NPV、回收期、收益率计算方法
  20. 重新定义移动办公 做企业需要的一站式协同

热门文章

  1. 手机组态软件 APP监控台达PLC C#全套源代码
  2. python实现谷歌翻译
  3. BT601、BT656和BT.709、BT1120
  4. 大数据技术原理与应用学习笔记(五)
  5. 黑苹果efi引导文件大全_经历了无数次失败以后,我终于“吃”上了黑苹果,经验分享...
  6. Java疯狂讲义读书笔记第五章
  7. 网易云API服务搭建
  8. centos分区方案
  9. 如何在物联网低代码平台中使用数据字典功能?
  10. 小米 admob广告 ID_3月产品更新如何做好再营销广告归因!