Abstract

With the widespread of multicore systems, automatic parallelization becomes more pronounced, particularly for legacy programs, where the source code is not generally available. An essential operation in any parallelization system is detecting data dependence among parallelization candidate instructions. Conducting dependence analysis at the binary-level is more challenging than that at the source-level due to the much lower semantics of the binary code. In this paper, we consider using the elaborate 'static' analysis of abstract interpretation, for the first time, at runtime for data dependence detection. Specifically, our system interprets instructions at a hot region, while at the same time, collect programs semantics for seen program points, thereby conducting abstract interpretation analysis dynamically. The analysis is guaranteed to be correct as long as execution does not exit the region prematurely. Moreover, successive hot region re-entries will resume previous analysis, albeit much faster in case no major change in the program semantics. Such approach provides for more rigorous analysis than other simple dynamic analysis which would typically miss parallelization opportunities. The proposed approach also does not require any hardware support, availability of the source code, as well as any code re-compilation. To study the performance and accuracy of our approach, we have extended the Padrone dynamic code modification framework, and conduct an initial study on a set of PolyBench kernels and selected programs from SPEC CPU. Experimental results show accurate dependence detection with low overhead.

Highlights

  • Multicore architecture is vastly used and automatic code parallelization becomes a hot concern

  • We rely on conducting dynamic binary analysis (DBA) using Abstract Interpretation (AI) to run the program using speculative parallelization

  • We provide the necessary background on speculative parallelization, AI, DBA, and the Padrone binary modification framework

Read more

Summary

Introduction

Multicore architecture is vastly used and automatic code parallelization becomes a hot concern. Speculative parallelization is a promising technique that can be used to select potentially parallel region based on runtime analysis [1], parallelize the code, and provide for rolling-back mechanisms for maintaining correctness, in case of incorrect analysis Another approach is purely static, where the analysis guarantees that no data dependence exits. Dynamic binary-level data dependence analysis technique of hot execution regions. One of these techniques is Abstract Interpretation (AI), which is an elaborate static analysis method that is generally used in program verification It simplifies gathering all possible program execution states (collective trace semantics) through abstracting program states and statements. We propose applying AI data dependence technique at runtime for hot binary code regions. Dynamic binary-level data dependence analysis technique of hot execution regions analysis, and the underlying Padrone binary modification framework, Padrone.

Related work
Background
Speculative parallelization
Abstract interpretation
Dynamic binary analysis
Padrone framework
Runtime AI approach
Our method design and implementation
Padrone lightweight profiling and hot function extraction
Interpreting and emulating
Dynamic AI
Fixpoint computation
Intersection computation
Binary code annotated with dependence flags
Experimental results
Conclusions and future work
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

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.