Skip to Main Content
In this paper we present a novel multilevel graph partitioning algorithm, KACE, which uses knowledge about the domain and employs several graph transformation techniques. Both functional and structural parallelism in the sequential code are explored to improve the quality of parallel tasks. Statistical information about communication times between nodes as a function of message size and/or other factors are used to have a better estimate of balancing factors, code replication, and synchronization penalties. This enables us to use a task cohesion algorithm to obtain a coarse version of the partitioned graph. Many of KACE's parameters are shown to have definite impact on the parallelized program code.