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.