next up previous
Next: Flowback Analysis Up: Implementation Previous: Breakpoint Construction

ZEE Architecture

While this approach alone would enable us to present an array-level view of a sequential program, a ZPL program is typically executed by multiple address-space-disjoint processes, sometimes running on physically separate machines. Although this type of debugging is difficult in general, the well-structured and inherently synchronized nature of a ZPL program simplifies the task. Using a master-worker architecture, ZEE is able to attach to each of the separate ZPL process and control them in concert. Once a breakpoint has been constructed at the local level, the information can be passed to the master ZEE process, where it is assembled and reported to the user. This approach does not affect the behavior of the target program, as the breakpoints used by the ZEE algorithm are always ``consistent'' in that they occur only at implicit synchronization points. (As mentioned previously, there is an implicit barrier synchronization after each phase invocation at the Z-Level, and the exit point of an mloop necessarily falls at one of these barriers.)



Steve McLaughry
Fri May 30 15:48:07 PDT 1997