20.03.2015 Views

CS137: Electronic Design Automation Today Last Time Force ...

CS137: Electronic Design Automation Today Last Time Force ...

CS137: Electronic Design Automation Today Last Time Force ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>CS137</strong>:<br />

<strong>Electronic</strong> <strong>Design</strong> <strong>Automation</strong><br />

<strong>Today</strong><br />

Day 20: November 23, 2005<br />

Scheduling<br />

Variants and Approaches<br />

• Scheduling<br />

– <strong>Force</strong>-Directed<br />

– SAT/ILP<br />

– Branch-and-Bound<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

1<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

2<br />

<strong>Last</strong> <strong>Time</strong><br />

<strong>Force</strong>-Directed<br />

• Resources aren’t free<br />

• Share to reduce costs<br />

• Schedule operations on resources<br />

• Greedy approximation algorithm<br />

• Problem: how exploit schedule freedom<br />

(slack) to minimize instantaneous<br />

resources<br />

– Directly solve time constrained<br />

– Trying to minimize resources<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

3<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

4<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

<strong>Force</strong>-Directed<br />

• Given a node, can schedule anywhere<br />

between ASAP and ALAP schedule<br />

time<br />

– Between latest schedule predecessor and<br />

ALAP<br />

– Between ASAP and already scheduled<br />

successors<br />

• N.b.: Scheduling node will limit freedom<br />

of nodes in path<br />

5<br />

Single Resource Challenge<br />

A1 A3 A5 A7 A8 A9 A10 A11 A12 A13<br />

A2 A4 A6<br />

B2<br />

B1<br />

B3<br />

B4<br />

B10<br />

B11<br />

B5<br />

B6<br />

B7<br />

B8<br />

B9<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

6<br />

1


<strong>Force</strong>-Directed<br />

<strong>Force</strong>-Directed<br />

• If everything where scheduled, except<br />

for the target node, we would:<br />

– examine resource usage in all timeslots<br />

allowed by precedence<br />

– place in timeslot which has least increase<br />

maximum resources<br />

• Problem: don’t know resource<br />

utilization during scheduling<br />

• Strategy: estimate resource utilization<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

7<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

<strong>Force</strong>-Directed Estimate<br />

• Assume a node is uniformly distributed<br />

within slack region<br />

– between earliest and latest possible<br />

schedule time<br />

• Use this estimate to identify most used<br />

timeslots<br />

9<br />

2<br />

2<br />

8<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

2 2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2<br />

2 2 2 2<br />

8<br />

8<br />

10<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

11<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

12<br />

2


Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 3/9<br />

8<br />

8<br />

8<br />

8<br />

2 1/9<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

13<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

14<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

<strong>Force</strong>-Directed<br />

• Scheduling a node will shift distribution<br />

– all of scheduled node’s cost goes into one<br />

timeslot<br />

– predecessor/successors may have<br />

freedom limited so shift their contributions<br />

• Want to shift distribution to minimize<br />

maximum resource utilization (estimate)<br />

15<br />

2<br />

2<br />

8<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

2 2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2<br />

2 2 2 2<br />

8<br />

8<br />

Repeat<br />

16<br />

2<br />

2<br />

8<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

2 2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2<br />

2 2 2 2<br />

8<br />

2 1/9<br />

2 3/9<br />

8<br />

Repeat<br />

17<br />

2<br />

2<br />

8<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

2 2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2<br />

2 2 2 2<br />

8<br />

8<br />

18<br />

3


Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

3 4/9<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

19<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

20<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

3 2/9<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 3/9<br />

8<br />

8<br />

8<br />

8<br />

2 1/9<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

21<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

22<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 3/9<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 3/9<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

23<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

24<br />

4


Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

3<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

25<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

26<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 13/18<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

27<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

28<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

3 2/9<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

29<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

30<br />

5


Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 13/18<br />

8<br />

8<br />

2 13/18<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

31<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

32<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 13/18<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

33<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

34<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 13/18<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

35<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

36<br />

6


Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

2 13/18<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

37<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

38<br />

Single Resource Challenge<br />

Single Resource Challenge<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2 2<br />

2<br />

2 2 2 2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

8<br />

Many steps…<br />

8<br />

8<br />

8<br />

8<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

39<br />

8<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

40<br />

<strong>Force</strong>-Directed Algorithm<br />

1. ASAP/ALAP schedule to determine range of<br />

times for each node<br />

2. Compute estimated resource usage<br />

3. Pick most constrained node<br />

(in largest time slot…)<br />

– Evaluate effects of placing in feasible time slots<br />

(compute forces)<br />

– Place in minimum cost slot and update<br />

estimates<br />

– Repeat until done<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

41<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

<strong>Time</strong><br />

• Evaluate force of putting in timeslot<br />

O(NT)<br />

– Potentially perturbing slack on net<br />

prefix/postfix for this node N<br />

– Each node potentially in T slots<br />

• Evaluate all timeslots can put in O(NT 2 )<br />

• N nodes to place<br />

•O(N 2 T 2 )<br />

– Loose bound--don’t get both T slots and N<br />

perturbations<br />

