关于并行计算的问题
-
大家好,想问一个并行计算的问题,我有一个比如128 core的服务器,我想decomposePar来set up并行计算,但是只能分解出processor0, processor1, processor2, processor3一共四个文件,是不是就应该是这样?还是说我改一下哪里的设置就可以分解成processor0-processor127一共128个分解文件,进而提升计算效率?
还有,我刚装了下openfoam5.0,之前也装了OpenFOAM4.1,怎样在两者之间切换呢?
谢谢大家!
-
decomposeParDict 中把分块数改成你想要的即可,多看看用户手册
切换of41/of50
-
多谢回复,能不能具体说一下怎样of41/of5?我输了一下说of41: command not found
-
https://openfoamwiki.net/index.php/Installation/Linux/OpenFOAM-dev/Ubuntu 可以参考第九条 (Save an alias in the personal .bashrc file, simply by running the following command)
-
-
谢谢大家回答,非常有用!
-
@CFDngu 请问有没有什么规则来决定应该分多少块?是不是四核就只能分4块?还是说分的越多越好?
-
@xiaofenger
标准的并行程序做法应该是有多少numa块,分成多少块。考虑OpenFOAM一般没有开启OpenMP,有多少核分多少块吧。
-
@xpqiu
https://www.cfd-online.com/Forums/openfoam/191055-why-renumbering-works-ldumatrix.html#post658931
Jasaki 说是因为增加了cache命中率,固定点迭代也改善了单元周围update的单元。 -
@程迪 我在四核八线程的电脑上装了virtualbox, 然后给Ubuntu虚拟机分了2个CPU,这样应该decompose成两块?只分成两块会比一整块有大的速率提升吗?
-
分两块,应该有大的提升。
-
如果是带状的diag band结构,renumber增加效率是合理的。但是ldu不应该呀。
在Numerical Recipes in C++上面有提及部分矩阵reordering和并行技术,Yoosf Saad那本稀疏线性系统有大量的论述,目前暂时了解不是很深如。不过我确定对于非结构网格离散后的矩阵不一定是比较窄的带状的。并且reNumberMesh是在分配矩阵操作之前。可以理解为对某些网格导致比较宽的离散矩阵进行预先操作,降低带宽。具体降低带宽后如何提高迭代求解还得看资料。
7/17