1

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

此致

4

2 回答 2

3

pisoFoam并行运行,大致需要采取以下步骤:

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

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

于 2018-04-13T13:13:16.033 回答
1

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

  • 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,因为节省时间的目录会占用大量磁盘空间。
  • 有关上述所有内容的示例,请参阅 OpenFOAM 教程(例如 pitzDaily、channel395、damBreak、motorBike 等)
于 2019-06-05T09:56:47.303 回答