42<br />

7


Two Constraint Challenge<br />

SAT/ILP<br />

(Integer-Linear Programming)<br />

• Processing elements have limited<br />

memory<br />

– Instruction memory (data memory)<br />

• Tasks have different requirements for<br />

compute and instruction memory<br />

– i.e. Run length not correlated to code<br />

length<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

43<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

44<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Task<br />

• Task: schedule tasks onto PEs obeying<br />

both memory and compute capacity<br />

limits<br />

Example and<br />

ILP solution<br />

From<br />

Plishker et al.<br />

NSCD2004<br />

45<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Task<br />

• Task: schedule tasks onto PEs obeying<br />

both memory and compute capacities<br />

• two capacity partitioning problem<br />

– …actually, didn’t say anything about<br />

communication…<br />

• two capacity bin packing problem<br />

• Task: i <br />

46<br />

SAT Packing<br />

•A i,j – task i assigned to resource j<br />

Constraints<br />

• Coverage constraints<br />

• Uniqueness constraints<br />

• Cardinality constraints<br />

– PE compute<br />

– PE memory<br />

Allow Code Sharing<br />

• Two tasks of same type can share code<br />

• Instead of memory capacity<br />

– Vector of memory usage<br />

• Compute PE Imem vector<br />

– As OR of task vectors assigned to it<br />

• Compute mem space as sum of nonzero<br />

vector entries<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

47<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

48<br />

8


CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Allow Code Sharing<br />

• Two tasks of same type can share code<br />

• Task has vector of memory uage<br />

– Task i needs set of instructions k: T i,k<br />

• Compute PE Imem vector<br />

– OR (all i): PE.Imem j,k +=A i,j * T i,k<br />

• PE Mem space<br />

– PE.Total_Imem j = Σ(PE.Imem j,k *Instrs(k))<br />

49<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Symmetries<br />

• As with partitioning, many symmetries<br />

• Speedup with symmetry breaking<br />

– Tasks in same class are equivalent<br />

– PEs indistinguishable<br />

– Total ordering on tasks and PEs<br />

– Add constraints to force tasks to be assigned<br />

to PEs by ordering<br />

– Plishker claims “significant runtime speedup”<br />

– Using GALENA [DAC 2003] psuedo-Boolean<br />

SAT solver<br />

50<br />

Plishker Task Example<br />

Results<br />

Greedy (first-fit) binpack<br />

SAT/ILP Solve<br />

Solutions in < 1 second<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

51<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

52<br />

Why can they do this?<br />

Why can they do this?<br />

• Ignore precedence?<br />

• Ignore Interconnect?<br />

• Ignore precedence?<br />

– feed forward, buffered<br />

• Ignore Interconnect?<br />

– Through shared memory, not dominant?<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

53<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

54<br />

9


Interconnect Buffers<br />

Interconnect<br />

Buffer<br />

• Allow “Software Pipelining”<br />

Each data item<br />

Spatial we would pipeline, running all three at once<br />

Think of each schedule instance as one<br />

timestep in spatial pipeline.<br />

A B C<br />

50 100 50<br />

PE0 C A<br />

PE1<br />

B<br />

A B C<br />

A B C<br />

A B C<br />

A B C<br />

B B B B<br />

C A C A C A C A<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

55<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

56<br />

Add Precedence to SAT/ILP?<br />

• Assign start time to each task<br />

• Precedence: constrain start of each<br />

task to be greater than start+run of each<br />

predecessor<br />

• <strong>Time</strong> Exclusivity: constrain nonoverlap<br />

of startstart+run-1 on nodes<br />

on same PE<br />

– Maybe formulate as order on PE<br />

– And make PE order predecessor like a<br />

task predecessor?<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Untested conjecture<br />

57<br />

Memory Schedule Variants<br />

• Persistent: holds memory whole time<br />

– E.g. task state, instructions<br />

• Task temporary: only uses memory<br />

space while task running<br />

• Intra-Task: use memory between point<br />

of production and consumption<br />

– E.g. Def-Use chains<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

58<br />

Memory Schedule Variants<br />

• Persistent:<br />

– Binpacking in memory<br />

• Task temporary:<br />

– Co-schedule memory slot with execution<br />

• Intra-Task:<br />

– Lifetime in memory depends on scheduling<br />

def and last use<br />

– Phase Ordered: Register coloring<br />

Branch-and-Bound<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

59<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

60<br />

10


CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Brute-<strong>Force</strong><br />

• Try all schedules<br />

• Branching/Backtracking Search<br />

• Start w/ nothing scheduled (ready<br />

queue)<br />

• At each move (branch) pick:<br />

– available resource time slot<br />

– ready task (predecessors completed)<br />

– schedule task on resource<br />

61<br />

Example<br />

T1<br />

T4<br />

T2<br />

T6<br />

T5<br />

T1→time 1<br />

T3→time 1<br />

T3<br />

T2→time 1<br />

Target: 2 FUs<br />

idle→time 1<br />

idle→time 2 T4→time 2<br />

T3→time2<br />

62<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Branching Search<br />

• Explores entire state space<br />

