Christoph W. Kessler and Helmut Seidl. ForkLight: A Control-Synchronous Parallel Programming Language. , volume 98-13 of Forschungsbericht, 1998. Universität Trier, Mathematik/Informatik.
ForkLight is an imperative, task-parallel programming language for massively parallel shared memory machines. It is based on ANSI C, follows the SPMD model of parallel program execution, provides a sequentially consistent shared memory, and supports dynamically nested parallelism. While no assumptions are made on uniformity of memory access time or instruction-level synchronicity of the underlying hardware, ForkLight offers a simple but powerful mechanism for coordination of parallel processes in the tradition and notation of PRAM algorithms: Beyond its asynchronous default execution mode, ForkLight offers a mode for control-synchronous execution that relates the program's block structure to parallel control flow. We give a scheme for compiling ForkLight to C with calls to a very small set of basic shared memory access operations like atomic fetch&add. This yields portability across parallel architectures and exploits the local optimizations of their native C compilers. Our implementation is publically available; performance results are reported. We also discuss translation to OpenMP.