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.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.