– finds optimum schedule<br />

• Exponential work<br />

–O (N (resources*time-slots) )<br />

• Many schedules completely<br />

uninteresting<br />

Reducing Work<br />

1. Canonicalize “equivalent” schedule<br />

configurations<br />

2. Identify “dominating” schedule<br />

configurations<br />

3. Prune partial configurations which will<br />

lead to worse (or unacceptable<br />

results)<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

63<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

64<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

“Equivalent” Schedules<br />

• If multiple resources of same type<br />

– assignment of task to particular resource at<br />

a particular timeslot is not distinguishing<br />

T1<br />

T2<br />

T3<br />

Keep track of resource usage by capacity at time-slot.<br />

T2<br />

T1<br />

T3<br />

65<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

“Equivalent” Schedule<br />

Prefixes<br />

T1<br />

T4<br />

T2<br />

T6<br />

T5<br />

T3<br />

T1 T3<br />

T1 T2<br />

T2 T4<br />

T3 T4<br />

66<br />

11


“Non-Equivalent” Schedule<br />

Prefixes<br />

T1<br />

T4<br />

T2<br />

T6<br />

T5<br />

T3<br />

T1<br />

T2<br />

T3<br />

T2<br />

T3<br />

T1<br />

Pruning Prefixes?<br />

• I’m not sure there is an efficient way<br />

(general)?<br />

• Keep track of schedule set<br />

– walk through state-graph of scheduled<br />

prefixes<br />

– unfortunately, set is power-set so 2 N<br />

– …but not all feasible, so shape of graph<br />

may simplify<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

67<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

68<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Dominant Schedules<br />

• A strictly shorter schedule<br />

– scheduling the same or more tasks<br />

– will always be superior to the longer<br />

schedule<br />

T1<br />

T3<br />

T3<br />

T2<br />

T1<br />

T4<br />

T5<br />

T4<br />

T3<br />

T4<br />

T2 T5<br />

T1 T2 T5<br />

69<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Pruning<br />

• If can establish a particular schedule<br />

path will be worse than one we’ve<br />

already seen<br />

– we can discard it w/out further exploration<br />

• In particular:<br />

– LB=current schedule time +<br />

lower_bound_estimate<br />

– if LB greater than existing solution, prune<br />

70<br />

Pruning Techniques<br />

Establish Lower Bound on schedule time<br />

• Critical Path (ASAP schedule)<br />

• Resource Bound<br />

• Critical Chain<br />

“Critical Chain” Lower Bound<br />

• Bottleneck resource present coupled<br />

resource and latency bound<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

71<br />

Single red resource<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

72<br />

12


“Critical Chain” Lower Bound<br />

• Bottleneck resource present coupled<br />

resource and latency bound<br />

Single red resource<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Critical path 5<br />

Resource Bound (1,1) 4<br />

Critical Chain (1,1) 7<br />

73<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Alpha-Beta Search<br />

• Generalization<br />

– keep both upper and lower bound<br />

estimates on partial schedule<br />

• Lower bounds from CP, RB, CC<br />

• Upper bounds with List Scheduling<br />

– expand most promising paths<br />

• (least upper bound, least lower bound)<br />

– prune based on lower bounds exceeding<br />

known upper bound<br />

– (technique typically used in games/Chess)<br />

74<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Alpha-Beta<br />

• Each scheduling decision will tighten<br />

– lower/upper bound estimates<br />

• Can choose to expand<br />

– least current time (breadth first)<br />

– least lower bound remaining (depth first)<br />

– least lower bound estimate<br />

– least upper bound estimate<br />

• Can control greediness<br />

– weighting lower/upper bound<br />

– selecting “most promising”<br />

75<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

Note<br />

• Aggressive pruning and ordering<br />

– can sometimes make polynomial time in<br />

practice<br />

– often cannot prove will be polynomial time<br />

– usually represents problem structure we<br />

still need to understand<br />

76<br />

Multiple Resources<br />

• Works for multiple resource case<br />

• Computing lower-bounds per resource<br />

– resource constrained<br />

• Sometimes deal with resource coupling<br />

– e.g. must have 1 A and 1 B simultaneously<br />

or in fixed time slot relation<br />

• e.g. bus and memory port<br />

Summary<br />

• Resource estimates and Refinement<br />

• SAT/ILP Schedule<br />

• Software Pipelining<br />

• Branch-and-bound search<br />

– “equivalent” states<br />

– dominators<br />

– estimates/pruning<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

77<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

78<br />

13


Admin<br />

Big Ideas:<br />

• Class<br />

– Friday (no holiday)<br />

– Next week:<br />

• Monday, Friday<br />

• No Wed.<br />

• Next week’s reading all online<br />

• Estimate Resource Usage<br />

• Use dominators to reduce work<br />

• Techniques:<br />

– <strong>Force</strong>-Directed<br />

– SAT/ILP<br />

–Coloring<br />

–Search<br />

• Branch-and-Bound<br />

• Alpha-Beta<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

79<br />

CALTECH <strong>CS137</strong> Fall2005 -- DeHon<br />

80<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!