Back to Search
Start Over
IR-Level Dynamic Data Dependence Using Abstract Interpretation Towards Speculative Parallelization
- Source :
- IEEE Access, Vol 8, Pp 99910-99921 (2020), IEEE Access, IEEE Access, IEEE, 2020, 8, pp.99910-99921. ⟨10.1109/ACCESS.2020.2997715⟩, IEEE Access, 2020, 8, pp.99910-99921. ⟨10.1109/ACCESS.2020.2997715⟩
- Publication Year :
- 2020
- Publisher :
- IEEE, 2020.
-
Abstract
- International audience; 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.
- Subjects :
- General Computer Science
Computer science
[INFO.INFO-OH]Computer Science [cs]/Other [cs.OH]
02 engineering and technology
Parallel computing
Dependence analysis
computer.software_genre
dependence analysis
Set (abstract data type)
parallelization
0202 electrical engineering, electronic engineering, information engineering
Overhead (computing)
General Materials Science
Multi-core processor
Intermediate language
Dynamic data
General Engineering
020207 software engineering
Abstract interpretation
dynamic analysis
Automatic parallelization
020201 artificial intelligence & image processing
Compiler
lcsh:Electrical engineering. Electronics. Nuclear engineering
computer
lcsh:TK1-9971
Interpreter
Compile time
Subjects
Details
- Language :
- English
- ISSN :
- 21693536
- Volume :
- 8
- Database :
- OpenAIRE
- Journal :
- IEEE Access
- Accession number :
- edsair.doi.dedup.....ef343f2a10843df3fb0ed404a2c2ceef
- Full Text :
- https://doi.org/10.1109/ACCESS.2020.2997715⟩