Random Walk Based Heuristic Algorithms for Distributed Memory Model Checking

Hemanthkumar Sivaraj Ganesh Gopalakrishnan


We explore the use of distributed processing to enhance the performance of explicit state enumeration based safety model-checking. A central problem in distributed model-checking is checking whether a state generated by a processor has already been visited by another processor. This requires hash-table look-up messages to be exchanged. These messages can dramatically offset, or even nullify, the overall speed-up, in addition to complicating message-buffer allocation and flow-control. In this paper, we study the process of {\em distributed random walk} - a process of multiple processors randomly, and in an uncoordinated fashion, moving through the state-space without recording visited states. The probability that a random-walk repeats the same sequence of moves can decrease exponentially with the length of the sequence; thus, the work wasted by occasionally repeating short sequences of searches may be far less than that wasted by exchanging messages for hash-table lookup. In addition, distributed random-walk is amenable to distributed systems with low memory availability per node as well as low network bandwidth. Heuristic combinations of breadth-first search (BFS) and random-walk (RW) are natural choices to explore because BFS requires higher amounts of memory to maintain queues, but guarantees to find the shortest path to a state -- while RW has opposite characteristics. Studying these heuristic methods initially on synthetic benchmarks can offer sharper insights which can help improve the heuristics. In this paper, we develop three heuristic combinations of RW and BFS and study their performance on synthetic as well as a few realistic benchmarks on a FreeBSD machine cluster connected using 100BASE-T Ethernet and using the MPI distributed programming library.