TECHNICAL REPORT NO. 98-13

TITLE:   ForkLight: A Control-Synchronous Parallel Programming Language

AUTHORS: Christoph W. Kessler and Helmut Seidl
         FB IV - Informatik, Universitaet Trier, D-54286 Trier, Germany

ABSTRACT:

We present ForkLight, an imperative parallel programming language
for massively parallel asynchronous shared memory machines. 
It is based on ANSI C and offers additional constructs to 
hierarchically divide thread groups into subgroups and 
manage shared and private address subspaces.

While no assumptions are made on uniformity of memory access time 
or instruction-level synchronicity of the underlying hardware,
ForkLight aims to provide the programmer with a powerful mechanism 
for coordination of parallel processes in the tradition and notation 
of PRAM algorithms.
Beyond the usual asynchronous mode, ForkLight offers a mode for 
control-synchronous execution of a program which relates the program's 
block structure to parallel control flow, and which directly maps to
parallel divide\&conquer implementations. 
Also, other important parallel algorithmic paradigms can be elegantly
expressed, e.g. pipelining.

We give a scheme for compiling ForkLight to C with calls to a small set 
of basic shared memory access operations such as atomic fetch&add.
With this interface we can achieve portability across parallel 
architectures and exploit the local optimizations of their native C compilers.

