【发布时间】:2020-05-23 08:51:13
【问题描述】:
我正在笔记本电脑上使用 Python 进行一些模拟,以完成我的硕士学位项目,最近发现我的台式电脑在执行完全相同的代码时具有与笔记本电脑几乎相同的性能。问题是我的笔记本电脑有 i7 处理器,而台式电脑有 i3。更具体地说:
笔记本电脑:i7-5500U @2.40 GHz(64 位,双核)
台式机:i3-4150 @3.50 GHz(32 位,一个核心)
我不是计算机科学专家,也不研究它,这让我很惊讶。我知道核心的数量应该不会影响性能,因为python只使用一个,但它真的都依赖时钟频率吗?如果是的话,拥有具有这种时钟频率的 i7 有什么好处?我还缺少其他数据吗?预测计算机性能需要考虑哪些数据?
【问题讨论】:
-
当然,时钟频率很重要。但是,例如,系统架构(64 位与 32 位)以及许多其他事情也会如此,这取决于您在做什么。请注意,Python 程序绝对可以利用多核,因此再次确实取决于。这里没有足够的信息来说明任何有用的信息。
-
被检查的程序只是使用 numpy 来执行随机采样和多维数组操作。通常我将数字的数据类型设置为“int8”,以节省内存,因为数组非常大。没有多线程或类似的东西。架构如何影响性能?
-
嗯,numpy 大量依赖于多线程代码,具体取决于确切的 BLAS/LAPACK 后端。这是 Python 代码利用多核的典型示例。
-
如果使用多线程,双核处理器不应该性能更好吗?或者这意味着,如果没有两个核心,i3和i7之间的比较会更尴尬?
-
很难说没有更多信息。请注意,如果您使用的是 uint8,则它小于任一架构的字长,这通常会在对原始数字类型进行算术等操作时减慢您的速度,但很难完全预测,因为您的数组大小和缓存大小也将发挥重要作用。您正在使用多少内存?您是否尝试过使用原生尺寸?
标签: python performance processor