Research Abstracts Online
January 2010 - March 2011
University of Minnesota Twin Cities
College of Science and Engineering
of Computer Science and Engineering
PI: Mats Heimdahl
Parallel Java Pathfinder
These researchers are exploring parallelizing the Java Pathfinder model checker, a tool for exploring the state space of a program written in Java. Java Pathfinder is used for a variety of tasks, including detecting faults and generating tests.
The researchers are particularly interested in parallelizing the symbolic execution mode of Java Pathfinder in order to improve the speed of test generation when using it. Their current parallel implementation is written using Java RMI, and has been developed to allow functionality specific to parallel tasks to be easily added. The result is a framework allowing them to quickly build and experiment with various heuristics designed to make use of multiple cores and machines. They have already developed several such heuristics, including those that randomize the search, alter the order paths are explored, and use information gathered during the search to prune the paths explored. In the future, the researchers intend to develop more sophisticated heuristics that partition the state space, ensuring each individual process explores different states while searching.
The evaluation of this parallel framework and the accompanying heuristics should measure the speedup in test generation achieved using small scale parallelism (4-8 cores) over standard Java Pathfinder, and measure the difference in speedup in test generation achieved using various combinations/quantities of machines/cores (e.g., 2 cores vs. 4 cores, 8 cores vs. 32 cores).
Matt Staats, Graduate Student