Multigraph learning for parallelism discovery in sequential programs. (13th February 2023) - Shen, Yuanyuan
Summary: Parallelization is an optimization technique that is playing an increasingly vital role in software applications. Discovering the potential parallelism in sequential programs is of primary importance for parallelization. To this end, various tools have been created to obtain parallelizable targets by analyzing the dependencies in sequential programs. However, the majority are constructed based on manually designed dependence analysis rules. Consequently, they must follow some constraints, which limit the scope of their program analysis capability. Furthermore, constructing a dependency analysis rule is a complicated and highly sophisticated endeavor. In this study, we exploit the fact that neural network models can learn the potential features of programs to tackle the parallelism discovery task in an end‐to‐end manner. Specifically, we developed a multigraph learning architecture on top of multiple abstract code representations in a complementary manner. In the architecture, we equip code representations with different neural network models in a targeted manner, including a deep convolutional neural network for analyzing both control and data flows and a novel neural network for learning the abstract syntax trees. Experimental results obtained on a common parallelism discovery dataset indicate that the developed multigraph learning architecture can learn potential parallelism patterns in sequential programs with high accuracy and efficiency.