Optimizations for hardware-software partitioning using WalkSAT
Document Type Dissertation/Thesis
Graph Partitioning is a well-known NP hard problem that asks to separate a given graph into mutually disjoint subgraphs, given specific constraints. This problem has great applicability in designing systems where hardware/software partitioning becomes essential. Given a sequential program written in a procedural language, a compiler is required to split it into a combination of hardware and software implementations, and therefore needs an efficient partitioning tool to achieve this task. The goal is to keep the execution time at a minimum, while keeping the total hardware area within the physical constraints of the available resources. This project deals with the implementation of two heuristics that can perform the aforementioned task efficiently: the Kernighan-Lin algorithm and Simulated Annealing, and improves on each of them by combining them with a stochastic technique called WalkSAT.