Cargando…

Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime

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 instructi...

Descripción completa

Detalles Bibliográficos
Autores principales: Omar, Rasha, Abbas, Mostafa, El-Mahdy, Ahmed, Rohou, Erven
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Public Library of Science 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7144976/
https://www.ncbi.nlm.nih.gov/pubmed/32271797
http://dx.doi.org/10.1371/journal.pone.0230904
_version_ 1783519917830569984
author Omar, Rasha
Abbas, Mostafa
El-Mahdy, Ahmed
Rohou, Erven
author_facet Omar, Rasha
Abbas, Mostafa
El-Mahdy, Ahmed
Rohou, Erven
author_sort Omar, Rasha
collection PubMed
description 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.
format Online
Article
Text
id pubmed-7144976
institution National Center for Biotechnology Information
language English
publishDate 2020
publisher Public Library of Science
record_format MEDLINE/PubMed
spelling pubmed-71449762020-04-10 Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime Omar, Rasha Abbas, Mostafa El-Mahdy, Ahmed Rohou, Erven PLoS One Research Article 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. Public Library of Science 2020-04-09 /pmc/articles/PMC7144976/ /pubmed/32271797 http://dx.doi.org/10.1371/journal.pone.0230904 Text en © 2020 Omar et al http://creativecommons.org/licenses/by/4.0/ This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
spellingShingle Research Article
Omar, Rasha
Abbas, Mostafa
El-Mahdy, Ahmed
Rohou, Erven
Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
title Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
title_full Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
title_fullStr Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
title_full_unstemmed Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
title_short Binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
title_sort binary-level data dependence analysis of hot execution regions using abstract interpretation at runtime
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7144976/
https://www.ncbi.nlm.nih.gov/pubmed/32271797
http://dx.doi.org/10.1371/journal.pone.0230904
work_keys_str_mv AT omarrasha binaryleveldatadependenceanalysisofhotexecutionregionsusingabstractinterpretationatruntime
AT abbasmostafa binaryleveldatadependenceanalysisofhotexecutionregionsusingabstractinterpretationatruntime
AT elmahdyahmed binaryleveldatadependenceanalysisofhotexecutionregionsusingabstractinterpretationatruntime
AT rohouerven binaryleveldatadependenceanalysisofhotexecutionregionsusingabstractinterpretationatruntime