Openfoam - pisoFoam 只使用一个核心

Openfoam - pisoFoam only uses one core

我用的是openfoam 1606+版本 当我 运行 pisoFoam 时,在 htop 中(显示 CPU Usage)我可以看到 pisoFoam 只使用一个核心(当然使用率 99%)。如果我想使用我的 CPU 的所有内核,我需要修改什么?

此致

要运行pisoFoam并联,大致需要经过以下步骤:

  • 通过命令 decomposePar 分解网格和字段(假设您适当地设置了 system/decomposeParDict 文件)。
  • 通过此示例命令以并行模式执行 pisoFoammpirun -np X pisoFoam -parallel >& logFile(SampiyonCanakkaleDardanel),即 X 是正在使用的处理器的整数。假设您的工作站有 4 个核心,那么 X = 4.

请注意,您无需修改​​ pisoFoam 内的任何内容即可执行并行任务。

这是典型的工作流程(生成网格后):

  • checkMesh > log.checkMesh.1 2>&1
  • decomposePar > log.decomposePar 2>&1
  • renumberMesh > log.renumberMesh 2>&1
  • checkMesh > log.checkMesh.2 2>&1
  • mpiexec -n 5 pisoFoam -parallel > log.pisoFoam 2>&1
  • reconstructPar

备注:

  • 在 v2.4 上测试。
  • 我在这个例子中使用了 5 个核心数。替换为您想要的数字。您可能想使用超线程进行测试;它可能有用也可能没有用。
  • 不要忘记 -parallel 标志。
  • renumberMesh 在大网格的情况下很有用。
  • 尽可能多地使用 functionObjects,因为节省时间的目录会消耗大量磁盘 space。
  • 请参阅 OpenFOAM 教程以获取上述所有内容的示例(例如 pitzDaily、channel395、damBreak、motorBike 等)