Implicit Shared Memory Multiprocessor Support for the Functional Programming Language SAC - Single Assignment C
303 pages, year of publication: 2001
price: 40.50 €
SAC is a functional array processing language, which aims at combining generic, high level program specifications with efficient runtime behaviour of compiled code. In contrast to other languages with strong support for arrays, e.g. FORTRAN-90, SAC provides very few basic array operations as built-in functions. Instead, aggregate operations on arrays are specified in SAC itself by means of WITH-loops. This versatile language construct supports dimension-invariant specifications and, thus, allows for implementing generic array operations which are still applicable to arrays of any size and dimensionality. By means of comprehensive library, SAC provides about the same array processing functionality as is built-in in languages such as FORTRAN 90 or APL. Despite this generic approach, SAC achieves competitive runtime performance figures in uniprocessor enviroments. Due to its functional, side-effect free semantics and its specific support for aggregate array operations, SAC may be considered relatively well-suited for non-sequential programm execution. However, no support for this has been available yet.
Therfore, this thesis investigates opportunities to substantially reduce program execution times by implicitly exploiting shared memory multiprozessors. For this purpose, compilations schemes and runtime system support are developed, which allow to benefit from additional processing resources by simple re-compilation of high-level SAC specifications. The aim is to achieve considerable, preferably linear speedups relative to uniprocessor runtime performance characteristics, which are competitive to low-level programming models.