Proceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments 2019
DOI: 10.1145/3313808.3313812
|View full text |Cite
|
Sign up to set email alerts
|

The janus triad: exploiting parallelism through dynamic binary modification

Abstract: We present a uni ed approach for exploiting thread-level, data-level, and memory-level parallelism through a same-ISA dynamic binary modi er guided by static binary analysis. A static binary analyser rst examines an executable and determines the operations required to extract parallelism at runtime, encoding them as a series of rewrite rules that a dynamic binary modi er uses to perform binary transformation. We demonstrate this framework by exploiting three di erent kinds of parallelism to perform automatic v… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
3
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(3 citation statements)
references
References 21 publications
0
3
0
Order By: Relevance
“…Dyninst [13] offers both static and dynamic binary rewriting approaches and has been used to build tools for profiling and performance analysis [46]. Janus [26] is a hybrid static-dynamic binary modification framework based on DynamoRIO that combines the power of both static and dynamic approaches to perform complex analyses and transformations, such as binary parallelization and vectorization.…”
Section: Static-dynamic Hybrid Binary Frameworkmentioning
confidence: 99%
See 2 more Smart Citations
“…Dyninst [13] offers both static and dynamic binary rewriting approaches and has been used to build tools for profiling and performance analysis [46]. Janus [26] is a hybrid static-dynamic binary modification framework based on DynamoRIO that combines the power of both static and dynamic approaches to perform complex analyses and transformations, such as binary parallelization and vectorization.…”
Section: Static-dynamic Hybrid Binary Frameworkmentioning
confidence: 99%
“…At the entry block of each loop, during its execution, the loop is marked as an active or living loop (lines 10-12) and set back to inactive at the exit block of the loop (lines [13][14][15]. Next, at the entry to each basic block, a global counter of executed blocks is incremented and local counter of each active loop is also incremented (lines [23][24][25][26][27][28][29][30][31] to record that this basic block has been executed. At program exit, the coverage of each loop is calculated as a percentage of the total number of basic blocks executed in the program (lines 31-36).…”
Section: Case Studiesmentioning
confidence: 99%
See 1 more Smart Citation