2013
DOI: 10.1145/2544173.2509545
|View full text |Cite
|
Sign up to set email alerts
|

Language support for dynamic, hierarchical data partitioning

Abstract: We present a data driven algorithm for equivalence checking of two loops. The algorithm infers simulation relations using data from test runs. Once a candidate simulation relation has been obtained, off-the-shelf SMT solvers are used to check whether the simulation relation actually holds. The algorithm is sound: insufficient data will cause the proof to fail. We demonstrate a prototype implementation, called DDEC, of our algorithm, which is the first sound equivalence checker for loops written in x86 assembly. Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
4
0

Year Published

2016
2016
2020
2020

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 11 publications
(4 citation statements)
references
References 37 publications
0
4
0
Order By: Relevance
“…Legion [6,34] is a data-centric programming model and runtime for executing applications on distributed parallel systems. Legion maps each computation step to its data dependencies (i.e., the input of one step is the output of another).…”
Section: Related Workmentioning
confidence: 99%
“…Legion [6,34] is a data-centric programming model and runtime for executing applications on distributed parallel systems. Legion maps each computation step to its data dependencies (i.e., the input of one step is the output of another).…”
Section: Related Workmentioning
confidence: 99%
“…Here we will just briefly review how we uniformly represent memory hierarchies in the framework, and how we have implemented the thread-to-cache affinities. [1] , [2] , [3] , [4] , [5] , [6] , [7]] , " size " : 524288 , " cacheLineSize " : 64 , " child " : { " siblings " : [[ ] , [1] , [2] , [3] , [4] , [5] , [6] , [7]] , " size " : 65536 , " cacheLineSize " : 64 , " child " : n u l l } } } } Listing 1: A NUMA node comprising two quad-core CPUs and 8 GBytes of RAM -4 Gbytes per CPU. Each CPU features a single L3 cache and four L1 and L2 caches -one per core.…”
Section: Implementation Detailsmentioning
confidence: 99%
“…Cache-guided optimizations in mainstream compilers consist essentially of loop transformations [1] directed at sequential loops, which, in the context of parallel computing, may only be applied to the internal execution of tasks. In fact, the data locality issue in parallel computing has been mostly addressed at language level, via linguistic constructions for the explicit programming of the memory hierarchy [2,3,4,5,6,7]. However, these place a heavy burden on the programmer, requiring in-depth knowledge of parallel programming and computer architecture.…”
Section: Introductionmentioning
confidence: 99%
“…Programs written for Sequoia are composed of two parts: (a) an algorithmic representation of the computation using a C-like programming language that decomposes data structures and denes how to map the computation on them; and (b) a mapping of the algorithm to the specic system using a declarative language. Legion [94] is a generalization of Sequoia that exposes abstractions to declare the properties of program data. Programmers dynamically organize data into regions and dene how regions are accessed (i.e., access privileges) and computed.…”
Section: Languages For Multi-gpu Executionmentioning
confidence: 99%