TY - GEN
T1 - Multi-compilation
T2 - 3rd Conference on Computing Frontiers 2006, CF '06
AU - Ozturk, Ozean
AU - Chen, Guangyu
AU - Kandemir, Mahmut
PY - 2006
Y1 - 2006
N2 - It is well known that while applying a compiler optimization to a large scope of code (e.g., an entire procedure or function) can bring larger benefits in return as compared to smaller scopes (e.g., a nested loop), code analysis and optimization at larger scopes are also more difficult to manage. As of today, the largest scope for a compiler optimization is an entire program source. However, as embedded chip multiprocessor architectures are finding their ways into commercial products, it is becoming important to consider the scenario of multiple applications executing on the same chip multiprocessor. This paper explores a novel technique called multicompilation where multiple applications that are expected to be executed simultaneously on the same CMP (chip multiprocessor) are compiled together. The benefits of this approach include capturing the interactions amongst applications due to data sharing. While one can think of many potential optimizations that can work in an inter-application fashion exploiting data sharing across applications, we restrict ourselves in this paper to data layout optimization, which is the problem of determining the most suitable memory layout for array data. To demonstrate the impact of our contribution, we implemented our approach and performed a simulation-based study with several embedded applications. Our experimental results show that, by selecting the memory layouts of data arrays considering multiple applications at the same time, we can reduce cache misses by 18.7% and execution cycles by 13.1% on average.
AB - It is well known that while applying a compiler optimization to a large scope of code (e.g., an entire procedure or function) can bring larger benefits in return as compared to smaller scopes (e.g., a nested loop), code analysis and optimization at larger scopes are also more difficult to manage. As of today, the largest scope for a compiler optimization is an entire program source. However, as embedded chip multiprocessor architectures are finding their ways into commercial products, it is becoming important to consider the scenario of multiple applications executing on the same chip multiprocessor. This paper explores a novel technique called multicompilation where multiple applications that are expected to be executed simultaneously on the same CMP (chip multiprocessor) are compiled together. The benefits of this approach include capturing the interactions amongst applications due to data sharing. While one can think of many potential optimizations that can work in an inter-application fashion exploiting data sharing across applications, we restrict ourselves in this paper to data layout optimization, which is the problem of determining the most suitable memory layout for array data. To demonstrate the impact of our contribution, we implemented our approach and performed a simulation-based study with several embedded applications. Our experimental results show that, by selecting the memory layouts of data arrays considering multiple applications at the same time, we can reduce cache misses by 18.7% and execution cycles by 13.1% on average.
UR - http://www.scopus.com/inward/record.url?scp=34247346600&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34247346600&partnerID=8YFLogxK
U2 - 10.1145/1128022.1128043
DO - 10.1145/1128022.1128043
M3 - Conference contribution
AN - SCOPUS:34247346600
SN - 1595933026
SN - 9781595933027
T3 - Proceedings of the 3rd Conference on Computing Frontiers 2006, CF '06
SP - 157
EP - 163
BT - Proceedings of the 3rd Conference on Computing Frontiers 2006, CF '06
Y2 - 3 May 2006 through 5 May 2006
ER -