Parallelism detection using graph labelling

Pavel Telegin,Anton Baranov,Boris Shabanov,Artem Tikhomirov
DOI: https://doi.org/10.48550/arXiv.2212.04818
2022-12-09
Mathematical Software
Abstract:Usage of multiprocessor and multicore computers implies parallel programming. Tools for preparing parallel programs include parallel languages and libraries as well as parallelizing compilers and convertors that can perform automatic parallelization. The basic approach for parallelism detection is analysis of data dependencies and properties of program components, including data use and predicates. In this article a suite of used data and predicates sets for program components is proposed and an algorithm for computing these sets is suggested. The algorithm is based on wave propagation on graphs with cycles and labelling. This method allows analyzing complex program components, improving data localization and thus providing enhanced data parallelism detection.
What problem does this paper attempt to address?