Abstract
Within the last few years, CPU speed has greatly overtaken memory speed. For this reason, implementation of symbolic algorithms - with their extensive use of pointers and hashing - must be reexamined. In this paper, we introduce the concept of cache miss complexity<br />as an analytical tool for evaluating algorithms depending on pointer chasing. Such algorithms are typical of symbolic computation found in verification. We show how this measure suggests new data structures and algorithms<br />for multi-terminal BDDs. Our ideas have been implemented in<br />a BDD package, which is used in a decision procedure for the Monadic Second-order Logic on strings.<br />Experimental results show that on large examples involving e.g the verification of concurrent programs, our implementation runs 4 to 5 times faster than a widely used BDD implementation.<br />We believe that the method of cache miss complexity is of general interest to any implementor of symbolic algorithms used in verification.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have