Abstract
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) |
---|---|
Article number | 6957256 |
Pages (from-to) | 471-480 |
Number of pages | 10 |
Journal | Proceedings of the International Conference on Parallel Processing |
Volume | 2014-November |
Issue number | November |
DOIs | |
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 note
Publisher Copyright:© 2014 IEEE.
Keywords
- Extensible languages
- Matrix programming
- Parallel programming