在非常特定的情况下,我遇到了服务器变慢的问题。 事实是:
在5a或5b的情况下,我的WRF开始减速,有时甚至比正常慢5倍。
让我知道你是否有任何想法,以避免这些放缓。
在关于这个问题的一些“相关”的链接后,有一个想法来到我身上。 透明的巨大页面是否会成为这个问题的根源? 一些文章高度表明,THP在NUMA系统上performance不佳。
我build议启用numad服务:
yum install numad systemctl enable numad systemctl start numad
numad应该能够自动照顾记忆的地方。 类似进程的情况在第一个NUMA节点的CPU上运行,但是它的数据在第二个NUMA节点的本地RAM中,不应该再发生(除非所需内存的数量大于单个NUMA节点本地RAM的容量)。
我也build议configuration调整服务与configuration文件,最符合您的使用情况。 你必须测量差异并挑选最好的(或者你可以创build一些定制的)。
也许我find了你节点上奇怪行为的原因。 我search了mpirun并find了man page:
https://www.open-mpi.org/doc/current/man1/mpirun.1.php
有写:
快速总结
如果您只是在寻找如何运行MPI应用程序,则可能需要使用以下格式的命令行:%mpirun [-np X] [–hostfile]这将在当前运行时运行X个副本环境(如果在受支持的资源pipe理器下运行,Open MPI的mpirun通常会自动使用相应的资源pipe理器进程启动器,而不是像rsh或ssh那样需要使用hostfile,或者默认运行所有的X在本地主机上复制),通过CPU槽以循环方式调度(默认)。 查看本页面的其余部分了解更多详情。
请注意,mpirun会自动绑定从v1.8系列开始的进程。 在没有任何其他指令的情况下使用三种绑定模式:
绑定到核心:当进程数<= 2时
绑定到socket:当进程数大于2时
绑定到零:超额认购时
如果您的应用程序使用线程,那么您可能需要确保完全没有绑定(通过指定–bind-to none),或者为每个应用程序进程使用适当的绑定级别或特定数量的处理元素绑定到多个核心。
在你的情况下,n = 22没有绑定应用,线程可以重新定位。 你可以尝试外部的CPU绑定(就像使用taskset)。 你必须尝试。