UBC Theses and Dissertations
A virtual machine approach to parallel debugging Lin, Kunhua
Debugging is generally considered to be difficult. The increased complexity and non determinism of parallel programs makes it even more difficult. It is one of the reasons that parallel machines are not widely used for computationally intensive applications even though recent progress on VLSI technology has significantly reduced the cost of building these machines. In this thesis, a two-phase approach to debugging parallel applications based on task-oriented virtual machines is proposed. In the first phase, a message passing event history of the application is constructed and analyzed against the specifications of the application to automatically identify and localize fatal errors in terms of the task number, the processor identity and the user program process. In the second phase, the code segments identified in the first phase are debugged in a simulated environment using effective sequential debugging techniques. This provides us with a technique to deal with the complexity of parallel programs through high-level abstractions and a divide-and-conquer strategy. As it is solely based on the execution history, this approach avoids the non-reproducibility that results from the nondeterministic characteristics of a parallel program. We have implemented a monitor and trace analyzer on a transputer-based multi computer for two virtual machines, PFVM (Processor Farm Virtual Machine) and DCVM(Divide and Conquer Virtual Machine). The effectiveness and limitations of our approach are demonstrated and evaluated.
Item Citations and Data