资源描述:
《动态网格的dsmc方法在gpu上的并行》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、动态网格的DSMC方法在GPU上的并行∗SupportedbyNVIDIACorporation+作者简介:文敏华(1988-),男,江西会昌人,硕士,主要研究领域为高性能计算;林新华(1979-),男,浙江绍兴人,硕士,上海交大高性能计算中心副主任,主要研究领域为高性能计算;SimonChongWeeSee(1966-),男,新加坡人,博士,NVIDIA公司亚太区首席技术总监,上海交大高性能计算中心科学计算总监,主要研究领域为高性能计算。文敏华1+,林新华1,SimonChongWeeSee1,2
2、1(上海交通大学高性能计算中心,上海200240)2(NVIDIACorporation)AGPUBasedParallelMethodForDynamicCollisionGridDSMCWENMinhua1+,LINXinhua1,SimonChongWeeSee1,21(HighPerformanceComputingCenter,ShanghaiJiaoTongUniversity,Shanghai200240,China)2(NVIDIACorporation)+Corresponding
3、author:Phn:+86-,E-mail:wenminhua@sjtu.edu.cnAbstract:TheDirectSimulationMonteCarlo(DSMC)methodisapowerfulcomputationaltoolinthefieldofrarefiedgasdynamics.However,therearetwomainshortagesofDSMCmethod:oneiscomplexgriddingprocessingandtheotherisitslargeti
4、meconsumption.ThedynamiccollisiongridDSMCmethodgeneratescollisiongridsadaptivelyaccordingtotheflowfield,whichovercomesthefirstshortage.Fortheothershortage,weportthedynamiccollisiongridDSMCmethodtoGPUusingCUDA.Duringourparallelimplement,themaincomputati
5、onisperformedonGPUwhileCPUonlydealswiththeprocessesofinitializationandoutput.Atwo-dimensionalbenchmarkproblemindifferentsizesisusedtodemonstratethecorrectnessoftheparallelization.Theresultsshowthat10+XspeedupisachievedbasedonNVIDIAFermiC2050.Forasameca
6、se,theperformanceonNVIDIA’snewlyreleasedKeplerK20is1.3-1.6xhigherthanthatonFermiC2050.Keywords:CUDA,GPU,DynamicCollisionGridDSMC,ParallelSimulation摘要:直接模拟蒙特卡罗方法(DirectSimulationMonteCarlo,DSMC)是稀薄气体动力学领域的重要工具。然而,DSMC方法有两个比较主要的缺点:一是复杂的网格处理,另一个是庞大的计算量。使用
7、动态网格的DSMC方法可以根据流场信息,动态生成自适应的碰撞网格,能有效解决前一个缺点;针对后一个缺点,本文则基于动态网格的DSMC方法,使用CUDA编写并行程序,将其移植到GPU上以减少计算时间。在并行实现中,GPU负责绝大部分的计算,而CPU只负责初始化、结果输出等少量工作。我们使用一个二维超音速横掠平板问题作为算例验证了并行程序的正确性。对于不同规模的算例,在NVIDIAFermiC2050之上均获得了10倍以上的加速比;对于相同算例,NVIDIA最新发布的KeplerK20上的速度约为Fer
8、miC2050上的1.3-1.6倍。关键词:CUDA,GPU,动态网格DSMC,并行模拟中图法分类号:TP39 文献标识码:B1引言连续性假设通常用于模拟气体流动,当气体十分稀薄时,粒子的间断效应十分明显,连续性假设不再成立,而应当使用稀薄气体动力学的方法才能得到正确的结果。用于描述稀薄气体的控制方程为Boltzmann方程:(1)它是一个微分积分方程,右端的碰撞项极其复杂,而且方程的变量很多(达7个),因此对于一般的问题求得解析解几乎不可能。另外,对于如此复杂的