dwk%cs.tufts.edu@RELAY.CS.NET (David W. Krumme) (07/17/89)
> > I think a useful tool would be something that captured the order > of "events" to make a MIMD program have a repeatable order of > execution. When I am debugging I want a deterministic sequence > of events. For example, I want processes to finish tasks in the same order.. > My research group at Tufts University has developed a set of debugging and performance monitoring tools that run on the NCUBE hypercube with a SUN host. Our tools provide access to performance statistics in real time while the application program is running, or after the fact in post-mortem mode, or in a modified post-mortem mode with the program being run in bursts. Both color graphics displays and ordinary textual displays are provided. We have recently begun to distribute this software to interested sites. Anyone interested in more information may write to us collectively at triplex@cs.tufts.edu (or triplex%cs.tufts.edu@relay.cs.net) (Don't expect a reply right away since we will be out of town most of the next month.) Below is an example of a screen display of an event log. Processors 0 and 15 were selected for viewing while the program's execution had been temporarily stopped. (Up to 8 processors can be viewed at once.) The events are listed one per line, order by their time of occurrence which is printed at the left in the form hours:minutes:seconds.fractions which are globally accurate to with around .0002 seconds (we believe). At the bottom of the screen is a status line containing a help message. Some of these events describe operating system events and were recorded by the kernel (e.g. Floating Underflow, nwrite(...) called), while some were generated by the application program (e.g. Finished compute..., Host says...). The display can be scrolled forward and backward through the events. Unfortunately I cannot also enclose a replica of the color display. It conveys a much larger amount information in a display that is maintained in real time during the application program's execution. David Krumme Dept. of Computer Science Tufts University krumme@cs.tufts.edu ******************************************************************************* 03:56:18.6098 15 Finished compute, finished this iteration (610) 03:56:18.6098 15 Starting to send image to host (pass 610) 03:56:18.6296 0 Location 11D6C: Floating Underflow, set to 0 03:56:18.6367 0 Finished compute, finished this iteration (610) 03:56:18.6367 0 Starting to send image to host (pass 610) 03:56:18.6743 15 nwrite(...) called from 0x12437 03:56:18.6783 15 nwrite(...) returning 03:56:18.6783 15 Finished sending image to host (pass 610) 03:56:18.6784 15 Pass 611, my_row is 2, my_col is 2 03:56:18.6785 15 nread(...) called from 0x11936 03:56:18.7444 0 nwrite(...) called from 0x12437 03:56:18.7479 15 nread(...) returning 0x4 03:56:18.7479 15 Host says to do 10 steps (pass 611) 03:56:18.7480 15 Starting data swap with neighbors (pass 611) 03:56:18.7480 15 nwrite(...) called from 0x119f2 03:56:18.7482 0 nwrite(...) returning 03:56:18.7482 0 Finished sending image to host (pass 610) 03:56:18.7483 0 Pass 611, my_row is 0, my_col is 0 03:56:18.7484 0 nread(...) called from 0x11936 03:56:18.7487 15 nwrite(...) returning 03:56:18.7489 15 nwrite(...) called from 0x11a37 03:56:18.7491 0 nread(...) returning 0x4 03:56:18.7492 0 Host says to do 10 steps (pass 611) 03:56:18.7492 0 Starting data swap with neighbors (pass 611) 03:56:18.7493 0 nwrite(...) called from 0x119f2 03:56:18.7497 15 nwrite(...) returning 03:56:18.7500 15 nwrite(...) called from 0x11aa3 03:56:18.7500 0 nwrite(...) returning 03:56:18.7501 0 nwrite(...) called from 0x11a37 03:56:18.7507 15 nwrite(...) returning 03:56:18.7510 0 nwrite(...) returning 03:56:18.7511 15 nwrite(...) called from 0x11b13 03:56:18.7512 0 nwrite(...) called from 0x11aa3 03:56:18.7519 15 nwrite(...) returning 03:56:18.7521 15 nread(...) called from 0x11b5b 03:56:18.7521 0 nwrite(...) returning 03:56:18.7524 0 nwrite(...) called from 0x11b13 03:56:18.7532 15 nread(...) returning 0x80 03:56:18.7533 15 nread(...) called from 0x11b8f 03:56:18.7534 0 nwrite(...) returning 03:56:18.7535 0 nread(...) called from 0x11b5b 03:56:18.7538 15 nread(...) returning 0x80 03:56:18.7539 15 nread(...) called from 0x11bc1 03:56:18.7543 0 nread(...) returning 0x80 03:56:18.7544 15 nread(...) returning 0x80 03:56:18.7544 0 nread(...) called from 0x11b8f 03:56:18.7547 15 nread(...) called from 0x11c34 03:56:18.7551 0 nread(...) returning 0x80 03:56:18.7552 15 nread(...) returning 0x80 03:56:18.7552 0 nread(...) called from 0x11bc1 03:56:18.7555 15 Finish data swap, starting compute (pass 611) -------------------------------------Seenote------------------------------- u,U=up d,D=down f=forward page p=previous page q=quit h,l=scroll options *******************************************************************************