EuroPar '97
Uni-Passau FMI Lehrstuhl für Programmierung europar

Afternoon Tutorials: 14:30 - 17:30, Tuesday, 26. August

Concurrency in Java: Programming Techniques and Semantics

Martin Wirsing
( Ludwig-Maximilian-University Munich, Germany)

Who Should Attend

Students, software developers, researchers.

Course Description

Java is a new object-oriented programming language. Among other things Java offers simple and tightly integrated support for concurrent programming by threads. A concurrent program consists of multiple tasks that are or behave as if they are executed all at one time. In Java tasks are implemented using threads (short for "threads of control"), sequences of instructions that run independently within the encompassing program.
The aim of this tutorial is to give an introduction to concurrent programming in Java. In the first part of the tutorial the concurrency model and the basic concurrency constructs of Java are introduced along with examples and a structural operational semantics. In the second part standard design techniques for concurrent programming in Java are presented. This includes techniques for ensuring safety and liveness in a concurrent setting, guarded methods and concurrency control.

Lecturer (short vita)

Martin Wirsing is a Full Professor and Chair for Computer Science at Ludwig-Maximilians-Universität, München, Germany, where he is also leading the research group on Programming and Software Technology. Currently he is leader of projects on the specification of concurrent object-oriented systems, software engineering for distributed systems, design and implementation of electronic product catalogs, and constraint functional programming.
Martin Wirsing is editor of more than 10 books and has published more than 120 scientific papers in the areas of program transformation and program development, semantics of programming languages, software technology, formal specification, algebraic specification languages, and mathematical logic.


Data redistribution: why and how?

Yves Robert
( ENS Lyon, France and University of Tennessee, USA)

Who Should Attend

Computer scientists and others who want to be updated on the latest research related to data distribution and redistribution in HPF and parallel libraries such as ScaLAPACK.

The scope of the tutorial is kept narrow in order to provide an in-depth coverage of the key ideas of algorithms and methods, which range from finite-state machines, set/graph-theoretic methods to Diophantine equations, Hermite forms and lattices, integer linear programming, etc.

In a word, the objective is to obtain a fundamental understanding of the inner workings of redistribution techniques: all you would need to implement the (equivalent of the) ScaLAPACK redistribution routine!

Course Description

This tutorial is devoted to the run-time redistribution of arrays that are distributed in a block-cyclic fashion over a multidimensional processor grid.
Motivation:
Redistribution is motivated largely by the HPF programming style, in which scientific applications are decomposed into phases. At each phase, there is an optimal distribution of the data arrays onto the processor grid. Typically, arrays are distributed according to a CYCLIC(r) pattern along one or several dimensions of the grid. The best value of the distribution parameter "r" depends on the characteristics of the algorithmic kernel, as well as on the communication-to-computation ratio of the target machine. Because the optimal value of r changes from phase to phase and from one machine to another (think of a heterogeneous environment), run-time redistribution is in fact a critical operation.

Method
We can decompose the redistribution problem into the following two subproblems:
- Message generation: The array to be redistributed should be efficiently scanned or processed in order to accumulate all the messages that are to be exchanged between processors.
- Communication scheduling: All the messages must be efficiently scheduled so as to minimize communication overhead. A given processor typically has several messages to send, either to all other processors or to a subset of these. In terms of MPI collective operations, we must schedule something similar to an MPI_ALLTOALL communication, except that each processor may send messages only to a particular subset of receivers (the subset depending on the sender).
Outline:

Lecturer (short vita)

Yves Robert is a Professor in the Computer Science Laboratory LIP at ENS Lyon. He is the author of two books, 60+ papers in international journals and 65+ papers in international conferences.
His main research interests are parallel algorithms for distributed memory architectures and automatic compilation/parallelization techniques. He is the head of the CNRS / ENS Lyon / INRIA project {\sl ReMaP}, and is currently a Visiting Scientist at UT Knoxville.


MPI: The Perfect Message-Passing Environment?

Frédéric Desprez
(ENS Lyon, France)

Course Description

MPI is now the standard for message-passing programming of parallel machines and networks of workstations. There are several implementations and many research projects around it. In this tutorial, I will present the Message Passing Interface, its advantages and drawbacks as well as performance and easy-of-use issues.

Overview of the tutorial:

Lecturer (short vita)

Frédéric Desprez received his Ph.D. in Computer Science from the Institut National Polytechnique de Grenoble in 1994. In 1994, he was a visiting researcher at the University of Tennessee on a Postdoctoral research fellowship. Then he was assistant Professor at the LaBRI in Bordeaux. He is currently researcher at the INRIA Rhone-Alpes in the ReMaP project and working at the LIP laboratory (ENS Lyon). His main research interests are in environments around High Performance Fortran, parallel linear algebra libraries and the optimization of communication libraries.


(C)opyright by University of Passau, Sven Anders 14.05.1997