The relationship between search based software engineering and predictive modeling
Proceedings of the 6th International Conference on Predictive Models in Software Engineering
Highly scalable multi objective test suite minimisation using graphics cards
SSBSE'11 Proceedings of the Third international conference on Search based software engineering
A fast algorithm to locate concepts in execution traces
SSBSE'11 Proceedings of the Third international conference on Search based software engineering
Search based software engineering: techniques, taxonomy, tutorial
Empirical Software Engineering and Verification
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Genetic algorithms are attractive to solve many search-based software engineering problems because they allow the easy parallelization of computations, which improves scalability and reduces computation time. In this paper, we present our experience in applying different distributed architectures to parallelize a genetic algorithm used to solve the concept identification problem. We developed an approach to identify concepts in execution traces by finding cohesive and decoupled fragments of the traces. The approach relies on a genetic algorithm, on a textual analysis of source code using latent semantic indexing, and on trace compression techniques. The fitness function in our approach has a polynomial evaluation cost and is highly computationally intensive. A run of our approach on a trace of thousand methods may require several hours of computation on a standard PC. Consequently, we reduced computation time by parallelizing the genetic algorithm at the core of our approach over a standard TCP/IP network. We developed four distributed architectures and compared their performances: we observed a decrease of computation time up to 140 times. Although presented in the context of concept location, our findings could be applied to many other search-based software engineering problems.