This paper describes a compiler extension to our prototype extensible C translator that adds new features for parallel execution of matrix operations and shows their application to problems in spatio-temporal data mining. The extension provides new language features for constructing new matrices, mapping functions over elements of a matrix, and accumulating operations that, for example, can sum values in a matrix. It also provides the appropriate semantic analysis to check for errors before translating the constructs down to parallel C code. The extension also provides features that let the programmer indicate how the extension translates these matrix constructs down to C code. Programmers seeking higher levels of performance can specify how the underlying for-loops are structured so that code using, for example, loop-tiling techniques or vector processors, is generated. In general, compiler extensions supported by our approach allow new domain-specific syntax and semantic analyses to be easily added to the host language. Specifications of the host C language and the extensions are composed to create a custom translator that maps extended C programs down to plain (parallel) C code, checking for domain-specific errors and applying high-level domain-specific optimizations in the process.
|Original language||English (US)|
|Number of pages||10|
|Journal||Proceedings of the International Conference on Parallel Processing|
|State||Published - Nov 13 2014|
|Event||43rd International Conference on Parallel Processing, ICPP 2014 - Minneapolis, United States|
Duration: Sep 9 2014 → Sep 12 2014
Bibliographical notePublisher Copyright:
© 2014 IEEE.
- Extensible languages
- Matrix programming
- Parallel programming