Affine Modeling of Program Traces

Gabriel Rodriguez, Mahmut Kandemir, Juan Tourino

Research output: Contribution to journalArticle

1 Citation (Scopus)

Abstract

A formal, high-level representation of programs is typically needed for static and dynamic analyses performed by compilers. However, the source code of target applications is not always available in an analyzable form, e.g., to protect intellectual property. To reason on such applications it becomes necessary to build models from observations of its execution. This paper presents an algebraic approach which, taking as input the trace of memory addresses accessed by a single memory reference, synthesizes an affine loop with a single perfectly nested statement that generates the original trace. This approach is extended to support the synthesis of unions of affine loops, useful for minimally modeling traces generated by automatic transformations of polyhedral programs, such as tiling. The resulting system is capable of processing hundreds of gigabytes of trace data in minutes, minimally reconstructing 100 percent of the static control parts in PolyBench/C applications and 99.9 percent in the Pluto-tiled versions of these benchmarks.

Original languageEnglish (US)
Article number8408540
Pages (from-to)294-300
Number of pages7
JournalIEEE Transactions on Computers
Volume68
Issue number2
DOIs
StatePublished - Feb 1 2019

Fingerprint

Trace
Modeling
Percent
Data storage equipment
Intellectual property
Intellectual Property
Algebraic Approach
Tiling
Compiler
Union
Synthesis
Benchmark
Processing
Target
Necessary
Model

All Science Journal Classification (ASJC) codes

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computational Theory and Mathematics

Cite this

Rodriguez, Gabriel ; Kandemir, Mahmut ; Tourino, Juan. / Affine Modeling of Program Traces. In: IEEE Transactions on Computers. 2019 ; Vol. 68, No. 2. pp. 294-300.
@article{02c9b77907e143a9a12b2915424481ba,
title = "Affine Modeling of Program Traces",
abstract = "A formal, high-level representation of programs is typically needed for static and dynamic analyses performed by compilers. However, the source code of target applications is not always available in an analyzable form, e.g., to protect intellectual property. To reason on such applications it becomes necessary to build models from observations of its execution. This paper presents an algebraic approach which, taking as input the trace of memory addresses accessed by a single memory reference, synthesizes an affine loop with a single perfectly nested statement that generates the original trace. This approach is extended to support the synthesis of unions of affine loops, useful for minimally modeling traces generated by automatic transformations of polyhedral programs, such as tiling. The resulting system is capable of processing hundreds of gigabytes of trace data in minutes, minimally reconstructing 100 percent of the static control parts in PolyBench/C applications and 99.9 percent in the Pluto-tiled versions of these benchmarks.",
author = "Gabriel Rodriguez and Mahmut Kandemir and Juan Tourino",
year = "2019",
month = "2",
day = "1",
doi = "10.1109/TC.2018.2853747",
language = "English (US)",
volume = "68",
pages = "294--300",
journal = "IEEE Transactions on Computers",
issn = "0018-9340",
publisher = "IEEE Computer Society",
number = "2",

}

Affine Modeling of Program Traces. / Rodriguez, Gabriel; Kandemir, Mahmut; Tourino, Juan.

In: IEEE Transactions on Computers, Vol. 68, No. 2, 8408540, 01.02.2019, p. 294-300.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Affine Modeling of Program Traces

AU - Rodriguez, Gabriel

AU - Kandemir, Mahmut

AU - Tourino, Juan

PY - 2019/2/1

Y1 - 2019/2/1

N2 - A formal, high-level representation of programs is typically needed for static and dynamic analyses performed by compilers. However, the source code of target applications is not always available in an analyzable form, e.g., to protect intellectual property. To reason on such applications it becomes necessary to build models from observations of its execution. This paper presents an algebraic approach which, taking as input the trace of memory addresses accessed by a single memory reference, synthesizes an affine loop with a single perfectly nested statement that generates the original trace. This approach is extended to support the synthesis of unions of affine loops, useful for minimally modeling traces generated by automatic transformations of polyhedral programs, such as tiling. The resulting system is capable of processing hundreds of gigabytes of trace data in minutes, minimally reconstructing 100 percent of the static control parts in PolyBench/C applications and 99.9 percent in the Pluto-tiled versions of these benchmarks.

AB - A formal, high-level representation of programs is typically needed for static and dynamic analyses performed by compilers. However, the source code of target applications is not always available in an analyzable form, e.g., to protect intellectual property. To reason on such applications it becomes necessary to build models from observations of its execution. This paper presents an algebraic approach which, taking as input the trace of memory addresses accessed by a single memory reference, synthesizes an affine loop with a single perfectly nested statement that generates the original trace. This approach is extended to support the synthesis of unions of affine loops, useful for minimally modeling traces generated by automatic transformations of polyhedral programs, such as tiling. The resulting system is capable of processing hundreds of gigabytes of trace data in minutes, minimally reconstructing 100 percent of the static control parts in PolyBench/C applications and 99.9 percent in the Pluto-tiled versions of these benchmarks.

UR - http://www.scopus.com/inward/record.url?scp=85049678553&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85049678553&partnerID=8YFLogxK

U2 - 10.1109/TC.2018.2853747

DO - 10.1109/TC.2018.2853747

M3 - Article

AN - SCOPUS:85049678553

VL - 68

SP - 294

EP - 300

JO - IEEE Transactions on Computers

JF - IEEE Transactions on Computers

SN - 0018-9340

IS - 2

M1 - 8408540

ER -