The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Partitioning Strategy for Nonuniform Problems on Multiprocessors
IEEE Transactions on Computers
An improved spectral graph partitioning algorithm for mapping parallel computations
SIAM Journal on Scientific Computing
Extracting task-level parallelism
ACM Transactions on Programming Languages and Systems (TOPLAS)
A measure for module cohesion
Rule-based approach to computing module cohesion
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Domain decomposition, irregular applications, and parallel computers
Domain decomposition, irregular applications, and parallel computers
A parallel algorithm for multilevel graph partitioning and sparse matrix ordering
Journal of Parallel and Distributed Computing
Multilevel k-way partitioning scheme for irregular graphs
Journal of Parallel and Distributed Computing
An affine partitioning algorithm to maximize parallelism and minimize communication
ICS '99 Proceedings of the 13th international conference on Supercomputing
Dependence Analysis
High Performance Compilers for Parallel Computing
High Performance Compilers for Parallel Computing
Graph Partitioning and Parallel Solvers: Has the Emperor No Clother? (Extended Abstract)
IRREGULAR '98 Proceedings of the 5th International Symposium on Solving Irregularly Structured Problems in Parallel
A linear-time heuristic for improving network partitions
DAC '82 Proceedings of the 19th Design Automation Conference
PACT '97 Proceedings of the 1997 International Conference on Parallel Architectures and Compilation Techniques
A Survey of Program Slicing Techniques.
A Survey of Program Slicing Techniques.
Efficient, context-sensitive pointer analysis for c programs
Efficient, context-sensitive pointer analysis for c programs
Extracting task-level parallelism from a sequential program and coarse-grain parallelism from irregular loops
Reliable software through composite design
Reliable software through composite design
Hi-index | 14.98 |
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 pIarameters are shown to have definite impact on the parallelized program code.