Aim at solving the problem of low calculation speed of the MT Occam inversion, this project research on hybrid parallel computation methods based on multi-computers, multi-CPU cores and mass GPU SP units, realizing a top-down hierarchical and gradually refined parallel programming model. With the massage passing, the top level of the model will realize the inter-node parallel computation through network communication, while the middle and bottom levels (multi-CPU cores and GPU SP units) realize the intra-node parallel computation through memory sharing. The project will study heterogeneous communication patterns between levels, task mapping methods, address translating methods and the relevance between task granularity and communication efficiency. By analyzing and comparing the programming complexity and computing efficiency for different hybrid parallel computation pattern, the best alternatives will be determined. The MT Occam inversion parallel components lie in the computation will be excavated, and, on the base of this, the inversion problem decomposition methods will be studied. By task secondary decomposition, the project will generate optimized task sets of different granularity and realize the task mapping to different levels units, ensuring satisfied load balancing of the calculation. By dynamic monitoring the node performance, the project will realize the system automatic adaptation to different hardware configuration and different inversion scale (different number of frequency points, survey points and μ scanning points).
针对MT Occam反演计算速度不佳的问题,研究基于多计算机、CPU多核、GPU众核的混合并行计算方法。建立一个异构、多层次、自顶向下逐步细化的并行编程模型,顶层采用消息传递方式,通过网络通信实现节点间并行,中、下层(CPU多核和GPU流处理单元)采用OpenMP和CUDA技术通过共享内存方式实现节点内并行。研究异构模式下层次间的通信方式、任务映射方式、地址转换方法和计算粒度与通信效率的关联性,分析、对比不同的混合并行计算模式下的编程复杂度及计算效率,寻找最优方案。全面挖掘MT Occam反演的内在并行分量,研究反演问题的分解方式,通过计算任务多次分解,形成不同粒度结合的优化任务集,实现任务到不同层次部件的合理分配及计算负载的良好均衡。通过对节点性能的动态监控,实现系统对不同硬件配置、不同反演规模(频点、测点及μ扫描点数)的自动适应。
传统电磁法并行计算以大粒度划分为主,本工作以MT Occam反演为例,提出通过多层次异构混合并行模式,对传统方式进行扩展,以充分利用反演中的层次并行性。主要成果如下:1)研究了MT Occam算法结构,测试了计算量分布,分析了计算粒度特征。研究表明,传统大粒度并行方式不具扩放性,要获得性能的进一步提升,必须利用细粒度并行性。MT Occam反演存在明显的层次并行特征,对应于粗粒度的频组计算,中粒度的频率计算和细粒度的GAUSS消元、矩阵计算及Cholesky分解。GAUSS算法占约70%的总计算量,是提高整体性能的关键。2)研究了并行编程模式、负载均衡模式和混合并行组合方式,根据程序复杂度、系统消耗及任务计算成本,确定了主从模式、静态任务均衡及MPI+OpenMP+CUDA层次模型为最优选择。3)设计了一个异构、三层、自顶向下逐步细化的并行框架,顶层通过MPI实现节点间粗粒度通信,中间层采用OpenMP实现节点内中粒度通信,底层通过CUDA实现节点内GPU细粒度计算。设计了处理流程,编写了相应并行计算程序和CULA及CUBLAS的Fortran调用程序接口,实现了不同粒度任务的层次映射,完成了混合并行反演系统。 4)分析了系统的性能瓶颈,使用非连续数据打包策略,使数据传输时间减少了20%-30%,以对分策略解决了GAUSS算法划分不均匀问题,使该项计算减少了约1/3的运行时间,通过存储优化、访存合并等策略,使系统性能进一步提升。5)采用Java swing技术,实现了跨平台的模型交互设计和并行反演可视化,提高了模型设计效率和系统的可操作性。6)通过理论模型计算,验证了方法的正确性,评估了计算精度和加速效果。结果表明,设计的混合并行算法合理高效,精度达到要求。在4节点异构集群上,小规模模型反演加速达6-7倍,大规模模型平均可达16倍,最高达到23倍,比传统并行方式有明显提高。
{{i.achievement_title}}
数据更新时间:2023-05-31
MSGD: A Novel Matrix Factorization Approach for Large-Scale Collaborative Filtering Recommender Systems on GPUs
自然灾难地居民风险知觉与旅游支持度的关系研究——以汶川大地震重灾区北川和都江堰为例
混采地震数据高效高精度分离处理方法研究进展
基于贝叶斯统计模型的金属缺陷电磁成像方法研究
利用协同反演方法反演地震序列滑动分布
基于区域分解和混合有限元的大地电磁三维并行正反演研究
起伏地形下的井中激电井-地方式并行反演研究
多重约束下盆地深部热物性参数反演研究-以琼东南盆地为例
顾及地形与地壳结构的破裂模型反演研究—以2008年汶川地震为例