In this section we describe some of the systems that have been developed and used at Argonne National laboratory to better understand the behavior of parallel algorithms. They have been developed in conjunction with real systems and applications, in order to understand the results of design decisions in those systems. In every case they have had a major impact on the algorithms and ultimately on the efficiency of these systems. They occur at both the low-level portability layer and the high-level parallel language layer in Figure 1. The tools are upshot, which displays events and states in parallel time lines, ravel, which animates message-passing programs, and wamtrace, an animation system for parallel Prolog.