FADA: Fuzzy Array Dataflow Analysis. ADaAn: Array Dataflow Analyzer. - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

FADA: Fuzzy Array Dataflow Analysis. ADaAn: Array Dataflow Analyzer.

Description:

iterative analysis : compare two non-affine constraints by comparing the source ... Interpret all non affine constraints (and solve the rest using a parametric solver) ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 25
Provided by: COU71
Category:

less

Transcript and Presenter's Notes

Title: FADA: Fuzzy Array Dataflow Analysis. ADaAn: Array Dataflow Analyzer.


1
FADA Fuzzy Array Dataflow Analysis. ADaAn
Array Dataflow Analyzer.
By M. BELAOUCHAbem_at_prism.uvsq.fr
  • Work directed by D. Barthou and S. Touati
  • PRiSM laboratory - University of Versailles
  • ARPA-informal seminar
  • 19/02/2008

2
Introduction
  • Technological barrier reached (soon ?)
  • Parallelization
  • Automatic (icc,)
  • Bad detection Padua, 2001, 2006
  • Led by directives (OpenMP, MPI,)
  • Parallelism detection
  • We need an efficient Dataflow analysis method.

3
Outline
  • FADA
  • Exact analysis
  • Fuzzy Analysis (FADA)
  • FADA Vs. State-of-art
  • Applications parallel work
  • Implementation ADaAn
  • Conclusion

4
Dependence Analysis, the Evolution
Parametric Integer Programming (PIP)
Feautriers Exact Analysis
Fuzzy Analysis FADA
Exact Analysis (PETIT)
Adaptation of PETIT
Parametric solver (Omega)
1990
1995
2000
ZIV, MIV, GCD, BanerjeeTest
Region Analysis (PIPS)
Hybrid Analysis (Polaris)
5
Exact Analysis (Feautriers modeling)
Array Dataflow Analysis (ADA)
Which Operation writes the value of Ti,j read
by S1 during iteration (ir, jr, kr) ?
for (i1 iltN i) for (j1 jltM
j) S0 Ti,j0 for (k1 kltL
k) S1 Ti,j Ti,j Ai,kBk,j

ADA works only for static control programs
P. Feautrier Dataflow Analysis of scalar and
array references. International Journal of
Parallel Computing, 20(1)23-53, 1991.
6
FADA (Fuzzy Array Dataflow Analysis)
Can ltS0,iwgt be the source of A read by ltS2,irgt ?
for (i1 iltN i) if( c(i) ) S0
A else S1 A
endif S2 A endfor
J-F. Collard, D. Barthou, P. Feautrier. Fuzzy
Array dataflow analysis. ACM Symp. On Principles
and Practice of Parallel Programming,
30(8)29-101, Aug. 1995.
7
Reducing Fuzziness
8
Structural Analysis
FADA proves, there is no dependence carried by
the i-loop
for (i1 iltN i) if( c(i) ) S0
A else S1 A
endif S2 A
endfor
Structural property of an if-then-else construct
One and only one branch can be executed during a
given iteration.
FADA can deduce that the value of A read by
S2 is produced during the same iteration by S0
or S1.
9
Iterative Analysis
Improved Version
iterative analysis compare two non-affine
constraints by comparing the source of referenced
variables (Here, A-cells).
FADA proves, there is no dependence at all
for (i1 iltN i) if (Ai-1) S0
Bi-1 if(!Ai) S1 Bi
  • FADAs inference
  • May be there is a confilct on Bi, between S0
    during i1, and S1 during i.
  • FADA Compares if-conditions, and deduces
  • S0 can not be executed during iteration i1 if S1
    was executed during i. (for kgt0 or klt1)

Aik
FADA can deduce source of B-cells, read by
S0, can not be an S1 operation.
10
Translating Properties
  • A demonstrator, with external/internal knowledge
    (iterative analysis, structural analysis,)
  • Desired cases
  • Obtain trivial values true/false
  • Interpret all non affine constraints (and solve
    the rest using a parametric solver)

