是什么让计算机快速而强大地运行数值模拟?

计算科学 数值分析 并行计算 表现
2021-12-17 00:00:07

我需要比较两台计算机并决定我想要哪一台。我的目标是运行更快的模拟。目前的运行时间是 3.5 小时,我想尽可能地减少它。我正在运行的代码能够在多个处理器(并行)上运行。

我应该注意电脑的哪些规格?

内存?处理器数量?还有什么?最重要的是什么?

谢谢

2个回答

优化总是取决于代码的配置文件您应该通过适当的分析工具运行应用程序,以查看瓶颈在哪里——它通常是:

  • I/O-bound(花时间写入磁盘)- 可能不是你的情况。
  • CPU 密集型(在 CPU 操作中花费时间),这可能取决于数据吞吐量或计算时间。

如果您的数据结构和处理策略导致应用程序无法一次将数据全部加载到 RAM 中,您将受到影响。如果计算技术依赖于将大量数据移入和移出内存,您将遇到缓存问题。

在一个完美的世界中,您会将计算分解为尽可能多的独立任务,并一次将它们发送到尽可能多的处理单元 - 但是,您需要在现实世界中做出权衡。

如果您希望您的 PC 执行数值模拟,处理器显然是您应该注意的第一个组件。对于此类应用,Intel i7 和 Intel Xeon 常用于台式 PC,无意做广告。

当然,处理器的频率很重要,但请仔细查看 L1/L2/L3 缓存的规格,尤其是缓存的大小。大缓存很有趣(而且很昂贵)。这是一个重要的信息,因为缓存是处理器广泛使用的非常低延迟的内存访问,可用于特定优化(称为缓存优化)。你应该去特定的网站了解详细信息,主要是英特尔或 AMD 的网站,特别是处理器执行特定浮点算术运算、矢量化、硬件加速等的能力......很难说处理器是比另一个更快。但是,您可以通过查看此处的基准测试来了解 CPU 的整体性能

对于并行运行,重要的是内核数量。核心实际上是执行计算的组件。对于台式电脑,您可以有 1 个 8 核处理器或 2 个 4 核处理器,我无法解释区别。您还应该注意超线程的能力,它在某些情况下实际上可以使内核数量翻倍。但是请记住,在 16 核上运行代码并不总是比在 8 核上运行更快,它在很大程度上取决于代码的可扩展性和并行化的质量。

关于 RAM,它在很大程度上取决于您的代码需要存储多少数据。此外,不要忘记您应该能够对数据进行后处理,并且可视化软件通常需要大量 RAM。16Go 是科学应用的良好开端,但这是非常主观的。您可能需要像样的显卡来进行实时或高质量渲染。

当然,围绕所有这些,需要一个具有高速传输和(大)“快速读/写”硬盘驱动器的体面的主板。