数值瓶颈

计算科学 计算物理学 硬件
2021-12-04 20:50:01

在台式计算机上,数值计算最重要的瓶颈是什么(RAM 与 CPU,单线程与多线程)?我对强相关凝聚态系统的精确对角化和其他方法(DMRG、DMFT)特别感兴趣。哪些计算资源会造成最大的限制?

背景:我的顾问正计划使用赠款购买新的台式机/工作站。我们可以访问集群,因此这将用于在调整代码以利用集群之前在中间规模上测试代码。

1个回答

购买用于科学计算的台式计算机时,需要考虑许多规格。在这些领域中的每一个领域,都存在完成工作所需的最低限度,并且或多或少有机会以更高的成本获得改进的性能。您应该考虑所有这些问题,但答案将针对您的特定项目。

  1. 操作系统。您打算运行 Linux、Windows 或 Mac OS 作为您的操作系统吗?您打算使用虚拟机还是双启动设置来运行多个操作系统?您更喜欢使用什么操作系统?由于仅在一种环境中运行的特定软件,您必须使用什么操作系统?

  2. 开源和许可软件。你想在你的电脑上运行什么软件?是否有您想要运行的特定开源或许可商业软件包?

  3. 磁盘空间。您需要多少磁盘空间?对于具有单个用户的典型台式机,普通的 2 TB 硬盘驱动器可能就足够了。但是,如果您处理非常大的数据集,您可能需要更多的磁盘空间来存储数据集。如果您有大量数据,RAID 设置可以提供更高的可靠性和性能。

  4. 磁盘性能。如果您的代码对磁盘执行大量 I/O,那么硬盘的读/写速度可能非常重要。在日常基础上,保存操作系统的磁盘的速度会对性能产生很大影响。您的选择范围从速度快但大小有限且每字节昂贵的固态驱动器 (SSD) 到速度较慢但最经济的磁盘驱动器。为操作系统使用 SSD 并为您的数据使用传统硬盘通常是一个很好的折衷方案。

  5. 内存 (RAM) 空间。根据数据集的大小,您的代码可能需要很少的内存,也可能需要大量的 RAM。您应该确保有足够的 RAM 来解决要解决的最大问题。

  6. 内存 (RAM) 速度。为台式计算机出售的 RAM 的速度范围不大,您可能不会选择它。

  7. 内存 (RAM) 通道和插槽。您计算机的内存子系统可以有 1、2、4、6 甚至 8 个内存通道,每个内存通道可能安装了 1、2 或更多 RAM 模块。例如,我使用的计算机有 4 个内存通道,每个通道有两个 DIMM 插槽。我在每个通道上有一个 8 GB DIMM,总共有 32 GB 的 RAM。可用内存带宽与实际使用的通道数量成比例增加,因此您希望至少拥有与内存通道一样多的 DIMM。我可以通过购买两个 16 GB DIMM 来省钱,但性能会更差。

  8. CPU 核心数。您可以在具有多达 30 个处理器内核的处理器上花费大量资金,但实际上通常很难利用多个内核,尤其是因为通常没有足够的内存带宽来保持内核繁忙。

  9. CPU 内核的速度。通常,代码的单线程部分最终会成为瓶颈。在此类工作负载上,较少数量的较快内核通常会胜过较多数量较慢的内核。如果您不确定您的代码在多个内核上的运行情况如何,那么您可能想要选择具有您能负担得起的最快内核的处理器,即使它们的数量会更少。

  10. 用于图形的 GPU。如果您对计算结果进行大量可视化,您可能需要高性能 GPU 来支持这些图形。

  11. 用于计算的 GPGPU。高性能 GPU 也可用于数值计算。如果您的软件已针对 GPU 进行了优化,或者您愿意投入大量精力让您的代码利用 GPU,那么您可能会考虑购买用于计算的 GPU。

请注意,NVIDIA 较便宜的 GPU 具有有限的双精度浮点性能 - 如果您需要双精度,那么您真的想要更昂贵的 Tesla 模型之一。AMD/Radeon GPU 也是一种选择,但对它们的软件支持要少得多。