本文摘要(由AI生成):
本文介绍了基于COMSOL Multiphysics的常用配置选择,包括CPU和内存两个方面。在CPU选择方面,文章提到了不同类型CPU的特点和适用场景,如高端CPU适合寻址大量内存和并行运行多个仿真,而入门级CPU适合求解单个模型。文章还讨论了CPU的时钟频率、高速缓存和内核数对性能的影响。在内存选择方面,文章强调了足够内存对有限元运算的重要性,并提供了通过测试模型来预测内存需求的方法。此外,文章还提到了内存安装方式对计算性能的影响,建议根据计算机的主板结构和内存容量进行合理的内存分配。
COMSOL是一款功能强大的多物理场仿真软件, 核心产品可以轻松实现建模流程的各个环节,与附加模块结合使用时可进一步扩展建模功能,用来分析电磁学、结构力学、声学、流体流动、传热和化工等众多领域的实际工程问题。
下面就基于 COMSOL Multiphysics 从常用配置进行一些讨论,希望对大家的选择提供一些参考建议。
首先让我们来看看计算机的大脑:CPU,它的类型、基频、缓存、核数,以及使用的数量等都是需要考虑的。
CPU 类型
不同的 CPU 架构提供不同的特性集,其价格也存在显著差异。
高端 CPU(如,英特尔® 至强® Gold 和 Platinum 或者 AMD® EPYC®)处理器采用 CPU 互连技术,使每台计算机支持多个 CPU,并允许 CPU 之间相互通信,以访问大量内存。这些处理器具有最大内存带宽,能够在内存与处理器之间来回快速传输大量数据。如果您需要寻址大量内存,或者计划连续并行运行多个仿真,则此类 CPU 是最理想的选择。
中端 CPU(如,英特尔® 至强® W 或 AMD® Ryzen™ Threadripper™)处理器没有 CPU互连结构,因此对于单 CPU 计算机来说是不错的选择。它们具有与高端系统相当的时钟速度和内核数,是一种具有吸引力的全方位选择。
入门级 CPU(如,英特尔® 至强® E 处理器)具有两个内存通道,没有 CPU 互连结构,因此无法像上述 CPU 那样处理大量的内存。此类 CPU 的内存带宽最低,但可以具有较高的时钟速度。它们不是并行运行多个仿真的理想选择,但通常可以用来非常快速地求解单个模型。
时钟频率
较高的时钟频率通常会具有较高的性能和速度,如果两台计算机的所有其他硬件规格都相同,则时钟频率高的那一台通常具有更快的计算速度。
高速缓存
高速缓存直接内置在处理器中,缓存通常是越大越好。在所有其他因素都相同的情况下,缓存较大的机器将表现出更好的性能。
内核数
处理器中的内核越多,一次可以执行的并行线程就越多,这就是多线程处理。在默认情况下,COMSOL 将自动利用所有可用的内核。不过凡事无绝对,过多的内核参与运算,虽然会加快计算速度,但由于多核之间也需要交换数据,因此有可能会消耗较多的时间在通讯上面,特别是对于那些没多大计算量(自由度少)的模型尤其如此。总结下来就是,一般来说,内核越多可能越好,这在并行运行多个模型或使用 PARDISO 直接求解器时尤其如此,但如果计算量小,或者成本控制严格,六核或八核也许是一个比较好的全方位选择。
内存是计算机的重要组件之一,通常计算机上的绝大多数程序都是在内存中运行的,它的强弱和大小影响着计算机的整体能力。对于我们进行有限元运算而言,最重要的一个因素是,要有足够的物理内存来求解您要处理的最大模型。如果没有足够的内存,那么无论您选择什么样的硬件,计算机的运行速度都会明显下降,甚至无法完成计算。
内存数量
虽然要求很简单,比我们要求解的最大模型所需的量大就可以了。然而,到底这个限度是多少呢?
一般情况下,我们可以通过求解一些与待求解的最大模型相似,但规模更小的模型来预测内存需求。测试模型包含的物理场与您要在最大模型中求解的相同,然后我们可以使用不同数量的网格来建模并进行计算。完成求解后,查看每个计算所需的内存量,拟合为 A x (dof)^N 形式的表达式,其中 A 和 N 是拟合系数,dof 是自由度数。之后就可以根据这个公式来估算一下最大模型需要多少内存了。
不过一定要注意,对于不同的模型类型,内存使用率与自由度之间的关系存在巨大差异,因此,我们可能需要为待求解的每一种模型重复此过程。还要注意,如果内存量远远超过实际需要的量,也并没有什么好处,只是多少感觉有点浪费。
内存安装方式
内存对计算性能的影响,在很大程度上还取决于内存的安装方式。所有计算机均通过多通道内存总线访问安装的内存。如果选择了错误的安装方式,内存速度可能会降低。例如,假设有一台具有 16 个插槽的四通道单 CPU 计算机,每个通道都对应有四个内存插槽,如下面的示意图所示。
通常情况下,四通道最好是正好匹配,如果出现某个通道与其他通道不同,就无法充分利用多通道的优势,相反还会减速。主板供应商通常都会提供此信息。举例来说,如果要在上图所示的系统中安装 64 GB 内存,合理的做法是可以安装四个 16GB 或八个 8GB 的内存条,并平均分配到各个通道,即各插一条 16GB 或者各插两条 8GB。注意,可能有些人觉得