Performance Visualisation of Message Passing Programs
Using Relational Approach
Sute Lei Kang Zhang
Department of Computing, Macquarie University
Sydney, NSW 2109, Australia
Designing an efficient parallel program usually involves iteration of performance tuning. During this process a very large amount of performance data is produced. Without a proper software tool, the process of performance tuning can be very complicated and tedious. In this paper we describe a performance tuning tool for message passing programs. Our tool uses a relational approach to organise the performance data and analyse the program performance through the visualisation technique. Various graphical displays which assist the user to fine tune the performance of message passing programs are discussed.
In a message-passing system, one of the most important features is its interprocessor communication facilities. When designing a message-passing program, one must consider the problem of task allocation and the communication among tasks. It is generally not difficult to decompose a problem into sections, and execute these sections on different processors. However, designing a parallel program with minimum communication costs among decomposed sections is a complicated task. It usually involves iteration of performance tuning. During this process a very large amount of performance data is produced. The programmer often has to work through the performance data to locate performance bottleneck. Without a proper software tool the process of performance tuning can be very complicated and tedious. Recent research has concentrated on developing parallel program monitoring tools [1,2,4,11,17]. Most of these tools are mainly designed for fine-grain parallel programs. Our work is to focus on message-passing programs on loosely couple parallel systems. In this paper we describe a performance debugging tool for message passing programs. The tool assists the user to analyse the performance of message passing programs by means of visualisation. The major components of the tool is shown in Figure 1. The performance data is saved into trace files during program execution. From the trace files, the data is categorised and stored into the performance database. Using the relational
queries, performance information is retrieved and displayed in both textual and visual forms.
The aim of our work is to provide an efficient performance debugging tool for users to debug message passing programs. We describe our work based on the steps of performance debugging. In section 2, we discuss the issue of collecting performance data. Section 3 describes the organisation of performance data. Section 4 presents a set of performance displays that assist in performance debugging.
Figure 1. Major components of the performance debugging tool
2 Collection of performance data
The data related to program performance is often collected through either hardware or software instrumentation system. Both hardware and software approaches often suffer from drawbacks such as intrusiveness to the program, memory requirement, etc. To effectively improve the performance of the program, the data collection technique must be able to collect performance data that can reflect the actual performance of a system. Two issues should be considered: ?what to collect? and ?how to collect?. To reduce the size of the performance data file and to obtain the most relevant data, we must have a data selection scheme that embraces sufficient program information using minimum memory space and a data collection technique that collects performance data with minimum intrusiveness. In the following two subsections, we discuss our data selection scheme and data collection technique for message passing programs.