15.11.2012 Views

Parallelized Critical Path Search in Electrical Circuit Designs

Parallelized Critical Path Search in Electrical Circuit Designs

Parallelized Critical Path Search in Electrical Circuit Designs

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

In practice, for both the aforementioned generalizations,<br />

there exist more algorithms than for runn<strong>in</strong>g a s<strong>in</strong>gle-pair<br />

shortest path algorithm on all relevant pairs of vertices.<br />

2.1. Bidirectional Dijkstra <strong>Search</strong><br />

If a po<strong>in</strong>t-to-po<strong>in</strong>t shortest path search is performed, then<br />

the start po<strong>in</strong>t as well as the target po<strong>in</strong>t are known. The<br />

orig<strong>in</strong>al unidirectional shortest path search algorithm <strong>in</strong>troduced<br />

by Dijkstra [5], starts from the start po<strong>in</strong>t and performs<br />

a shortest path search <strong>in</strong> a depth first manner until<br />

the target po<strong>in</strong>t is reached. The runtime for this search is<br />

O(n log n).<br />

Luby and Ragde [15] presented a bidirectional version<br />

of the Dijkstra algorithm with an expected run time of<br />

O( √ n log n). Such a bidirectional search consists of two<br />

phases. In the first phase, two unidirectional Dijkstra search<br />

runs start from the start po<strong>in</strong>t as well as from the target.<br />

Both runs span a tree by alternat<strong>in</strong>g between start and target,<br />

and expand<strong>in</strong>g the next level of reachable nodes. From<br />

these trees, the m<strong>in</strong>imum distance to the start with respect<br />

to the target is known. As long as there are no visible edges<br />

<strong>in</strong> both runs, alternate nodes can be expanded and added to<br />

the tree. Thus, the shortest path between the start and target<br />

nodes is with<strong>in</strong> the two expanded search trees. In the second<br />

phase, the shortest path out of the two trees needs to be<br />

collected.<br />

Accord<strong>in</strong>g to Fu et al. [9], the time complexity of the<br />

bidirectional Dijkstra algorithm is 1<br />

8 O(n2 ) on a s<strong>in</strong>gle-core<br />

or uniprocessor systems. It is obvious that this approach<br />

can optimally be distributed over two processes runn<strong>in</strong>g on<br />

a dual-core or multi-processor mach<strong>in</strong>e.<br />

3. General Approach to the Shortest <strong>Path</strong><br />

Problem<br />

A more general approach to speed-up the po<strong>in</strong>t-to-po<strong>in</strong>t<br />

shortest path problem is to divide the graph <strong>in</strong>to separate<br />

sub-graphs. Each of this sub-graphs can be processed on its<br />

own <strong>in</strong> a separate process.<br />

The ma<strong>in</strong> challenge is to divide the circuit represented<br />

by the graph <strong>in</strong>to mean<strong>in</strong>gful units. Figure 1(a) shows a<br />

graph with 16 nodes. The only mean<strong>in</strong>gful criteria by which<br />

the graph could be divided are partition size and number<br />

of <strong>in</strong>terl<strong>in</strong>k<strong>in</strong>g nodes. Usually, the created sub-graphs are<br />

balanced, i.e. each partition should have the same amount<br />

of nodes, as shown <strong>in</strong> Figure 1(b).<br />

The graph partition<strong>in</strong>g of our approach uses arithmetic<br />

and logic modules <strong>in</strong>formation, as depicted <strong>in</strong> Figure 2. As<br />

a result, this heuristic can be used to speed-up the partition<strong>in</strong>g<br />

process. In general, there are two methods of graph partitions:<br />

static and dynamic. These methods are expla<strong>in</strong>ed<br />

next.<br />

(a) A graph with 16 nodes.<br />

(b) A graph with three balanced partitions.<br />

Figure 1. Graph divided by m<strong>in</strong>imiz<strong>in</strong>g the<br />

number of <strong>in</strong>terl<strong>in</strong>k nodes.<br />

Figure 2. Two different ways to partition a circuit<br />

depend<strong>in</strong>g on the electrical modules.

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

Saved successfully!

Ooh no, something went wrong!