Helping programmers write parallel software is an urgent problem given the popularity of multi-core architectures. Engineering compilers which automatically parallelize and vectorize code has turned out to be very challenging. Consequently, compilers are very selective with respect to the coding patterns they can optimize. We present an interactive approach and a tool set which leverages ad- vanced compiler analysis and optimizations while retaining programmer control over the source code and its transformation. This allows opti- mization even when programmers refrain from enabling optimizations to preserve accurate debug information or to avoid bugs in the compiler. It also allows the source code to carry optimizations from one compiler to another. Secondly, our tool-set provides feedback on why optimizations do not apply to a code fragment and suggests workarounds which can be applied automatically. We demonstrate the ability of our tool to trans- form code, and suggest code refactoring that increase its amenability to optimization. The preliminary results shows that, with our tool-set, au- tomatic loop parallelization with the GNU C compiler, gcc, yields 8.6x best-case speedup over the sequential version. The transformations and suggestions are based on the loop parallelization and matrix reorganiza- tion capabilities in the latest production release of gcc.
|Title of host publication||Proceedings of Forth Workshop on Programmability Issues for Heterogeneous Multicores|
|Publication status||Published - 2011|
|Event||4th Workshop on Programmability Issues for Heterogeneous Multicores - Heraklion, Greece|
Duration: 23 Jan 2011 → …
Conference number: 4
|Workshop||4th Workshop on Programmability Issues for Heterogeneous Multicores|
|Period||23/01/2011 → …|