我感兴趣的是不同的硬件选择对以下用例的影响有多大:
- Python 编程:使用 numpy 数组进行大量繁重的数学计算
- Python 和 Pandas 中的数据应用程序,使用几 GB 的数据
我将能够使用 Threating 模块并行化其中的少数应用程序。但大多数应用程序的逻辑不允许这样做。
以下两种硬件配置/扩展对我的目的有多重要?
- 2.3 Ghz 与 2.7 Ghz
- 6mb L3 与 8mb L3
答案1
假设您谈论的是当前一代的 Macbook 或 Macbook Pro,您提到的两种型号(2.3 GHz,6 MB 三级缓存 vs. 2.7 GHz,8 MB 三级缓存)之间的性能差异大约为 2% 到 15%,具体取决于具体的工作负载。这绝对不是什么惊天动地的事情。但这完全取决于您的数据计算所需的时间。我提出的 2% 到 15% 这个数字来自于我在评论和基准测试中读到的同一代具有不同时钟频率的现代(Ivy Bridge 和 Haswell)笔记本电脑级处理器。通常,在非常具体的综合基准测试中,最慢和最快的处理器之间的单线程性能差异约为 25%;在平均情况下为 10-15%;在某些基准测试中,这些基准测试实际上根本不会对单线程性能造成负担(或在系统其他地方出现瓶颈,例如 I/O),差异为 2% 或更少。
举一个荒谬的例子,如果你的 numpy 数组计算在 2.3 GHz 处理器上需要 100 万年,那么减少 15% 可以为你节省15万年——或者大约只要智人一直在胡闹。
显然,如果你的寿命是 200 万年,那么减少 15 万年将带来巨大的变化。你甚至可以在临终前进行两次计算。
另一方面,如果你的计算在大多数现代 CPU 上几乎是即时运行的,那么增加 15% 的性能根本无关紧要。以运行 Google Chrome 为例。你会注意到任何可察觉的差异在运行搭载这两种不同处理器的当前一代 MacBook 时,网页和视频的加载速度有何不同?我非常怀疑您是否能够察觉到其中的差别。但是如果您开始加载一个需要花几个小时来解析的 24 GB HTML 文件,那么差异可能会开始累积到可测量的时间。
最终,当你处理涉及计算密集型算法且需要花费数毫秒才能完成的任务时,你要么牺牲时间,要么牺牲金钱。如果你使用较慢的处理器,你将等待更长时间,但花费较少。如果你使用较快的处理器,你将支付更多,因为不必等待那么长时间。