采用单松弛不可压缩D3Q19格子Boltzmann模型,自主开发了基于性能优化和MPI并行的程序包。程序通过合并碰撞迁移过程和引入临时数组以连续读入分布函数的优化处理,使程序计算性能得以大幅提高。并行程序在遵循负载均衡原则下采用单向区域分解,使用非阻塞通信模式进行数据交换,同时采用并行I/O以便各个进程同步进行I/O操作。通过对三维顶盖驱动流的数值模拟,验证了该程序的正确性及其并行效率。
In this paper, a MPI parallel code was developed with the incompressible D3Q19 single-relaxation-time lattice Boltzmann model. Combining the collision and propagation step and reading distribution functions continuously with the help of a temporary array, the performance of code was greatly improved. According to the principle of load balance, the computational zone was partitioned at the z direction. In order to ensure data exchange among adjacent ranks, the non-blocking communication pattern was used to send/receive messages. Based on the MPI I/O system, the I/O operation among all the ranks can be done synchronously. For the sake of the validation of accuracy and reliability, three dimensional lid-driven cavity flow was numerically simulated by the present code. The result indicates that good parallel efficiency is achieved.