【优秀硕士博士论文】基于opencl的并行流体模拟研究_第1页
【优秀硕士博士论文】基于opencl的并行流体模拟研究_第2页
【优秀硕士博士论文】基于opencl的并行流体模拟研究_第3页
【优秀硕士博士论文】基于opencl的并行流体模拟研究_第4页
【优秀硕士博士论文】基于opencl的并行流体模拟研究_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于OpenCL的并行流体模拟研究,2017/12/27,1,纲要,课题研究背景及意义本文算法核心实验结果总结与展望,2017/12/27,2,纲要,课题研究背景及意义本文算法核心实验结果总结与展望,2017/12/27,3,课题研究背景及意义,应用领域广电影特效3D游戏仿真系统重要意义经济、国防、人身安全问题计算复杂、求解时间长无法充分利用当前CPU+GPU平台,2017/12/27,4,纲要,课题研究背景及意义本文算法核心实验结果总结与展望,2017/12/27,5,N-S方程简介,Helmhotz-Hodge定理, t = 1 + 2 + =0, = + 2 + = ,投影算子,2017/12/27,6,算法流程,2017/12/27,7,宿主机端功能实现,根据网格大小分配空间依据需求对物理场初始化借助OpenGL实现窗口侦听任务接收外源信息传输到GPU端,2017/12/27,8,外源项添加,外源外力密度特点不存在数值依赖适用数据并行, ,+ = , + ( ,t), ,+ = , + ( ,+),2017/12/27,9,难点一:如何保证所有网格都可以并行更新?,工作组划分,索引空间的利用工作组计算单元工作项处理单元划分算法工作组并发线程数较多工作项并发线程数较少,2017/12/27,10,平流项求解,并行策略工作组划分,全局空间存储物理场量,2017/12/27,11, ,+ =( , t,t),扩散项&投影项求解,扩散项速度的Possion方程投影项压力的Possion方程, 2 ,+t = , 2 = ,2017/12/27,12,Possion方程求解1/2,Possion 方程迭代方式Jacobi迭代针对速度和压力两种Possion方程, = , (+1) = =1, () + , , (+1 ) = 1, () + +1, () + ,1 () + ,+1 () + , ,2017/12/27,13,难点二:如何在并发过程中保证线程之间的通信?,Possion方程求解2/2,并行策略使用组内局部内存加速主机端保证工作组间同步,全局内存,工作组,局部共享内存,工作项,工作项,读取,读取,写回,2017/12/27,14,并行体绘制算法,体绘制符合数据并行并行策略工作项分组低分辨率下采 用共享内存,2017/12/27,15,烟雾模拟,烟雾颜色只考虑密度信息,光照因子 ,颜色系数,最终颜色,_,颜色因子,2017/12/27,16, +1 = 1.0 , +1 = 1.0 , +1 = + ,火焰模拟,轮廓Level set形态热浮力温度衰减颜色黑体辐射,2017/12/27,17, = , = , + = ( ) 4, = 2 1 5 2 1,纲要,课题研究背景及意义本文算法核心实验结果总结与展望,2017/12/27,18,实验结果烟雾模拟效率对比1/2,2017/12/27,19,实验结果烟雾模拟效率对比2/2,a,b,c,d,2017/12/27,20,实验结果火焰模拟效率对比,2017/12/27,21,实验结果烟雾效率对比,CPU GPU,2017/12/27,22,实验结果不同颜色烟雾,2017/12/27,23,实验结果添加外力,2017/12/27,24,实验结果展示,2017/12/27,25,总结与展望,总结实现了基于OpenCL的并行流体模拟算法使用索引空间保证线程的并发粒度使用局部共享内存减少访问延迟,实现线程间通信加速比相对CPU算法增加了一到两个数量级以烟雾和火焰为载体进行效果展示有效利用CPU+GPU异构平台展望采用GPU集群,2017/12/27,26,请各位专家指正批评!谢谢,2017/12/27,27,实验结果烟雾模拟效率对比,2017/12/27,28,实验结果烟雾模拟效率对比,2017/12/27,29,算符离散化,2017/12/27,30,实验结果烟雾与障碍物交互,2017/12/27,31,实验结果火焰与障碍物交互,2017/12/27,32,X(0,0),X(1,0),X(0,1),X(1,1),Step 1:t = 0; i = 0 , j = 0; update X(i,j);,Step 2:t = 1; i = 0 , j = 1; update X(i,j);,Step 3:t = 2; i = 1 , j = 0; update X(i,j);,Step 4:t = 3; i = 1 , j = 1; update X(i,j);,X(0,0),X(1,0),X(0,1),X(1,1),j,i,End thread_0,create thread_0,外源项添加串行示意,2017/12/27,33,i,create thread_0,X(0,0),X(1,0),X(0,1),X(1,1),X(0,0),X(1,0),X(0,1),X(1,1),j,i,getI(i) , getJ(j);update X(i,j);,End thread_0;,create thread_1,getI(i) , getJ(j);update X(i,j);,End thread_1;,create thread_2,getI(i) , getJ(j);update X(i,j);,End thread_2;,create thread_3,getI(i) , getJ(j);update X(i,j);,End thread_3;,外源项添加并行示意,2017/12/27,34,基于OpenCL的Navier-Stokes 方程并行求解- OpenCL简介,OpenCL:开源、跨平台、异构的编程框架平台模型:硬件平台设计宿主机 & 执行设备 & 计算单元 & 处理单元执行模型:硬件级别的并发保证索引空间 & 工作组 & 工作项内存模型:权限不同,读取延迟不同全局内存 & 共享内存 & 私有内存编程模型:算法级别的并发保证数据并行 vs 任务并行,2017/12/27,35,基于OpenCL的Navier-Stokes 方程并行求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论