Christoph W. Kessler and Helmut Seidl. ForkLight: A Control-Synchronous Parallel Programming Language. High-Performance Computing and Networking, pages 525-534, Amsterdam, The Netherlands, April 1999.
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 mecha- nism for coordination of parallel processes in the tradition and notation of PRAM algorithms: Be- yond 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 archi- tectures 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.
Download: PDF Reference: Bibtex