Our experience with (using) gist and (implementing and using) wamtrace have convinced us that elements from these systems provide a platform on which we can build a truly useful system, containing the best ideas from each together with some new ones contributed by profiling tools like gauge. Gauge, for example, can be the source of a set of events that would provide a dynamic, graphical performance profile. We have already begun designing two parts of such a system. One part is like Wamtrace in the way it collects events, but like gist in the way it displays them. At the moment it is completely general, but can easily be tuned to provide information particular to a specific high-level language system. The other part is to provide animation of Strand programs. We have done a very modest prototype implementation, in order to begin to experiment with exactly what type of event visualization is most informative. (Currently all events must be logged explicitly by the user, but we anticipate that the insertion of such code can be done with a preprocessor.)
This project will necessitate both research and implementation work. The research will be into the nature of useful parallel program visualization. It is most likely that varying levels of detail will have to be made visible at different times, and that a mechanism for easily incorporating application-specific events will have to be designed. The research cannot be carried out without a system to experiment with, necessitating implementation effort even at a very early stage. We expect that enough new information will be generated by this project to impact ongoing projects in language design and implementation.