Any complex system, consisting of a large number of components, cannot be designed efficiently without decomposing it into a set of smaller subsystems. After the decomposition, each subsystem can be designed independently and simultaneously to speed up the design process. A system must be decomposed carefully so that the original functionality of the system is maintained. During the decomposition, an interface specification is generated which is used to connect all the subsystems. Usually, the system decomposition is done in a manner so as to minimize the interface interconnections between any two subsystems. The decomposition process should be simple and efficient so that the time required for the decomposition is a small fraction of the total design time. The process of decomposition is called partitioning. After partitioning, a subsystem may still be too large to be designed efficiently and may require further partitioning. Thus, partitioning can be used in a hierarchical manner until each subsystem is of manageable size. Partitioning is a general technique and is used in diverse areas. For example, in algorithm design, the divide and conquer approach is routinely used to partition complex problems into smaller and simpler problems. As the parallel computation techniques become more and more popular, combining partitioning and parallel processing techniques provides a promising tool for solving complex problems.
KeywordsSimulated Annealing Critical Path Group Migration Vertex Pair Area Constraint
Unable to display preview. Download preview PDF.