Efficient Parallel Execution of IDA on Shared and Distributed Memory Multiprocessors

V.A. Saletore, L.V. Kale
The Sixth Distributed Memory Computing Conference, 1991. Proceedings  
Iterative Deepening A* (IDA*) is an algorithm for finding an opiimal solution to state-space seanch problems in a memory eficient manner. Previous schemes for parallel execution of IDA* exhibit anomalous behaviouri.e. multiple runs of the algorithm for the same problem instance m a y produce speedups widely varying between sublinear and superlinear; Moreover, addition of processors may lead to a slowdown. Further, IDA *'s multiple iterations cause the parallelism to increase and decrease in
more » ... s, leading to /ow processor utilisation. I n this paper we present techniques that eflectively paralleliie IDA* so as to produce consistent and monotonically increasing speedups with the addition of processors. The techniques employ a combination of scheduling strategies based on bit-vector priorities. A secondary advantage of our scheme is its memory usage is not proportional to the number of processors, unlike the previous schemes. Performance data obtained on shared and distributed memory multiprocessors show that we achaeve our objectavtes. [5, y, on the other hand, requires memory linear in the epth of the search space. IDA* is a state-space search algorithm for finding an optimal solution. It works by iteratively conducting a cost-bounded depth-first search over the search space with increasing bounds. Similar to other heuristics search procedures (e.g. A* algorithm), it uses two functions g and h, where for each node n, g ( n ) is the
doi:10.1109/dmcc.1991.633162 fatcat:4ihl4rjkvfcxziwsvs5whmvyei