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/
Please contact:
Ottmar Krämer-Fuhrmann - GMD
Tel: +49-2241 14 2202
E-mail: kraemer-fuhrmann@gmd.de