OpenFOAM并行输出格式的问题
-
我在学校集群上算东西,有些算例是直接在主文件夹里面输出每个时间点的数据,有的是在processor*/文件夹里面输出的。大家知道这个设置的点是在哪儿么?
-
-
没有没有,这个是运行的时候就开始出现各个时间点的数据的,每个保存的时间点他都自动保存在主目录了。我就觉得很奇怪,但是又觉得这是个很好的方式。有一次似乎看过输出格式有写这样子,但是后面找不到了,所以想来问问
-
还没这么玩过啊。我Google了一下,你试试这个?
https://www.cfd-online.com/Forums/blogs/kkk/2957-auto-reconstructpar.html
-
你可以查看这个文件 $FOAM_TUTORIALS/IO/fileHandler/Allrun
-
-
@东岳 但是我这个运行的目录里面没有这些代码啊。。。就是OpenFOAM 4.1 的tutorials,不然我上传一下大家分析下?还是因为这是我的cluster的设置?不过不科学啊
Goldschmidt.zip -
@hurricane007 啊,好吧,我用的版本是开发版v1712, 我直接给你贴出来好了
#!/bin/sh cd ${0%/*} || exit 1 # Run from this directory . $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions runApplication blockMesh application=$(getApplication) #- Test writing collated format runApplication decomposePar -fileHandler collated runParallel $application -fileHandler collated runApplication reconstructPar -latestTime -fileHandler collated #- Delete collated files rm -rf processors #- Test writing uncollated format runApplication -s uncollated decomposePar -fileHandler uncollated runParallel -s uncollated $application -fileHandler uncollated #- Restart from uncollated runParallel -s collated $application -fileHandler collated runApplication -s collated reconstructPar -latestTime -fileHandler collated #- Convert the parallel format to uncollated runParallel foamFormatConvert -fileHandler uncollated #------------------------------------------------------------------------------
-
@Zephyr
这个做法应该是运行完再reconstructPar,然后删除processers里面的文件,用的是collated格式,应该是这篇文章里面提到的OpenFOAM Parallel I/O.
但是,我找了下我那个case,发现并没有这个设置,所以发上来看看大家有没有见过。 -
@hurricane007 你仔细看一下那些算例的Allrun怎么写的,如果用mpirun -np <nprocs> <executable> 后面必须带 -parallel参数,否则就变成算n个一模一样的串行了
-
@Zephyr @Zephyr
你这个倒是提醒了我,我去提交个单核的算一算。查一下cluster的documentation,cluster用的是slurm, 看例子是上面设置好以后最后srun就可以了,似乎不用自己加parallel,提交的脚本大概是这样#!/bin/bash # # Submission script for Lemaitre3 #SBATCH --job-name=testDPMFoam #SBATCH --output=DPMLog #SBATCH --time=24:00:00 # hh:mm:ss # #SBATCH --ntasks=1 # 多核就直接把这儿变成要的核数,提前做好blockMesh 和 decomposePar # SBATCH --nodes=1 #SBATCH --mem-per-cpu=2000 # megabytes # srun DPMFoam
-
@Zephyr
你这个倒是提醒了我,我去提交个单核的算一算。查了一下cluster的documentation,cluster用的是slurm, 看例子是上面设置好以后最后srun就可以了,似乎不用自己加parallel,提交的脚本大概是这样#!/bin/bash # # Submission script for Lemaitre3 #SBATCH --job-name=testDPMFoam #SBATCH --output=DPMLog #SBATCH --time=24:00:00 # hh:mm:ss # #SBATCH --ntasks=1 # 多核就直接把这儿变成要的核数,提前做好blockMesh 和 decomposePar # SBATCH --nodes=1 #SBATCH --mem-per-cpu=2000 # megabytes # srun DPMFoam
-
@Zephyr 破案了,就是没有并行所以直接输出在case 目录了,所以要用mpirun -np 6 DPMFoam -parallel 提交。不知道学校的cluster有啥问题,用srun 运行wiki上那个MPI例子就会并行,运行DPMFoam 就不会并行。已经和学校IT说了,看有啥反馈
3/15