Abstract
Recently, with the wide usage of multicore architectures, automatic parallelization has become a pressing issue. Speculative parallelization, one of the most popular automatic parallelization techniques, depends on estimating probably-parallelized code parts. This in turn motivates the employment of data dependence detection techniques for these code parts to report whether they contain dependence or not in order to be parallelized. In this paper, we propose a runtime data-dependence detection technique that is based on abstract interpretation at the intermediate representation (IR) level. We apply our proposed approach on the most frequently visited blocks of the code, hot loops. Unlike most existing approaches in which data analysis occurs at compile time, our proposed method conducts the analysis immediately while interpreting the code, which in turn saves the analysis time for potentially parallelized loops. Specifically, the proposed technique depends on the concept of abstract interpretation to analyze the hot loops at runtime. This process is done by firstly computing the abstract domain for each hot loop program points. Each abstract domain is incrementally computed, till a fixpoint is achieved for all program points, and correspondingly the analysis terminates in order to consecutively detect the existence of data dependence. Once the analysis result reports a parallelization possibility for the finished hot loop, the interpreter invokes the compiler to resume the execution in a parallel fashion as recommended by our proposed approach. The proposed technique is implemented on LLVM compiler, then used to test the dependence detection for a set of kernels on the Polybench framework, and the data dependence analysis required for each kernel is studied in terms of the computation overhead.
Highlights
Nowadays, parallelization in multicore systems represent one of the challenging research topics
We propose a runtime data-dependence detection technique that is based on abstract interpretation at the intermediate representation (IR) level
The proposed technique is implemented on LLVM compiler, used to test the dependence detection for a set of kernels on the Polybench framework, and the data dependence analysis required for each kernel is studied in terms of the computation overhead
Summary
Parallelization in multicore systems represent one of the challenging research topics. There are different techniques to enhance the usage of multicore systems. One of these techniques, Speculative Parallelization (SP), is used to anticipate whether the instruction pair could be parallelized or not [1]. This paper aims to apply dynamic data dependence analysis using AI in order to carry out parallelization. PARALLELIZATION There are various parallelization techniques which are applicable with many compilers These techniques are classified into two major categories. The first category is based on the scheme of inspector-executor which aims to extract loop with some directives. The data dependence analysis for speculative systems is studied over loop indices. These indices are used mainly with arrays. The violations may occurr while accessing memory [22], [23]
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.