当前位置:首页 > Matlab的图形处理器并行计算及其在拓扑优化中的应用
龙源期刊网 http://www.qikan.com.cn
Matlab的图形处理器并行计算及其在拓扑优化中的应用
作者:蔡勇
李胜
来源:《计算机应用》2016年第03期
摘要:针对传统并行计算方法实现结构拓扑优化快速计算的硬件成本高、程序开发效率低的问题,提出了一种基于Matlab和图形处理器(GPU)的双向渐进结构优化(BESO)方法的全流程并行计算策略。首先,探讨了Matlab编程环境中实现GPU并行计算的三种途径的优缺点和适用范围;其次,分别采用内置函数直接并行的方式实现了拓扑优化算法中向量和稠密矩阵的并行化计算,采用MEX函数调用CUSOLVER库的形式实现了稀疏格式有限元方程组的快速求解,采用并行线程执行(PTX)代码的方式实现了拓扑优化中单元敏度分析等优化决策的并行化计算。数值算例表明,基于Matlab直接开发GPU并行计算程序不仅编程效率高,而且还可以避免不同编程语言间的计算精度差异,最终使GPU并行程序可以在保持计算结果不变的前提下取得可观的加速比。
关键词:并行计算;图形处理器;拓扑优化;Matlab;有限元分析 中图分类号: TP391 文献标志码:A 0引言
伴随计算机技术和计算技术的快速发展,对大规模数据的处理能力已成为评价各类工程算法的主要准则之一,要求算法具有较强的并行计算能力。传统的并行计算方法经过多年的发展,已经在多个应用领域内发挥了积极作用,但是,由于其计算平台的计算力与计算核心数直接相关,过多核心数会导致硬件成本过高,限制其在工程实践中的推广应用。为了降低并行计算的成本,NVIDIA公司根据图形处理器(Graphics Processing Unit, GPU)的可编程性以及其强大的密集数据处理能力,在2006年推出了基于中央处理器(Central Processing Unit, CPU)和GPU异构计算平台的通用并行计算的编程语言和架构,命名为统一计算架构(Compute Unified Device Architecture, CUDA)[1]。由于CUDA具有计算成本低、编程容易等优点,促使GPU通用计算技术高速发展,目前,GPU已经发展成为了一种具有绿色计算特征的新一代并行计算利器,是当前并行计算领域的研究热点[2-4]。
Matlab作为第四代编程语言,具有强大的矩阵计算、函数计算和数据绘图能力,是算式推导、算法开发等基础研究的常用编程工具[5]。目前,针对Matlab环境中GPU并行计算方法的研究方兴未艾,在之前的研究中,Matlab实现GPU并行计算主要有两种途径。其一,是采用需付费的商业扩展包,如JACKET和GPUmat[6]。例如,王恒等[7]基于JACKET研究了GPU通用计算框架下Matlab程序在CPU和GPU运行环境下的计算效率和取得的加速比,RosarioTorres等[8]基于JACKET实现了Matlab中高光谱图像分析工具箱的GPU加速计算。其
共分享92篇相关文档