众多网友的debug
最开始最开始,论坛有网友说,采用某期刊提供的liutex-C++代码进行计算,算了半个月没有算出一个时间步的结果。然后发帖求助。
后来各个网友开始debug,结论确实是非常耗费时间。中途有网友把期刊提供的C++代码改成了fortran,尝试继续debug。
岳子在这面看不住了,这C++的代码为啥要改fortran一时冲动,岳子把期刊的C++代码改成了适配最新版本OpenFOAM的代码。并且发现代码里面大量的手动循环操作。但是岳子对算法不熟,纯粹是码农的工作,因此这个C++代码还需要测试。
后来深圳某网友测试了岳子的代码,确实很慢,比如364万的网格,单核需要10个小时!这对于一个后处理程序,基本可以扔垃圾了。
因为岳子没深入liutex算法,所以目前无法从算法层面去debug也没法给出加速意见。至此之后的一年半,没了下文。
L大佬现身
半年前,上交某L大佬对liutex比较好奇,看到了CFD中文网这个帖子,L大佬继续开搞!
首先L大佬发现一个bug,这个bug在期刊提供的代码里面就已经出现,因为岳子纯粹是改代码(没有对算法),所以岳子代码里面也出现了个这个bug(某公式符号写反了)。
L大佬继续改。大佬的改动是:用OpenFOAM自带的场函数替换PQR计算语句,更改后,200万网格只需要6秒。
在这里如果对比大佬改写之前的程序,之前是364万网格单核计算10个小时,目前是200万网格计算需要6秒!
岳子随便用计算器瞎算一下,L大佬小改一行代码,实现了3000倍加速!
简直流弊到爆炸!
封面图以及原贴地址:
https://cfd-china.com/topic/4138