A Debugger for the Split-C Language Steven Lumetta (Professor D. E. Culler) (NSF) CDA-87-22788 and NSF Graduate Fellowship One of the major problems with the use of parallel languages by the general community is the common lack of sufficient debugging tools. Already unfamiliar languages are made more difficult to use when debugging must rely on primitive methods or archaic interfaces. To encourage more widespread use of the Split-C language, we are developing a debugger based on the Free Software Foundation's GDB debugger and the Tcl/Tk user interface package [1,2] developed by John Ousterhout. Split-C [3] is a low-level language developed at Berkeley as part of the Castle project. The philosophy behind the effort is close to that of C, providing a direct mapping from programs to results and thereby allowing for careful optimization by the programmer. It extends the standard C language with the notion of a global address space and with a small set of parallel operations. Through programming conventions, Split-C is able to support shared memory, message passing, and data parallel programming paradigms. Split-C currently runs on the CM-5 and atop PVM, but versions for the Intel Paragon, Cray T3D, and a more efficient version for networks of workstations are in the planning stages. Split-C users have thus far been forced to debug with primitive tools designed for other languages. Since these uniformly fail to recognize some of the key concepts in Split-C (e.g., the global address space concept), many of the people using Split-C consider them to be worse than useless, and commonly resort to print-style debugging instead. Our first goal is to provide a flexible graphical interface with the standard sequential debugging capabilities for each node of the machine or network. The next step is to provide support for concepts specific to Split-C, and finally to develop some of the theoretical notions of parallel debugging that appear in the literature into practical forms that can be used with large machines. [1] J. K. Ousterhout, "An X11 Toolkit Based on the Tcl Language," Proc. USENIX Winter Conf., 1991, pp. 105-115. [2] J. K. Ousterhout, "Tcl: An Embeddable Command Language," Proc. USENIX Winter Conf., 1990, pp. 133-146. [3] D. E. Culler, A. Dusseau, S. C. Goldstein, A. Krishnamurthy, S. Lumetta, T. von Eicken, and K. Yelick, "Parallel Programming in Split-C," Proc. Supercomputing, 1993.