我想计算一些简单的c程序在不同的多核处理器上的运行时间。但正如我们所知道的,随着技术的进步,新的处理器正在采用更多的方法来加快计算速度,如时钟速度等。我如何规范这种速度变化(以滤除除多核之外的其他先进方法的效果),因为我只想以处理器核心数为基础得出结果。在不同的多核处理器上测试速度的规范化
回答
决定一套已知的参考硬件,运行某种可重复的参考基准,并获得一个可比较的已知值。然后,您可以针对其他系统运行此基准,以了解如何扩展您从目标基准测试中获得的值。
您的参考基准越接近您的实际应用,缩放结果越准确。您可以将您的应用程序的单个确定性运行(单个代码路径,可能是多次执行的平均值)用作参考基准。
如果您试图完全针对不同的系统,而不是简单地在同一个系统上使用不同数量的内核,则这个答案更有意义。 – 2011-03-23 11:00:34
在Linux下,可以使用内核命令行参数maxcpus=N
进行引导,以将机器限制为只有N个CPU。有关详细信息,请参阅内核源代码中的Documentation/kernel-parameters.txt
。
大多数BIOS环境还具有关闭超线程的功能;取决于你的基准,HT可能会加快或减慢你的测试;控制HT将是理想的。
因为我将在我的dep服务器上执行dis,所以不建议重新启动。谷歌也给了我博客http://pundiramit.blogspot.com/2010/07/how-to-disable-cpu-cores-in-multicore.html它提到的数据,你可以使用这个命令做同样的事情 $ sudo sh -c“echo'n'>/sys/devices/system/cpu/cpu1/online” 在这个方法中是否存在任何问题? – Manish 2011-03-23 12:37:06
看起来它会起作用; 'driver'/base/cpu.c'函数'store_online()'似乎读取了'1'和'0',所以如果''n''不起作用,请试一试。 – sarnold 2011-03-23 19:45:45
如果我正确地理解了您,您正在尝试找到一种测量方法,可以从单处理器改进的进步中分离出缩放核心数的效果。恐怕这不太可能。例如。如果您将多核系统与该系统的单个核心进行比较,则可以获得非线性关联。由于有共享资源,例如内存总线。如果您只使用一个多核系统核心,则它可以使用完整的内存带宽,同时它必须共享多核心案例。类似的参数适用于许多共享资源:因为有高速缓存,总线,IO功能,ALU等。
您的问题是根据任何给定时间的活动核心数量自动调整核心频率。例如,AMD Phenom 6内核芯片工作频率为3.4GHz(或者有点类似),如果你的应用程序创建了3个以上的线程,则会降至2.8Ghz(或类似)。另一方面,英特尔使用一堆启发式技术来确定任何给定时间的正确频率。 但是,您可以随时通过BIOS关闭这些设置,然后根据时钟频率将结果进行比较。通常,人们测量千兆差距以获得可比较的结果。
- 1. 如何在多核处理器上进行基准测试
- 2. 多核处理器核心通信速度
- 3. PHP - IP规范化测试
- 4. 图像处理规范化
- 5. 多核处理器上的多线程
- 6. 如何使用Apache Solr处理不同的UTF-8规范化?
- 7. 在Pygame中,通过不同的fps值来规范化游戏速度
- 8. 多核处理器上的Android错误
- 9. W3C地理位置速度规范
- 10. Python多处理:子进程以不同的速度工作
- 11. 规范运行不同的配置同一套测试
- 12. 在我的内核上测试多播
- 13. 在ARM处理器上测试FPU
- 14. 在多核处理器上实时操作系统中的多线程调度
- 15. 规范化长度
- 16. show处理器速度
- 17. 用简单的Python脚本测试计算机处理速度
- 18. 在多核处理器中并行编程的性能测量
- 19. 多核处理器的多线程
- 20. C#多线程的速度测试
- 21. 有关多核处理器与单核多处理器的说明
- 22. Python的多处理速度问题
- 23. 为核心数据规范化或规范化字符串?
- 24. 通过测试规范到另一个测试规范
- 25. 如何在大型机器上处理大规模的反病毒测试
- 26. Linux调度程序如何调度多核处理器上的进程?
- 27. .NET文化是否以不同方式处理整数的规范表示?
- 28. 在不同的测试平台上测试多个Spice模型
- 29. 处理器速度的C程序
- 30. 在不同处理器中的不同分支预测结果
这是不合逻辑的,您想要测试不同CPU的并发性能,但只能改变可用内核的数量。只需获取16核主机并禁用核心,或使用进程关联性在1-16个活动核心之间进行测试。 – 2011-03-23 10:58:28