11
FADA, a global view
Program
basic analysis
  • advanced analyses
  • Structural analysis
  • Iterative analysis
  • Translating properties

Parameterized Definitions
Exact Definitions
12
Hybrid Analysis
Rus Rauchwerger Work
Regions
DS out, anti,flow
Program
USR
USR
DS
No
Yes
  • Statically
  • Building Regions, Ds And predicate DSEmpty
  • Dynamically
  • Check the predicate and branch to the correct
    version

PDAG
Sequential Version
Parallel Version
USR Uniform Sets of References PDAG Predicate
Directed Acyclic Graph DS dependencies Set RO
Read Only WR Write first (write, read) RW Read
first (read, write).
13
Hybrid Analysis Vs. Fuzzy Analysis
HA FADA
Input restrictions -no while loops support (Warning). -no aliasing -no aliasing
Method Region-computation based Instance-wise Seek-definitions based
Assertion Code generation Theoretically Well defined Less defined.
Interprocedural Natural Passes by summarizing
Albert dont agree, I think that recurrence
operator (On USR sets) do not handle while loops
(the operator requires upper and lower bounds).
14
FADA Vs. State of the art
While and if-then construct handling Comparing non affine entities Dynamic analysis
PIPS Yes No No
PETIT Yes No No
FADA Yes Yes, and all analysis will be done statically. No
HA Yes Yes, but comparison will be performed dynamically. Yes
15
Outline
  • FADA
  • Applications parallel work
  • Parallelism detection
  • Improving communications
  • Source to source transformations
  • Implementation ADaAn
  • Conclusion

16
FADAs Applications
1. Parallelism detection
No dependence carried by the i-loop
No dependence at all
for (i1 iltN i) if( c(i) ) S0
A else S1 A
endif S3 A
endfor
for (i1 iltN i) if (Ai-1)
Bi-1 Ai-2 if(!Ai)
Bi
Example 1
Example 2
17
Applications
2. Improve synchronizations and communications
pragma omp parallel cyclic for (i1 iltN
i) j0 while (f(Ai,j))
Baf(i),bj j pragma
omp parallel cyclic for (i1 iltN i)
j0 while (f(Ai,j))
Baf(i),bj j
We can remove the implicit barrier
18
Applications
3. Source-to-source transformations
pragma unroll(2) merge(while) for() j0 while(q(i,j)) ai ai j for() j0 while(q(i,j) q(i1,j)) aiai ai1ai1 j while(q(i,j)) ai ai j while(q(i1,j)) ai1 ai1 j
A simplified deep-jam example
19
Irregular code transformation
Main idea
G
G
20
Outline
  • FADA
  • Applications parallel work
  • ADaAn
  • Input
  • Preprocessing
  • output
  • Conclusion

21
ADaAn (Array Dataflow Analyzer)
Overview
Program
Preprocessing
FADAs basic analysis
PIPlib
BeeCl_at_ck
Polylib
FADAs advanced analyses
SWI-PROLOG
Verification code
Definitions
Dependence graph
22
ADaAn (Array Dataflow Analyzer)
Overview
Program
Preprocessing
FADAs basic analysis
PIPlib
BeeCl_at_ck
Polylib
FADAs advanced analyses
SWI-PROLOG
Verification code
Definitions
Dependence graph
23
ADaAn
Output
Program
Preprocessing
FADAs basic analysis
PIPlib
BeeCl_at_ck
Polylib
FADAs advanced analyses
SWI-PROLOG
Verification code
Definitions
Dependence graph
24
ADaAn
In progress
  • Achieved
  • Basic analysis
  • Structural Analysis
  • In progress
  • Parametric PROLOG-like demonstrator (for
    Iterative analysis and Translating properties)
Write a Comment
User Comments (0)
About PowerShow.com