This special issue presents new results in the construction and methodology of tools to support the development of parallel programs. This issue focuses on tools for debugging and performance analysis.
We can observe two major trends in recent years: on one hand, tool developers want to solve the problem of tool interoperability. This question is crucial for application developers as they want to apply different tools from different producers to their programs at the same time. An infrastructure that provides interoperability could allow us to see synergetic effects when using multiple tools, thus increasing the programmer's productivity during implementation and testing.
On the other hand, we there are substantial efforts to automate parts of parallel program development. While this tool automation is not a new area, there remains much to be done. Parallel program development remains the domain of the expert and aficianado. This area continues to be an important one for the programmers and users of high performance computing.
The papers selected for this special issue represent the current state-of-the-art in these two important fields of tool construction. They are presented by researchers who have extensive experience in this area and who have designed and developed tools for many years. We would like to express our hope that you will find these papers inspiring.
Wismuller, Ludwig, Karl, and Bode present an overview over a decade of tool development. Their focus is on on-line tools like debuggers and performance analyzers. This review provides deep insight into the major problems in the field of tool construction. It shows that the question of tool interoperability can be tackled only where the basic concepts of tool construction are well established.
Kewley and Prodan also focus on interoperability. They developed a tool infrastructure based on CORBA. The tools that interact in their environment offer functionality for performance analysis and program correctness validation. The authors also discuss in detail the notion of interoperability and introduce several new definitions in this field that refine existing concepts.
Duarte, Lourenço, and Cunha present an operational tool environment that successfully combines multi-thread, multi-process debugging and execution visualization. The basis for their work is a distributed monitoring system that offers versatile and extensible services for different types of tools. New services are introduced for tool coordination and the problem of interoperability is addressed.
Karavanic and Miller present new results in the field of performance analysis. An important aspect throughout the life cycle of software is the comparison of performance indicators for multiple runs of the software. Their tool describes differences between two runs and adapts itself to the performance characteristics of the program. This new concept is an essential step on the long road towards automated performance diagnosis.
The same goal motivates Wolf and Mohr in their work. They also investigate performance analysis and introduce the concept of compound events. In contrast to the tools of the other authors, they present an off-line approach that is based on event traces of the program behavior. Their tool aims also at the automatic detection of inefficiencies in parallel programs.
We would like to express our gratitude to Prof. Marcin Paprzycki, Editor-in-chief of SCPE for giving us the opportunity to edit this special issue. This issue would not be possible without the help of our referees who worked hard to review the submitted papers. We would like to thank our colleagues: Helmar Burkhardt, Jacques Chassin de Kergommeaux, Nikolay Diakov, Thomas Fahringer, Michael Gerndt, Peter Kacsuk, John Kewley, Dieter Kranzlmüller, Gregor von Laszewski, Allen D. Malony, Tomàs Margalef, Wolfgang Nagel, Martin Schulz, and Roland Wismuller.
Institut für Informatik
69120 Heidelberg, Germany
Barton P. Miller
University of Wisconsin
Computer Sciences Department
Madison, WI, 53706, USA