Distributed systems comprising networked heterogeneous
workstations are now considered to be a viable choice for
high-performance computing. For achieving a fast response time from such
systems, an efficient assignment of the application tasks to the
processors is imperative. The general assignment problem is known to be
NP-hard, except in a few special cases with strict assumptions. While a
large number of heuristic techniques have been suggested in the
literature that can yield sub-optimal solutions in a reasonable amount
of time, we aim to develop techniques for optimal solutions under
relaxed assumptions. The basis of our research is a best-first search
technique known as the A* algorithm from the area of artificial
intelligence. The original search technique guarantees an optimal
solution but is not feasible for problems of practically large sizes due
to its high time and space complexity. We propose a number of algorithms
based around the A* technique. The proposed algorithms also yield
optimal solutions but are considerably faster. The first algorithm
solves the assignment problem by using parallel processing.
Parallelizing the assignment algorithm is a natural way to lower the
time complexity, and we believe our algorithm to be novel in this
regard. The second algorithm is based on a clustering based
pre-processing technique that merges the high affinity tasks. Clustering
reduces the problem size, which in turn reduces the state-space for the
assignment algorithm. We also propose three heuristics which do not
guarantee optimal solutions but provide near-optimal solutions and are
considerably faster. By using our parallel formulation, the proposed
clustering technique and the heuristics can also be parallelized to
further improve their time complexity