WINPAR Software Engineering Environment for Parallel Programming
by Ottmar Krämer-Fuhrmann
For the development of parallel applications, software developers need special software tools. Traditional tools, like compilers and debuggers, are not sufficient to develop efficient parallel programs because there is an additional need for a global system specification. Networks of concurrently running sequential processes and their communication structure have to be specified besides the mapping of processes to processors. Furthermore, it is important to have intelligent graphical tools to visualize and analyze the dynamic behavior of running applications. It is very typical for parallel applications that the effort for program optimization is very high, because parallel applications are usually time critical or long running jobs.
Personal computers (PC), mostly connected by local area networks, are today available in almost every company, office, university and school. This makes personal computing to a very important market segment. Due to rapid improvements in microprocessor technology, the computing performance of PCs has reached the speed of workstation processors. So PCs and networks of PCs are becoming a new and very interesting platform for scientific applications. Industry has started to port existing Unix-based scientific applications to Linux or Windows NT based PCs. At the moment there is a lack on software engineering tools for parallel programming on PC clusters.
The vision of the EU funded WINPAR project is to connect personal computers to a parallel processor system. With this approach the PC mass market shall be made accessible for a large number of compute-intensive applications. The WINPAR approach is to migrate, re-engineer and to integrate the most useful software tools from Unix based parallel computing to PCs running an operating system of the Microsoft Windows family. The following tools will be integrated into the WINPAR environment:
- MPI/PVM - Message passing libraries, University Coimbra - ParadiseC++ - Parallel C++ library, GMD - AUGUR - Automatic Model Generation for Performance Estimation of Parallel Programs, GMD
- MODARCH - Modeling Architecture, SIMULOG - TRAPPER - Graphical Programming Environment, GMD - DDBG - Distributed Debugger, KFKI and University Miskolic (Hungary). The University Vienna develops a graphical user interface for a common look & feel of all its components.
Figure 1 shows the co-operation of the initial components of the WINPAR environment. Existing Fortran programs can be analyzed by the AUGUR system, which model semi-automatically generates a model. This model can be simulated by MODARCH in order to test the functionality and to estimate the parallel compute time. TRAPPER allows the design of new applications in C, C++ and Fortran. All programs are based on a portable library (MPI, PVM or ParadiseC++) and can be debugged by the distributed debugger DDBG. The program execution can finally be analyzed by the TRAPPER animation components.
A major component will be a windows based re-implementation of the TRAPPER programming environment. TRAPPER supports the design and implementation of parallel and distributed applications in different phases of the development cycle. A DesignTool supports a hybrid development approach: the relations between the processes of a parallel program are designed graphically, while sequential code for processes can be integrated manually into automatically generated program frames. The ConfigTool enables the user to specify the configuration of the hardware system and allows a semi-automatic mapping of the software net to the actual hardware configuration. The Monitoring System accompanies the application to collect run-time information about software and hardware events. Software events being monitored are process creation and termination and inter-process communication. Hardware events are computation and communication loads of the processors.
Furthermore, the programmer can define his own events, which are written to the trace file together with the automatically generated events. The VisTool displays software related events in time axis diagrams and Gantt charts. It also displays and animates user-generated events as well as contents of program variables and arrays. The PerfTool visualizes hardware events and performance statistics using pie chart diagrams.
The key features of the WINPAR environment will be portability between Windows and Unix, reusability of libraries and servers, and the integration into a homogeneous graphical user interface. The WINPAR programming environment is designed as an open system, such that additional tools can easily be integrated in the future.
Further information about WINPAR can be found at http://www.genias.de/projects/winpar/
Ottmar Krämer-Fuhrmann - GMD
Tel: +49-2241 14 2202