Openfoam - pisoFoam 只使用一个核心
Openfoam - pisoFoam only uses one core
我用的是openfoam 1606+版本
当我 运行 pisoFoam 时,在 htop 中(显示 CPU Usage)我可以看到 pisoFoam 只使用一个核心(当然使用率 99%)。如果我想使用我的 CPU 的所有内核,我需要修改什么?
此致
要运行pisoFoam
并联,大致需要经过以下步骤:
- 通过命令
decomposePar
分解网格和字段(假设您适当地设置了 system/decomposeParDict
文件)。
- 通过此示例命令以并行模式执行
pisoFoam
:mpirun -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 等)
我用的是openfoam 1606+版本 当我 运行 pisoFoam 时,在 htop 中(显示 CPU Usage)我可以看到 pisoFoam 只使用一个核心(当然使用率 99%)。如果我想使用我的 CPU 的所有内核,我需要修改什么?
此致
要运行pisoFoam
并联,大致需要经过以下步骤:
- 通过命令
decomposePar
分解网格和字段(假设您适当地设置了system/decomposeParDict
文件)。 - 通过此示例命令以并行模式执行
pisoFoam
:mpirun -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 等)