首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gcc在多核系统上优化-o3的认识

gcc在多核系统上优化-o3的认识
EN

Stack Overflow用户
提问于 2013-10-07 02:59:35
回答 1查看 755关注 0票数 0

目前,我正在比较四核处理器上某些代码的串行实现和并行实现。我想了解/衡量的一件事是,当串行代码在单个核心上运行时,它是如何执行的。

当我编译串行代码时,我使用gcc的-O3选项,一开始我注意到序列代码做得不太差。然而,我注意到的一件事是,当我在其中一个核上运行另一个计算密集型进程时,串行版本的性能下降了。

以下是一些数字:

代码语言:javascript
运行
复制
Total Time elapsed: 1s, 233ms <- only serial code is running
Total Time elapsed: 1s, 238ms <- only serial code is running
Total Time elapsed: 2s, 128ms <- serial code run but other code is running on another core
Total Time elapsed: 2s, 220ms <- serial code run but other code is running on another core

我猜可能有后台进程运行在四个核心之一。但是,最好的情况是,在四核处理器上运行两个进程不应该使所有四个核都饱和。

我想知道的是,是否有理由相信O3过程中的某个步骤允许代码利用设置的四核,或者更准确地说,为什么假定的“串行版本”在其他内核可用时表现得更好?我试图理解GCC的文档,我收集到了一些有关线程的参考资料。但我并没有真正理解它,我想知道是否有人能帮助我准确地理解O3在利用多个核心时可能做什么或者不做什么。

就其价值而言,我使用的是Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz,并运行linux 13。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-10-07 03:05:02

-O3不会面对一个以上的核心。

您正在看到共享资源对处理器的影响:内存、带宽和缓存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19216446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档