腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(464)
视频
沙龙
1
回答
OpenMP
减
慢了
不相关
的
串行
循环
、
、
、
、
我有两个无关
的
for
循环
,一个是
串行
执行
的
,另一个是使用
OpenMP
并行构造执行
的
。 我使用
的
OpenMP
-Thread越多,下一个
串行
代码就会变得越慢。该编译器是VisualStudio 2019中
的
最新版本。在RelWithDebugMode中编译(来自CMake,包括/O2和/
openmp
)。然而,当我从并行部分中删除除
循环
之外
的
几乎所有
浏览 28
提问于2021-02-15
得票数 2
回答已采纳
1
回答
如何用
openmp
一次生成线程
、
、
、
我在我
的
程序中使用
openmp
,但是它没有加快速度,而是减
慢了
速度。我猜这是因为每次在
循环
openmp
中都会产生线程。是否有办法在程序中生成一次线程。
浏览 1
提问于2012-05-15
得票数 1
2
回答
如何处理
OpenMP
线程池争用
、
我正在开发一个同时使用粗粒度和细粒度多线程
的
应用程序。也就是说,我们在线程池上手动管理大型工作单元
的
调度,然后在这些工作单元中,某些函数利用
OpenMP
进行更细粒度
的
多线程处理。我们通过在开销最大
的
循环
中有选择地使用
OpenMP
实现了收益,但担心在向开销较低
的
循环
中添加
OpenMP
块时会引起对
OpenMP
工作池
的
争用。有没有一种方法可以通知
OpenMP
,如果池可用
浏览 0
提问于2010-04-22
得票数 1
2
回答
有没有一个程序可以作为并行程序正确执行,但不能作为顺序程序执行?
、
、
OpenMP
规范在“执行模型”部分说明了以下内容: "... it is possible and permitted to develop a program that executes correctly那么这种程序
的
一个例子是什么呢?
浏览 0
提问于2013-06-09
得票数 1
回答已采纳
2
回答
为什么要在并行构造之外初始化一个约简变量呢?
、
、
、
、
我正在学习如何将我
的
Fortran代码移植到
OpenMP
。当我阅读在线教程(参见)时,我遇到了一个问题。首先,我从第28页了解到,还原变量
的
值从第一个线程到达子句
的
那一刻起就没有定义,直到操作完成为止。据我理解,这个语句意味着,在程序到达并行结构之前,是否初始化约简变量并不重要,因为它是在操作完成后才定义
的
。但是,同一教程第27页上
的
示例代码在并行构造之前初始化约简变量。有人能告诉我哪种治疗是正确
的
吗?谢谢。sum = 0.0 !
浏览 0
提问于2014-04-10
得票数 1
回答已采纳
2
回答
如何解读英特尔VTune放大器
的
锁定与等待
、
、
、
我试着用
OpenMP
并行化我
的
C++程序
的
一个热点,但它不能扩展。虽然在一个线程上需要25秒,但在两个线程上我只达到了21秒。我使用英特尔VTune放大器进行了锁定和等待分析,但它对我没有真正
的
帮助。看起来是这样
的
:我尤其不明白mkl_blas_dcopy是从哪里来
的
,以及它叫它什么(即使我删除了并行区域,我也有这个调用和时间线上
的
第二个线程)。我试图从自上而下
的
树中获取更多
的
信息,但这对我并没有真正
的
帮
浏览 3
提问于2014-11-20
得票数 1
2
回答
用于分布式内存集群
的
OpenMP
、MPI或OpenMPI?
、
、
、
、
我想在一个100节点
的
分布式内存集群中并行一个C
串行
代码。该星系团由25个叶片组成,每个叶片由infiniband每个核心4颗。在我使用PBS在不同
的
节点之间传播程序
的
几个
串行
运行之前。现在我想知道: 我在哪里可以找到例子/教程?对于具有主For
循环
的
简单
串行
代码,
浏览 2
提问于2010-12-15
得票数 5
回答已采纳
1
回答
如何在剩余线程完成工作时处理任务
、
、
假设我有一个运行某些操作
的
OpenMP
2.0for
循环
:for (int i = 0; i < lim; ++i){}函子threadSafeFunc是完全线程安全
的
,所以在所有这些迭代完成之后,我不想连续地运行它,我想从
OpenMP
循环
中获得完成
浏览 2
提问于2014-01-29
得票数 0
回答已采纳
1
回答
如何在C/C++中寻找for
循环
的
串行
执行和并行执行
的
折衷方法?
、
、
、
我有一个相当大
的
应用程序,它有大量
的
OpenMP
并行
循环
,其中我使用#语用omp并行执行
循环
并行地运行。然而,我注意到,使用较小
的
迭代来运行
循环
可能不值得并行运行。因此,我决定使用
OpenMP
if子句来决定
串行
执行还是并行执行。 另一方面,每个
循环
的
迭代成本取决于程序输入和
循环
计算数据类型(例如。模板功能)。换句话说,我似乎需要一种方法,能够找出是否值得在运行时预先并行一个<em
浏览 1
提问于2021-05-31
得票数 0
1
回答
如何使用
OpenMP
标志使其成为并行处理?
、
、
、
如何使用
openmp
标志一次使用所有处理器在代码下面运行? //Need parallel processing for this code.
浏览 4
提问于2016-11-16
得票数 0
1
回答
迭代器
的
openmp
限制
、
、
我试图在大量迭代中运行
openmp
for
循环
,当它遍历
的
元素数达到某个值(特别是2147483647 )时,它似乎就会消失。在这个数量
的
元素上执行一个
串行
循环
没有问题,所以我只能假设它与一些内部
openmp
索引有关。/2);for(int i=2;i<=maxVal;i++){} 对于n= 33,τ不改变,显示
循环
没有运行
浏览 5
提问于2013-11-08
得票数 0
回答已采纳
2
回答
OpenMP
-“#语用omp关键”
的
重要性
、
、
、
、
因此,我开始使用
OpenMP
(多线程)来提高矩阵乘法
的
速度,我目睹了一些奇怪
的
事情:当我关闭
OpenMP
Support (在Visual中),嵌套
的
for-
循环
完成速度快了2倍。因此,我删除了“#语用omp关键程序”,以测试它是否显著减
慢了
进程,并且进程比之前快了4倍(使用
OpenMP
Support On)。 我
的
问题是:在嵌套
循环
中很重要吗?
浏览 3
提问于2021-06-23
得票数 1
回答已采纳
4
回答
OpenMP
开销
、
我已经使用
OpenMP
和Intel TBB并行化了图像卷积和lu分解。我正在1-8个内核上测试它。但是,当我通过分别使用set_num_threads(1)和task_scheduler_init InitTBB(1)指定一个线程,在
OPenMP
和TBB中
的
1核上进行测试时,由于TBB开销,TBB性能与顺序代码相比略有下降,但令人惊讶
的
是,
OpenMP
在单核上没有显示任何开销,并且性能与顺序代码完全相同(使用英特尔O3优化级别)。我使用
的
是
OpenMP
循环</e
浏览 0
提问于2011-09-05
得票数 2
3
回答
嵌套
循环
中使用
OpenMP
的
性能问题
、
、
我使用以下代码,它包含嵌套在另一个for -
循环
中
的
OpenMP
并行for
循环
。不知何故,这段代码
的
性能比顺序版本
慢了
4倍(忽略#语用omp并行)。我听说,有时
OpenMP
会保持线程旋转。我还尝试设置OMP_WAIT_POLICY=active和GOMP_SPINCOUNT=INFINITE。当我移除
openMP
杂注
浏览 6
提问于2015-02-12
得票数 0
回答已采纳
3
回答
更好地使用
openmp
、
我正在尝试实现
openMP
,但就像我之前
的
许多其他帖子一样,结果只是让代码变
慢了
。受前面答案
的
启发,我从使用#pragma omp parallel for转到了#pragma omp task,希望能避免一些开销。不幸
的
是,并行代码
的
速度仍然是
串行
代码
的
两倍。(something) #pragma omp taskwait } } 只有两个for
循环<
浏览 0
提问于2012-02-20
得票数 2
2
回答
依赖于编译器
的
OpenMP
min/max约简实用化
、
、
我
的
C++代码使用
OpenMP
指令,需要使用GCC和VisualStudio2019编译。
OpenMP
min/max约简操作符在
OpenMP
3.1中引入,但VisualStudio2019 中引入。我希望我
的
代码在Visual下恢复为
串行
循环
,但我理解如下所示:#ifdef _MSC_VER #define OMP_MIN(expr
浏览 3
提问于2020-02-19
得票数 1
回答已采纳
1
回答
一个线程比顺序版本慢
的
OpenMP
、
、
我使用
OpenMP
实现了背包(gcc版本4.6.3) } }一个线程= 1.7s
的
openmp
的
执行时间(开销= 40%) 在这两种情况下使用相同
的
编译器优化标志(-O3)。有人能解释一下这种行为背后
的
原
浏览 1
提问于2014-02-24
得票数 1
回答已采纳
4
回答
使用
openmp
在地图上迭代
我尝试使用
openMP
遍历c++中
的
地图,但收到三条错误消息map< int,string >::iterator datIt;for(datIt=dat.begin();dat
浏览 0
提问于2012-01-13
得票数 8
回答已采纳
3
回答
用于
循环
增量语句处理
的
openMP
、
、
、
、
我想用
openMP
优化这个for
循环
,但是'nind‘变量被紧密绑定到for
循环
。我不知道,因为我也在检查一个条件,所以有时它不会进入if,而是跳过增量,或者进入增量nind。
openMP
线程会先递增nind变量,再先递增nind。有没有办法解绑它。(“绑定”我
的
意思是只能
串行
实现)。
浏览 0
提问于2016-02-16
得票数 1
5
回答
Boost
的
MPI,
OpenMP
,TBB,还是别的什么?
、
、
、
、
我完全是一个多核编程
的
新手,但我确实知道如何编写C++。对于那些使用过这3个API (或任何其他API)的人,你能告诉我它们之间
的
区别吗?有没有需要考虑
的
因素,比如AMD或Intel架构?
浏览 2
提问于2010-05-23
得票数 5
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
优化串行处理代码,获取OpenVPX数字信号处理模块最佳性能,拓展串行算法在计算密集型领域应用
Shell 脚本实现并发多进程 了解一下
单片机原理与接口技术
《父与子的编程之旅:与小卡特一起学Python》读书笔记
微服务下,接口性能优化的一些总结
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券