学位论文简介
程序并行化是并行计算领域关注的经典问题,在充分利用多核计算机的算力资源上发挥着重大作用。现有的静态和动态工具减轻了编程人员的负担,但它们往往存在一些局限性。针对这些局限性,本文基于源代码信息、数据处理策略和神经网络模型框架等技术,解决程序并行化过程中的并行性识别、OpenMP变量分类和数据竞争检测问题,以更有效率地提升各问题上的性能表现。本文的主要研究工作如下:
针对传统并行化静态工具的程序分析范围狭窄和动态工具时间开销高的问题,提出了一种基于图神经网络的并行性识别方法。该方法提供了一种端到端解决并行性识别问题的方式。基于重构程序等步骤开发了一个数据集生成器,同时,考虑到程序的并行性识别与数据依赖和控制依赖息息相关,构建了一个结合控制流图和数据流图的上下文流程图数据集。
为获取进一步的性能提升,提出了一种基于多图学习的并行性识别方法。针对上下文流程图数据集的局限性,提高了程序多样性,以便模型更全面地学习程序的语义和语法。设计了一个多图表示策略互补地表示程序丰富的异构信息。同时,构建了一个多图学习框架有目标地针对不同的图表示进行学习。
针对多样化的数据作用域子句使基于共享内存的OpenMP循环级并行化实现变得复杂的问题,提出了一种基于机器学习的端到端变量分类方法。考虑到变量和数据共享属性的对应关系,通过提取源串行程序的词法信息和并行程序的OpenMP制导语句指令构建了一个用于学习的对齐语料库。通过结合注意力机制,设计了一个选择性关注特定上下文和关系的变量分类模型框架。
针对OpenMP制导语句指令使用不当易造成数据竞争的问题,提出了一种基于对比学习的数据竞争检测方法。从源代码分析的角度,使用对比学习的技术,通过拉近正样本之间的距离,推远负样本之间的距离,设计了端到端数据竞争检测模型框架。
主要学术成果
Yuanyuan Shen, Manman Peng, Shiling Wang, et al. Towards parallelism detection of sequential programs with graph neural network. Future Generation Computer Systems, 2021, 125: 515-525. (中科院二区Top,第一作者)
Yuanyuan Shen, Manman Peng, Qiang Wu, et al. Multi-Graph Learning for Parallelism Discovery in Sequential Programs. Concurrency and Computation: Practice and Experience, 2023, 35(9): e7648. (CCF-C类期刊,第一作者)
Yuanyuan Shen, Manman Peng, Qiang Wu, et al. A machine learning method to variable classification in OpenMP. Future Generation Computer Systems, 2023, 140: 67-78. (中科院二区Top,第一作者)