关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
已结题
我用openmp对下面的循环进行了并行处理,为什么执行时间是串行的好几倍
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 微信扫一扫点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
追加酬金 (90%的用户在追加酬金后获得了解决方案)
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
加载中...
0条回答 默认 最新
报告相同问题?
提交
- 2021-08-03 17:58回答 1 已采纳 1、对人来说 10000 比较大了,但对现在的cpu来说,计算量太小,omp的开销比任务本身还大。2、把任务量换到10亿,同时计算中加入一些三角函数,再看看结果3、第二个并行域中的任务是三角计算。因为
- 2020-08-23 15:49回答 1 已采纳 不会有问题,一些线程会执行较少的次数。这么写可能会稍微影响性能,但是不会有什么错误。
- 2019-12-27 20:42回答 2 已采纳 其实并行多重循环这么写肯定是有问题的,内部循环变量j是共享的,被多个线程同时修改,那么就很有可能超出Njuncs,发生内存越界写入,**切记循环内的变量写入是并行的**。 应该把 j 声明为并行体中
- 2021-07-10 18:00qianbo_insist的博客 openmp debug下 int64_t taketime() { int64_t a = 0; for (int i = 0; i < 10000; i++) a++; return a; } int main(int argc, char* argv[]) { int64_t tmp; clock_t t1 = clock(); for (int i = 0; i ...
- 2021-11-06 21:58回答 1 已采纳 1、建议你给出示例代码,简单的能够体现你的问题的代码。2、假定大小数组,也就是形参大小为星号,程序没法直接获得它的长度(元素个数),因此没办法私有化。3、如果是自己的代码,建议改为假定形状数组,omp
- 2022-09-17 21:02回答 1 已采纳 这是vs的问题,貌似不支持task,用gcc就好。
- 2022-04-12 09:13回答 2 已采纳 有没有比较更大数据量级,比如1000万
- 2023-07-18 00:29禅与计算机程序设计艺术的博客 作者:禅与计算机程序设计艺术 1.1 并发编程概述 现代计算机系统都包含多核CPU,使得单个CPU在...由于存在着复杂性和性能要求,程序员需要对线程安全、数据共享等问题进行考虑,从而写出线程安全的代码。为了提升并
- 2019-12-09 15:40回答 1 已采纳 这个和内存锁定的模式可能有关系。我不是很了解arm和泥的os内核,但是可能arm上的内存竞争机制妨害了这种数组的访问。你可以尝试将for循环拆成访问多个2维数组,每个线程操作一个连续的地址,彼此不要重
- 回答 3 已采纳 找一个简单的2、3层的神经网络的代码,用openmp或者cuda来实现下。github以及google上搜索下
- 2018-09-21 07:01回答 2 已采纳 此类问题要么单步自己调试,要么做成可下载工程。。 问答已经把代码给完全破坏了,代码也太长了。。。码农都习惯编译 --调试---解决BUG!!!!
- 2019-09-26 05:54XIEXINGHUA2010的博客 OpenMP(Open Multi Processing)是由Open ARB发布的一种用于并行编程的规范,是建立在串行语言上的扩展,目前可以在C/C++/Fortran中使用。 OpenMP的格式非常简单,原理也不难。它的基本原理就是创建多个线程,操作...
- 2022-11-22 18:55回答 1 已采纳 括号换行, 放在宏后面括号的意义就不同了 #include <omp.h> #include <opencv4/opencv2/core.hpp> auto main()
- 2023-07-25 12:17Augstine Xyang的博客 通过学习SIMD、pthread&OpenMP和MPI以及GPU等可以进行并行优化计算的方法,并在高斯消元算法和特殊高斯消元算法上进行了实践,在普通高斯消元算法中,我通过对齐内存+AVX指令集+8线程OpenMP+非阻塞通信的流水线版本...
- 2024-01-05 12:03发狂的小花的博客 然而,OpenMP 本身并不是一种独立的并行语言,而是为在多处理器上编写并行程序而设计的编译制导指令和应用程序编程接口(API)。它可以在 C/C++ 和 Fortran中使用,并以编译器可识别的注释形式出现在串行代码中。...
- 2021-02-03 13:52Morizen的博客 1、编译器对OpenMP的支持 目前支持OpenMP的C/C++编译器... 在微软的VC8.0中,要将项目的属性对话框中“配置属性”下的“C/C++”下的“语言”页里,将“OpenMP支持”由否改为“是/(openmp)”即可。 2、 ...
- 2019-03-15 15:57Fm镄的博客 阅读SLAM代码时发现其中用到了一些OpenMP并行编程的知识,所以读了编不错的文章了解一下。 转自:https://www.cnblogs.com/hantan2008/p/5961312.html 我们目前的计算机都是基于冯偌伊曼结构的,在MIMD作为主要...
- 2016-10-14 17:23weixin_30878361的博客 在MIMD作为主要研究对象的系统中,分为两种类型:共享内存系统和分布式内存系统,之前我们介绍的基于MPI方式的并行计算编程是属于分布式内存系统的方式,现在我们研究一种基于OpenMP的共享内存系统的并行编程方法。...
- 2022-11-04 15:24敢敢のwings的博客 编译器根据程序中添加的pragma指令,自动将程序并行处理,使用OpenMP降低了并行编程的难度和复杂度。当编译器不支持OpenMP时,程序会退化成普通(串行)程序。程序中已有的OpenMP指令不会影响程序的正常编译运行。...
- 2016-09-29 15:44AllyLi0224的博客 由于项目需求,在三重循环内加入了并行... 在科学和工程应用中,许多程序都要在循环执行上花大量的时间,如Fortran中的do循环和C语言中的for循环,通过并行中的loop-level可以减少这些循环的运行时间。OpenMP提供了p
- 没有解决我的问题, 去提问
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器