使用小型应用程序提高应用程序性能混合并行编程范式的比较(英文).pdf

使用小型应用程序提高应用程序性能混合并行编程范式的比较(英文).pdf
本文探讨了利用迷你应用程序来提高应用程序性能的方法,特别是针对美国国家航空航天局(NASA)开发的复杂流动分析代码VULCAN。文章比较了混合并行编程模式,包括消息传递接口(MPI)结合共享 MPI (SMPI) 和 MPI 结合 OpenMP。 研究的目的是寻找最有效的并行策略,在不修改整个代码的情况下,通过迷你应用程序快速探索各种选项。迷你应用程序使用了Householder反射器内核来求解线性方程组,该内核也常用于VULCAN中。 文章详细介绍了迷你应用程序的设计原则,包括接受通用输入、验证数值结果、测量性能以及调整优化参数。特别关注了如何并行化Householder 例程,通过将问题分解成多个块,并利用OpenMP和SMPI进行共享内存访问。 性能评估在Turing多节点高性能计算集群上进行,考察了节点数量、MPI任务数、OpenMP线程数以及块大小等参数对性能的影响。结果表明,MPI+SMPI通常能获得最佳执行性能,尽管需要更多的代码修改。MPI+SMPI的最大加速比为23倍,而MPI+OpenMP的最大加速比仅为11倍。 文章强调,SMPI因其较低的开销而受益,但编程复杂性较高。此外,还发现最佳输入大小(n)对于SMPI会随着节点数量而变化,这是一个意外的结果,需要进一步调查。循环分块(loop blocking)在没有共享内存并行性的情况下表现出适度的加速,表明针对缓存性能进行优化在某些情况下是有益的。 总之,本文通过迷你应用程序比较了MPI+OpenMP和MPI+SMPI两种混合并行编程范例,并得出结论,SMPI在VULCAN代码的Householder内核的优化中具有更高的潜力,尽管它需要更多的编程工作量。该研究提供了有价值的见解,可用于优化其他高性能计算应用程序。
在线阅读 下载完整报告 | 2.14 MB | 5页
阅读和下载会消耗积分;登录、注册、邀请好友、上传报告可获取积分。
成为VIP会员可免费阅读和下载报告