平台: 所有平台 版本: 所有版本

问题描述

此解决方案描述了COMSOL如何利用多核计算机。188金宝搏优惠

解决方案

188金宝搏优惠COMSOL支持两种并行操作的交互模式:共享内存并行和分布式内存并行(群集支持)。所有COMSOL许可证类型都支持共享内存并行性,而分布式内存并行性需要浮动网络许可证。使用共享内存并行性可以利用计算机上的所有CPU插槽,但对于具有多个插槽的计算机,使用浮动网络许可证来利用计算机的全部容量有时是有利的;有关更多信息,请参阅混合计算:共享和分布式内存的优势。此解决方案专用于共享内存并行操作。有关分布式内存并行操作,请参阅解决方案1001.

共享内存处理或多线程对COMSOL计算的性能很重要。在描述多线程时经常使用的一些术语是188金宝搏优惠

  • 核心:A身体的具有多个处理器的计算节点在共享内存并行中使用的处理器核。
  • 加速:是作业运行速度的几倍N在特定计算节点上,与1个核进行比较。加速比取决于问题类型、使用的硬件和使用的硬件驱动程序。

窗户

在Windows平台上,COMSOL使用的处理器内核的默认数量是可用物理内核的总数。例如,如果您有一台2 x双核机器,默认情况下,COM188金宝搏优惠SOL Multiphysics进程将并行使用4个核。

如果希望COMSOL省去188金宝搏优惠一个或多个处理器内核,可以手动设置用于作业的内核数,可以通过启动COMSOL桌面并设置处理器数量选择权多核和集群计算偏好菜单

或者,在桌面上创建COMSOL可执行文件的新快捷方式,并对其进行修改,以设置所需的线程数。188金宝搏优惠

  1. 在桌面上创建一个新的快捷方式。
  2. 在快捷方式上单击鼠标右键,然后选择“属性”。
  3. 将目标字段更改为
    “C:\Program Files\188金宝搏优惠COMSOL\COMSOL55\Multiphysics\bin\win64\COMSOL.exe”-np 2
    如果你想让COMSOL只188金宝搏优惠使用两个内核。

Mac OS X

在Mac OS X上,只有在从终端启动COMSOL时,才能控制COMSOL使用的处理器内核数。默认行为是将所有可用的物理处理器188金宝搏优惠内核用于COMSOL Multiphysics应用程序。您可以在System Profiler应用程序中或通过使用sysctl hw。ncpu。您可以使用命令行开关覆盖默认行为。例如,从命令开始
/应用程序/COMSOL55188金宝搏优惠/Multiphysics/bin/comsol-np 2
.

Linux

COMSOL进程并行可用的内核数可以通过命令在某些系统上显示188金宝搏优惠
更多/proc/cpuinfo | grep proc

请注意,如果激活了超线程,则需要将上述命令报告的核心计数除以相关的超线程因子(2),以获得物理核心计数。COMSOL不受益于超温阅读;如果COMSOL启动时线程数超过物理CPU核数,性能将下降。188金宝搏优惠

在Linux上,默认行为是为COMSOL Multiphysics应用程序使用所有可用的物理内核。通过使用命令行开关,可以覆盖默认行为。例如,从命令开始188金宝搏优惠188金宝搏优惠comsol-np 2.

超读

188金宝搏优惠COMSOL目前没有从超读中受益。COMSOL将只使用系统上物理CPU核数量的线程。结果是,如果超线程处于活动状态,Windows任务管理器将显示COMSOL进程最多50%的CPU利用率。这是意料之中的,并不意味着CPU利用率太低。建议启用超线程,以便同时运行的其他应用程序可以利用它。

mpmode选项

mpmode的“周转”和“吞吐量”值与KMP的OpenMP运行时设置直接相关库环境变量。-mpmode选项覆盖系统设置(如果是KMP库未设置)。有关周转和吞吐量模式的更多信息,请参阅上的“执行模式”部分https://software.intel.com/en-us/node/522689.
默认情况下,所有选项都使用KMP_BLOCKTIME=200。当完全未设置-mpmode时,周转也是默认值。COMSOL不使用“串行”模式。COMSOL为-mpmode列出的第三个值是“所有者”。owner选项类似于Turnound,区别在于owner还指定了一个线程关联,该关联针对计算机188金宝搏优惠上的套接字数量进行了优化,因此owner比Turnound更具攻击性。

努马意识

188金宝搏优惠COMSOL了解NUMA(非统一内存访问)系统。NUMA系统可以是具有多个CPU插槽的系统,也可以是具有基于多个分片的CPU的系统。这些系统的特点是可以通过不同的访问时间访问RAM内存模块。COMSOL会自动检测可用插槽的数量。可以通过在Preferences/Multicore和Cluster Computing中指定套接字的数量来应用手动更改。在命令行中,可以通过标志-numasets来设置NUMA集合(套接字)的数量 .NUMA集合的数量越大,意味着在模拟运行时,操作系统将线程从一个核心移动到另一个核心的可能性越低。

故障排除

我的新服务器有48个内核,但是当线程数增加到一定数量以上时,加速效果很差。有什么好处?

  1. 问题的大小对加速很重要。对于非常大的模型(比如几百万自由度),加速效果更好。如果使用非常小的型号,那么在使用多个内核时,加速比会受到限制。此外,最大可能的加速比受限于算法的非并行部分。该限制由以下公式描述:阿姆达尔定律.
  2. 如果您正在使用腮腺炎直接解算器,请切换到COMSOL中的PARDISO直接解算器。与腮腺炎相比,它为大量内核提供了更好的共享内存加速。188金宝搏优惠
  3. 默认情况下,将使用“英特尔MKL库”。对于使用Linux的AMD处理器,您也可以通过指定-blas BLIS来尝试BLIS库。

另见

另见选择硬件(解决方案866).

另见在群集上运行CO188金宝搏优惠MSOL(解决方案1001).