Parallel Processing with Matlab-like Environments

René Fink

Supervisor: Prof. Dr.-Ing. Sven Pawletta
Partners: University of Rostock, IAV GmbH Gifhorn

Project period: March 2004 - December 2006

Introduction

Nowadays scientific and technical computations become more and more complex leading to unacceptable high computation times. Especially simulation based applications like parameter studies, identification or optimization are common tasks in scientific and technical domains. Parallel processing offers one possibility to shorten computation times but often needs high experience.

Very common tools for processing scientific and technical computations are Matlab and Matlab-like environments, often referenced as Scientific and Technical Computing Environments (SCEs). Program development within SCEs is very easy in comparison to compiler based programming like C/Fortran.

Currently, parallel processing and programming is well established in compiler based languages but relatively unknown when associated with SCEs. The goal of the project is to investigate methods of bringing parallel processing and SCEs together. Hereby software components like SCEs and SCE addons (toolboxes) are examined. Furthermore, several technical applications are parallelized with different tools and investigated with respect to speedup and implementation effort.

Parallel Processing with SCEs

Fig. 1: Parallel processing approaches with SCEs

Bringing parallel processing and SCEs together can be done in many ways. Within this project, we discern three classes of approaches (see Fig. 1):

  1. Compiler based approach
  2. Frontend based approach
  3. Multi-SCE approach

On the compiler based approach an SCE program is compiled into a binary program with parallel processing capabilities. This can be done by a parallel compiler or by linking parallel numerical libraries. Hereby, the SCE is just the development environment for the program, to run a parallel program no SCE instance is needed.

The frontend based approach uses an SCE instance as frontend for a parallel computer running parallel numerical libraries. Again, the SCE is the development environment for applications but for running parallel programs at least one SCE instance is needed.

The Multi-SCE approach uses multiple SCE instances connected to a Multi-SCE by a communication platform. This can be a message passing systen, a common file system or just sockets. With this approach, the Multi-SCE is the development and runtime environment of parallel programs. One example of a Multi-SCE is our own DP-Toolbox.

Multi-SCEs

Fig. 2: Communication performance of some Multi-SCEs

Since its loosely coupled structure the Multi-SCE approach is suitable for Networks of Workstations, Clusters or Grid platforms. Therefore a relatively large number of users deal with this kind of SCE based parallel processing. Within this research project, several tools following the Multi-SCE approach were investigated and, if runnable, compared with repect to their communication performance (see Fig. 2).

Applications

Fig. 3: Speedup of an example application (control parameter optimization)

In addition to the communication performance measurements several real life applications as well as example applications were parallelized with different Multi-SCE tools. Fig. 3 shows the speedup of one example application, an optimization of control parameters for a loading bridge.

Project completion

The main work of the project has been completed in December 2006. The dissertation has been submitted at the University of Rostock in July 2007. The final exam took place in December 2007 at the University of Rostock with grade "summa cum laude".