一种利用MIC快速实现格子Boltzmann并行加速的方法

文档序号:6379697阅读:490来源:国知局
专利名称:一种利用MIC快速实现格子Boltzmann并行加速的方法
技术领域
本发明涉及计算机高性能计算领域、计算流体力学领域,具体涉及一种利用Intel的MIC快速实现格子-Boltzmann加速的方法。
背景技术
格子Boltzmann 方法(Lattice Boltzmann Method, LBM)在过去的 20 年里已经发展成为一种有效的数值模拟方法,它是介于微观分子动力学方法和基于连续介质假设的宏观方法之间的一种介观方法。该方法与传统的流体模拟方法不同,它基于分子动理论,通过跟踪粒子分布函数的输运而后对分布函数求矩来获得宏观平均特性。格子Boltzmann方法的动理论特性使得它在模拟许多复杂流动的时候更有效,如多孔介质流动、悬浮流、多相流、多组分流等。格子Boltzmann方法具有天生的并行特性,以及边界处理简单、程序易于实施等优点。采用LBM方法求解物理问题时的基本过程如

图1所示。对于一个特定的物理问题,首先进行辅助步骤
(1)基于各种简化假设,进行物理建模,确定出计算区域、初始条件以及边界条件等,并根据物理问题的不同,选择相应的格子Boltzmann模型;
(2)进行网格划分,假设网格划分大小为NX*NY;
(3)根据不同格子Boltzmann模型,选择控制方程,并对其进行离散。如采用标准格子Boltzmann方法对等温不可压缩流动进行模拟,则离散后的控制方程为LBGK方程。前面这3步是在数值模拟之前就进行的。随后进入数值模拟阶段
(4)根据物理问题,给定所有格点上的宏观参量(密度、速度、黏性系数等),并由此计算出所有格点上各个方向的平衡态分布函数,以此作为计算的初场;
(5)求解离散后的控制方程,例如,采用迁移碰撞规则求解LBGK方程;
(6)根据边界条件,在相应边界格点上实施边界处理格式;
(7)基于不同格子Boltzmann模型的宏观量的定义法则,计算各格点上的宏观参量;
(8)判断计算是否收敛;
(9)若计算收敛,则输出计算结果;否则返回第4步,继续求解,直到收敛为止。广泛应用的格子-Boltzmann单松弛时间近似BGK模型基于如下的演化方程
权利要求
1.一种利用Mic快速实现格子Boltzmann并行加速的方法,其特征在于包括CPU端和MIC端,其中 (PU端将要根据物理问题进行网格划分,给定网格所有格点上的密度、速度、参考长度、雷诺数和黏性系数的宏观参量,同时设定内核的线程执行配置,启动MIC端的并行计算,并接收MIC端的迭代计算结果得到最终的流体状态; MIC端根据所述线程执行配置使用相应的多线程并行地根据所述所有格点上各个方向的平衡态分布函数,依次通过迁移和碰撞、边界处理得到下一个时层的分布函数; 具体步骤如下 1)CPU端将要进行网格划分,设定网格所有格点上的宏观参量的初始值,根据所述MIC卡的核数设置并行执行所述迭代计算的线程数,具体包括 根据所述物理问题的要求将流场计算域进行网格划分,所述网格大小为NX*NY,NX为X方向,NY为y方向,所述网格上的节点数为N =NX*NY,根据采用MIC卡的核数设置并行执行所述迁移碰撞计算的线程数,所述MIC卡的核数为M,所述迁移碰撞计算的线程数T=4*M ; 2)MIC端根据初始的宏观参量,使用一个求分布函数的内核,计算出所有格点上各个方向的平衡态分布函数,然后通过迁移和碰撞、边界处理的多次迭代得到所述流场的收敛状态; 3)MIC端给定流场的初始宏观参量和线程执行配置,并传递到所述MIC端的内存中,并在MIC端计算完毕后读取MIC内存中的最终结果; 4)MIC端根据所述线程执行配置使用相应的多线程并行地根据所述流场当前时层的分布函数通过迁移碰撞和边界处理得到该流场下一时层的分布函数,具体包括 5)MIC端使用T个线程并行地对所述流体网格的N个格点根据初始的分布函数Fi(°)或上一步计算得到的分布函数Fi05)执行所述迁移碰撞和边界处理算法,计算获取所述网格格点的下一时层的分布函数Fi(k+1),所述i取Ο-b共b+Ι个值,分别表示格点上的b+Ι个方向的分布函数,所述k为等于I或大于I的整数; 6)CPU端控制迭代次数,并把MIC端最终的结果回传到CPU端,其中CPU端控制迭代ITR次,即内核迭代调用ITR次,所述ITR为流体模拟中进行的迭代次数; 7)网格格点在迭代执行ITR次之后,MIC端根据最后的网格格点的分布函数&(ΙΤΚ)计算内核并行计算速度、密度和流函数的流场宏观参量; 8)CPU端将MIC端计算得到的速度场、密度场和流函数作为结果写回内存模块中。
全文摘要
本发明提供一种利用MIC快速实现格子Boltzmann并行加速的方法,该方法包括CPU根据物理问题,给定计算域、参考长度、来流速度、密度和雷诺数等参数,并根据MIC卡的核数设计内核的线程数;MIC端通过这些宏观参量(密度、速度、雷诺数和黏性系数等)计算出所有格点上各个方向的平衡态分布函数,以此作为计算的初场,并行求解离散方程和处理边界,并把最终迭代得到的结果回传到CPU端。本发明利用MICMIC端快速计算的特点参与对格子-Boltzmann中的迁移和碰撞的计算,通过CPUCPU端和MICMIC端的协调运作加速格子-Boltzmann的迭代过程。
文档编号G06F15/16GK103064819SQ20121041207
公开日2013年4月24日 申请日期2012年10月25日 优先权日2012年10月25日
发明者张广勇, 张清 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1