论文部分内容阅读
面向单核处理器的传统单线程算法难以满足海量数据处理的实时性需求,也无法充分发挥多核处理器的计算潜力,并行计算技术成为计算机性能优化的前沿技术。特别在多媒体、三维图形这些具有高实时性需求的领域,快速处理海量数据的需求尤为迫切。本文研究对象是虚拟现实地理信息系统一体化仿真平台VRGIS,它是一套集虚拟现实及地理信息系统为一体的软件平台,该软件具备城域级别三维模型数据以及三维地形数据的承载能力,还支持多种复杂自然现象模拟以及三维可视化特效,并且具备较高的画面逼真度和交互实时性。本文旨在研究各种并行计算技术,以解决VRGIS在三维仿真过程中以骨骼动画和粒子系统为代表的各种性能瓶颈问题。主要研究内容如下:1.建立多技术方案交叉互评的并行计算性能评价模型本文在阿姆达尔定律的理论基础上,引入并行计算多技术方案交叉互评机制,完善并行计算性能评价模型。本文研究的五套并行计算技术方案中,最新的是OpenCL(Open Computing Language,开放计算语言),可以同时用于中央处理器CPU和图形处理器GPU。此外CPU和GPU有各自专用的并行计算技术,其中:OpenMP(Open Multi-Processing,开放多线程处理)和SSE(Streaming SIMDExtensions,流式单指令多数据扩展指令集)专门面向CPU; GLSL(OpenGLShading Language, OpenGL着色语言)和CUDA(Compute Unified DeviceArchitecture,统一设备架构)专门面向GPU。2.为骨骼动画矩阵调色板算法设计多个并行计算方案实现并改进了已有的包括SSE和GLSL在内的骨骼动画并行计算方案,结合包括CUDA、OpenCL在内的新兴并行计算技术针对骨骼动画提出了新的并行计算方案,对比分析各种并行计算技术。在设计了多套并行方案的基础上,为骨骼动画多个并行计算方案设计自适应抉择策略,支持在不同性能配置的并行硬件上,自动选中最优方案。3.为柏林噪声风场扰动喷泉粒子系统设计基于OpenCL的并行计算方案为了提升喷泉粒子系统仿真效果的逼真度,引入柏林噪声随机因子模拟风场扰动效果,动态模拟过程所需复杂运算极大影响仿真实时性,本文采用基于OpenCL的并行计算技术,同时面向CPU和GPU提出了粒子系统性能改进方案。4.构建多个并行计算任务与多个并行计算设备之间的映射原则当多个模块同时进行并行计算时,为了充分挖掘CPU和GPU等多个设备的异构并行计算能力,在前文隔离拆分并独立解决VRGIS内部包括骨骼动画和粒子系统两大瓶颈问题的基础上,将两个模块重新合并在一起作为多任务系统,研究虚拟现实仿真平台多个并行计算任务与多个并行计算设备之间的映射原则和执行方案。本文创新点主要体现在以下三个方面:1.提出基于OpenCL面向CPU和GPU异构体系的骨骼动画矩阵调色板算法。功能创新:提升面向GPU骨骼动画矩阵调色板算法的可移植性,原先基于CUDA的算法依赖特定的GPU,基于OpenCL面向GPU的矩阵调色板算法普遍适用于各种GPU。性能创新:面向CPU的OpenCL算法,以CPU串行算法和基于SSE叠加OpenMP的传统并行算法作为性能参考基准,加速比分别是3.9和1.5。2.设计骨骼动画多并行方案的自动调优算法。功能创新:本文为骨骼动画矩阵调色板算法设计了5套并行优化方案,并设计自动选择最优方案的算法。包括最新的是OpenCL,可以同时用于中央处理器CPU和图形处理器GPU。此外还为CPU和GPU设计了专用的并行方案,其中:OpenMP和SS专门面向CPU;GLSL和CUDA专门面向GPU。性能创新:在所有不同CPU和GPU配置上,自动寻找可行的而且性能最优的方案。3.提出多粒度任务与异构并行设备之间的动态映射和负载均衡策略。功能创新:首先设计了第二个基于OpenCL面向CPU和GPU异构体系的并行任务——柏林噪声风场扰动粒子系统喷泉,将现有基于CUDA的柏林噪声并行算法移植到OpenCL,从而突破了硬件限制,提升了柏林噪声并行算法的可移植性和通用性。结合粒子系统喷泉和上文的骨骼动画,设计多任务与异构并行设备映射原则。性能创新:按照CPU和GPU对不同任务的OpenCL并行加速能力的不同,将并行任务按加速比系数进行分配,通过降低设备等待时间提升性能。本文结合虚拟现实仿真平台的骨骼动画模块和粒子系统模块研究多种并行计算技术,当研发人员需要做以下决策时——是否将现有串行算法进行并行化、是否追随新的并行计算技术对已有并行算法进行移植升级、是否升级并行计算硬件设备,本文可为其提供有效的决策辅助。