跳到主要内容

CAE绑核建议

本文档记录在使用CAE软件时,关于绑核的一些建议。适用于MPI应用。

介绍

CAE软件一般使用大量进程进行并行计算,使用MPI进行进程间通信。构建MPI运行环境时,通常需要构建MPI的运行环境。在SLURM调度器下,有两种常见的方式:

  • 直接方式:使用srun命令直接启动MPI进程。
  • 间接方式:使用mpirunmpiexec命令启动MPI进程。

在这两种方式下,绑核的方式有所不同,效果也有所不同。

直接方式

  • 由调度器分配资源。
  • 调度器会根据资源分配情况,自动进行绑核。

间接方式

  • 由调度器分配资源。
  • MPI运行环境会根据资源分配情况,自动进行绑核。
警告

注意: 在这种方式下,OpenMPI通过cgroup的cpuset获取绑核信息。

绑核建议

因为OPENMPI通过cgroup的cpuset获取绑核信息,所以集群需要开启cgroup,以及以下配置:

TaskPlugin = task/affinity,task/cgroup
TaskPluginParam = autobind=threads

CGroup_ConstrainCores=Yes
CGroup_TaskAffinity=no # fsched 10.67 以上版本不需要该参数

其中:

  • task/affinity:开启绑核功能。
  • task/cgroup:开启cgroup功能。
  • autobind=threads:表示自动绑核到线程。