TY - JOUR
T1 - Accelerating Data Dependence Profiling Through Abstract Interpretation of Loop Instructions
AU - Abbas, Mostafa
AU - Soliman, Mostafa I.
AU - Rabia, Sherif I.
AU - Kimura, Keiji
AU - El-Mahdy, Ahmed
N1 - Funding Information:
This work was supported by the Ph.D. Scholarship from the Egyptian Ministry of Higher Education (MoHE).
Publisher Copyright:
© 2013 IEEE.
PY - 2022
Y1 - 2022
N2 - Data dependence analysis is a must-do operation for parallelisation since it reveals the safe parallelisable regions of serial codes. Generally, it relies on dynamic analysis, which incurs substantial execution time and memory space overheads. As a result, there have been many efforts in the literature to strike a balance between accuracy and runtime overhead. The approaches generally rely on random instruction sampling, parallelising analysis, as well as filtering statically determined dependencies and independencies. This paper considers an alternate approach of conducting static analysis at runtime, exploiting available states just before executing loops, potentially improving precision. In particular, the paper adopts abstract interpretation using interval, congruent, and bisector domains for detecting memory data dependencies in binary programs at runtime. Abstract interpretation has the advantage of being associated with the execution semantics, making it more natural to model binary instruction execution. The profiler is implemented on top of the Pin framework and evaluated using the Polyhedral, NPB, and SPEC 2006 benchmarks suites. Results show a mean accuracy of 90.4% with an average 16.3 × speedup in time in comparison with related work, making it a promising approach.
AB - Data dependence analysis is a must-do operation for parallelisation since it reveals the safe parallelisable regions of serial codes. Generally, it relies on dynamic analysis, which incurs substantial execution time and memory space overheads. As a result, there have been many efforts in the literature to strike a balance between accuracy and runtime overhead. The approaches generally rely on random instruction sampling, parallelising analysis, as well as filtering statically determined dependencies and independencies. This paper considers an alternate approach of conducting static analysis at runtime, exploiting available states just before executing loops, potentially improving precision. In particular, the paper adopts abstract interpretation using interval, congruent, and bisector domains for detecting memory data dependencies in binary programs at runtime. Abstract interpretation has the advantage of being associated with the execution semantics, making it more natural to model binary instruction execution. The profiler is implemented on top of the Pin framework and evaluated using the Polyhedral, NPB, and SPEC 2006 benchmarks suites. Results show a mean accuracy of 90.4% with an average 16.3 × speedup in time in comparison with related work, making it a promising approach.
KW - Abstract interpretation
KW - bisector domain
KW - congruent domain
KW - data dependence profiling
KW - dynamic binary analysis
KW - interval domain
UR - http://www.scopus.com/inward/record.url?scp=85127049953&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85127049953&partnerID=8YFLogxK
U2 - 10.1109/ACCESS.2022.3160729
DO - 10.1109/ACCESS.2022.3160729
M3 - Article
AN - SCOPUS:85127049953
SN - 2169-3536
VL - 10
SP - 31626
EP - 31640
JO - IEEE Access
JF - IEEE Access
ER -