在多核系统上理解gcc优化-o3

在多核系统上理解gcc优化-o3,gcc,optimization,parallel-processing,multicore,serial-processing,Gcc,Optimization,Parallel Processing,Multicore,Serial Processing,我目前正在比较四核处理器上一些代码的串行和并行实现。我想了解/衡量的一件事是串行代码在单核上运行时的性能 当我编译串行代码时,我使用了gcc的-O3选项,一开始我注意到串行代码没有做得太糟糕。然而,我注意到,当我在一个内核上运行另一个计算密集型进程时,串行版本的性能会下降 以下是一些数字: Total Time elapsed: 1s, 233ms <- only serial code is running Total Time elapsed: 1s, 238ms <- only

我目前正在比较四核处理器上一些代码的串行和并行实现。我想了解/衡量的一件事是串行代码在单核上运行时的性能

当我编译串行代码时,我使用了gcc的-O3选项,一开始我注意到串行代码没有做得太糟糕。然而,我注意到,当我在一个内核上运行另一个计算密集型进程时,串行版本的性能会下降

以下是一些数字:

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

经过的总时间:1s,233ms
-O3
在一个以上的磁芯上不存在

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