xiaoxin181 2021-05-14 11:15 采纳率: 0%
浏览 94

openmp c++多线程并没有加速程序运行?

 场景是一个大的集合分成了几百几千个小的集合,然后每个集合都调用func1进行运算,结果放到一个全局的vector,代码可以简要如下:

func1函数内还有一些独立的操作在这里省略了,只列出了可能线程冲突的部分

通过打印 for 循环里的局部变量 i,看到了是乱序的,说明应该是启用了多线程吧?但是和串行的执行时间基本一致,是为什么呢?

 

我试了开辟vector足够大,去掉了锁,但也是没有加速成功

  • 写回答

5条回答 默认 最新

  • 快乐鹦鹉 2021-05-14 11:17
    关注

    那如果瓶颈在锁的写入时间的话,你目前方法也解决不了吧,等待锁的过程不又成了单线程了么

    评论

报告相同问题?

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