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:
- Survey of data distributions in HPF and ScaLAPACK
- Examples of data redistributions
- Overview of state-of-the-art methods for message generation
- Overview of state-of-the-art methods for communication optimization
- Comments and prospective
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:
- MPI-1 overview
- MPI-2 most interesting features (process management, one-sided
communications, extended collective communications, I/O)
- MPI vs PVM (projects around both environments)
- MPI and HPF (is it possible to use them at the same time?)
- Implementations of MPI (short overview)
- MPI and clusters of workstations and PCs (what can be achieved?)
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