Executable assertion development for the distributed parallel environment
Bruce McMillin, Lionel Ming-shuan Ni · 2003
The use of executable assertions is a powerful tool with which to perform program verification, provide software fault-tolerance, and provide hardware fault-tolerance via the application-oriented paradigm. The authors show that assertions commonly used in the sequential programming environment are inadequate for the distributed parallel environment. In particular, it is shown that even design-based assertions are myopic and provide inadequate error coverage. In their place, a triad of basic metrics is proposed for certain classes of problems that, when applied beginning with the specification phase of the life cycle, produce assertions that are better suited to the parallel environment. This method is applied to a well-known parallel computing problem in order to demonstrate the effectiveness of the method. Error coverage is modeled probabilistically so that the dominance of assertions may be quantified.>