并行效率疑问
- 
							
							
							
							
好贴子,马住。另外推荐一个连接: 
 http://nscc-gz.cn/newsdetail.html?6151
- 
							
							
							
							
你是在哪个超算中心跑的算例?用的是什么规格的机器 
- 
							
							
							
							
我是在 Université de Sherbrooke 的长毛象2号超算上算的。这篇帖子的一楼最后我详细描述了硬件。 我没有在专门搞CFD的组里搞CFD,机时的分配只有100-CPU年。 
- 
							
							
							
							
@random_ran 在超算上安装哪个版本的openfoam?是自己安装的么?我现在跑算例要在超算上计算,现在还处在调研阶段,对超算的情况不是很了解。希望你能多给我一些建议 
- 
							
							
							
							
@random_ran renumberMesh这个命令你用过么?(我看贴上有人用过)用过的话你跑的是什么算例模型,计算效率提高了多少,计算结果准确么?我的算例也是圆柱绕流湍流模型验证 是否可用这个命令? 
- 
							
							
							
							
@random_ran 
 顶长毛象
  @bingningmeng45 
 renumberMesh看你需求吧,锦上添花的东西,不用也可以,用了更好,莫非你并行遇到了瓶颈。
- 
							
							
							
							
@random_ran renumberMesh 这个如何操作运行?直接在终端输入吗 
- 
							
							
							
							
建议你这样做: cd $FOAM_TUTORIALS grep -rnw './' -e "renumberMesh"然后 emacs ./incompressible/pisoFoam/les/motorBike/motorBike/Allrun就会发现你想要的东西了。 我的OpenFOAM版本是v4.1。 
 操作系统是CentOS Linux release 7.3.1611 (Core)。祝好。 
- 
							
							
							
							
							
							
最近看了看这个 renumberMesh,觉得可能有一些更深入的算法在里面,看完之后,个人觉得不必深究了,就类似OpenFOAM中的mpi库一样,除非你专门做mpi的。大体思路就是楼上们说的减少带宽。比如在求解100阶矩阵的时候,现存带宽可能为30,在进行迭代预处理的时候,可能会产生填入操作,但是依然位于带宽之内。renumberMesh或者在计算图形学中的reordering可以通过将矩阵和Adjacency matrix(不知道中文是什么)联系起来,重新排序,减少带宽,降低存储。在大型计算中,可以降低内存存储,大体就是这个意思。renumberMesh中植入的是Cuthill–McKee algorithm,详细了解可google。个人觉得有点偏离CFD,了解了解就好。
- 
							
							
							
							
- ilu0没有填入,of玩的ldu全是用的不填入的算法,不然ldu数据结构包不住,得像aeroFoam那样玩更高级的数据结构,
- ldu矩阵renumber不降低单次迭代的flops数量!那么省出来的时间必须有个说法,要么谱半径更小,收敛所需迭代数减少,要么平均每个flops用时减少(cache命中率提高)。总时间=迭代数每次迭代的flops数每个flops平均用时,对吧。
- renumber有效性说明现代cfd程序更多地受限于储存速度,cache命中率啥的,这个东西是有瓶颈的,未来cfd程序的套路可能就得变了。
- 你说的半带宽那套是针对banded structure的老的数据结构了,算法和数据结构是配套的,单看算法不看数据结构没有任何意义。
 
- 
							
							
							
							
							
							
ilu0没有填入,of玩的ldu全是用的不填入的算法 
 你说的半带宽那套是针对banded structure的老的数据结构了在另一个帖子我也看到你说的LDU,这只是OpenFOAM存储矩阵的方式,没有任何算法的存在意义,OpenFOAM编程可以酸则LDU,也可以选择Coordinate list (COO),也可以选择List of lists (LIL)。ILU0是ILU0算法,LDU是OpenFOAM的存储矩阵的方式。我觉得你弄混了。 另外,矩阵存在带宽是客观存在的,不管你怎么存储。是LDU还是LIL。 矩阵存储和带宽是两个概念:https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_.28CSR.2C_CRS_or_Yale_format.29 对ILU矩阵进行reordering是另一个概念: 
 Saad, Yousef. Iterative methods for sparse linear systems. Society for Industrial and Applied Mathematics, 2003.
 
			

