Title: Exploring heuristics for Synchronous Data Flow scheduling
1Exploring heuristics forSynchronous Data Flow
scheduling
- Pieter Hartel
- Theo Ruys
- Marc Geilen
2What do we mean by Synchronous Data Flow?
Periodic schedules aababc (max c04) and aaabbc
(max c06)
Two problems Separate buffers for c0 and c1 or
shared buffer?
a x3
b x2
c x1
2
3
1
2
c0
c1
- Data driven
- Fixed prod cons rates
- Cycles are ok
- Conditionals not ok
- (No self edges)
- Simple semantics
- Scheduling NP hard
- Signal processing
- Many variants
3Semantics (Lee et al, 1987)
a
b
c
- G
- s(0)
- ?(i) pick column of G
- s(i1) s(i)?(i), ? 0
0
0
2 -3 0
0 1 -2
c0
2
0
c1
Explore the state space Looking for a
cycle Avoiding duplicate work i.e. Model
Checking...
4
0
0
0
6
0
1
1
3
1
0
2
Common buffer space 4, separate buffers 6
4Admissible schedules
- Consistent sample rate Rank(G)N-1
- Repetition vector r?0 solve G r0
- G r
- No deadlock
c0
-1
2
4
a x1
b x2
2
1
1
2
-4 2
2 -1
c1
5Objective Minimise buffer space
- Calculate for each channel
- pprod. ccons. tinitial tokens rrep. rate
of node - min pc-gcd(p,c)t mod gcd(p,c)
- max pr
total cddat modem adeb inmars h263
min 32 38 39 1508 7133
feas. 32 38 42 1508 7133
max 1021 61 133 3936 9508
6Check common buffer (DAC05)
byte c0, c1 do /a/ c0
2 /b/ c0gt3 -gt c0 - 3 c1
1 /c/ c1gt2 -gt c1 - 2 od
c1
c0
a
b
c
2
3
1
2
(c0c1 lt 4)
7Separate buffer SPIN model (DAC05)
byte c0, c1 byte s04, s12 / min. buffer size
calculated from G / init do /a/ c0
2 s0 max(c0,s0) /b/ c0gt3 -gt c0
- 3 c1 1 s1 max(c1,s1) /c/
c1gt2 -gt c1 - 2 od
Can we make this more abstract?
c1
c0
a
b
c
2
3
1
2
LTL feasible (s0s1 lt 6) infeasible
(s0s1 lt 5)
LTL without s0,s1 (c0lt4 c1lt2)
8Limit times a node is fired(sound but not
complete)
Cant compute n from c
byte na, nb, nc define c0 (na2-nb3) define
c1 (nb1-nc2) init do /a/
(nalt3) -gt na /b/ (nblt2
c0gt3) -gt nb /c/ (nclt1
c1gt2) -gt nc od define property (c0lt4
c1lt2) define reset (c00 c10)
3
2
1
Repetition vector G 0
LTL formula X (property U reset)
9Look ahead is unsound
adebetter
h x5
i x5
j x5
1
1
1
1
c3
c2
1
1
c4
c0
1
c1
k x1
l x5
5
5
1
10Clustering is sound, but incomplete
c x5
c x5
Inmarsat
1
1152
1
1152
1
96
d x5760
d x60
transform
1
96
Proof 96605760 965480
480
480
e x12
e x12
11Checking the bounds
- Simple C program generates Promela models from
- the topology matrix and initial token assignment
of 10 common benchmarks - in 146 versions
- SPIN does the hard work
- Performance comparable with special purpose
research tools from Eindhoven Twente (separate
buffers only)
12States stored(20-30K per second)
Limiting look ahead
Clustering
 separate modem adebetter inmarsat inmarsat
feas DAC05 210 8602 2862 148
feas FMCAD08 50 129 1133 52
infeas DAC05 2 1708 2 2
infeas FMCAD08 - 721 - -
common modem adebetter inmarsat inmarsat
feas DAC05 1231 156 180369 163
feas FMCAD08 176 109 1110 52
infeas DAC05 853 140 gt 5 min 240
infeas FMCAD08 852 139 gt 5 min 81
13Finding the bounds(common buffer pool)
- Start with initial guess g for the optimal bound
and step size s using modified DAC05 model - repeat
- exit if SPIN finds a schedule with an optimal
bound b g -- down - g ? gs -- up
- end repeat
14How well does this work?
Adebetter Adebetter Adebetter
g states bound
10 30 none
14 66 none
18 157 none
22 7648 21,20,19,18
total 7901
19 1568 18
ratio 5
ratios ratios
Adebetter 5
Ade Inmarsat 4
rest 2
up
Optimal bound
down
Best case start at optimal bound1
15Conclusions
- Creative laziness use SPIN as the Swiss army
knife of Computer Science - Creating abstract models is hard
- The effective ideas can be implemented in special
purpose tools - Some new theory for the common buffer pool sizes