Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
做了个非常简单的槽道流,左边进右边出,如下图很简单
之前忘了谁跟我说renumberMesh一下可以加快运算速度,于是我在renumber之后重新算了一下,本意是想看会快多少,意外发现结果都不对了
结果还有点魔性, 要是故意的可能还有点说法,这个就算了,就是提醒大家renumberMesh慎重使用
@荷兰后腰阿贾克斯 renumber之后要重新算哟
东岳老师,renumber可以加快速度的本质原因是什么?是影响了哪些因素啊?迭代收敛性?访存?我只知道renumber后矩阵带宽减少了,可是带宽减少了为什么就变快了呢?谢谢李老师!
降低内存存贮。其实在2021年已经问题不大了。现在128G内存的服务器也在几万块钱。算5000万网格都绰绰有余。。
嗯嗯,谢谢东岳老师,不过能不能稍微解释下为啥renumber能够降低内存存储吗(降低内存存储的意思是矩阵中非零元素的数目减少了吗?我感觉并没有啊)。。。还有就是,就算能达到降低内存存储,为啥速度能变快呢。。是因为访存减少了吗???感谢回复!
减少mpi 通信
经过室友的启发,发现是无意中误操作先decomposePar再renumber之后就会这样了
@刘雄国 感觉并没有减少通信啊。。。。请问怎么减少得通信啊
renumber之后会大幅度降低带宽,因此会降低fill-in操作(中文不知道是什么)。这样就可以降低内存占用。关于通信方面,目前我不确定renumber算法会不会降低通信。但是scotch、metis这种的肯定是为了降低通信而生的。
可以参考下James Demmel的Applied Numerical Linear Algebra。D神的经典。
@李东岳 好的,感谢李老师的解读和推荐!谢谢!
@荷兰后腰阿贾克斯 请问一下,这个问题是怎么解决的呢?我也遇到了同样的问题
@yu_tian 很简单,你在decomposPar 之前renumber, 然后把生成的网格复制到constant 中替换,再进行分块和并行计算。
@winsway_zero 嗯嗯,我懂了,谢谢,renumberMesh是对网格的操作,setFields也要在renumberMesh之后操作,不然也会乱掉