TY - GEN
T1 - An automatic compiler optimizations selection framework for embedded applications
AU - Hung, Shih Hao
AU - Tu, Chia Heng
AU - Lin, Huang Sen
AU - Chen, Chi Meng
PY - 2009
Y1 - 2009
N2 - Optimizing compilers provide users with compiler options to maximize program performance. The selection of compiler options is important as the resulted performance can vary significantly. The best combination of compiler options is not only dependent on the program itself, but it also is highly related to the configuration of the system and the architecture of the processor that the program runs on. The determination of the best combination of compiler options is very complicated, as its complexity grows exponentially with the number of the optimization options the compiler offers. Many previous work attempts to shorten the search time by reducing the complexity of the problem. However, most of them focus on computational intensive applications, which run with little or no invocation of kernel functions and device input/output activities, which often dominate system performance in specific embedded environment, such as network appliance. This paper aims at system-wide compiler optimizations selection for embedded applications. We proposed an automated framework to judiciously select the compiler options not only for the control software in the user space but also for the associated kernel functions which perform the I/O operations for an embedded application. For this framework, we implemented compiler optimization selection algorithms and evaluated its efficiencies with and without performance monitoring hardware support. We argue that our framework is a platform-independent and system-level compiler options selection framework. Our experience in optimizing the performance of the embedded application on a production storage appliance show that an I/O-intensive application composed by various kernel modules device drivers under Linux can be optimized effectively and systematically.
AB - Optimizing compilers provide users with compiler options to maximize program performance. The selection of compiler options is important as the resulted performance can vary significantly. The best combination of compiler options is not only dependent on the program itself, but it also is highly related to the configuration of the system and the architecture of the processor that the program runs on. The determination of the best combination of compiler options is very complicated, as its complexity grows exponentially with the number of the optimization options the compiler offers. Many previous work attempts to shorten the search time by reducing the complexity of the problem. However, most of them focus on computational intensive applications, which run with little or no invocation of kernel functions and device input/output activities, which often dominate system performance in specific embedded environment, such as network appliance. This paper aims at system-wide compiler optimizations selection for embedded applications. We proposed an automated framework to judiciously select the compiler options not only for the control software in the user space but also for the associated kernel functions which perform the I/O operations for an embedded application. For this framework, we implemented compiler optimization selection algorithms and evaluated its efficiencies with and without performance monitoring hardware support. We argue that our framework is a platform-independent and system-level compiler options selection framework. Our experience in optimizing the performance of the embedded application on a production storage appliance show that an I/O-intensive application composed by various kernel modules device drivers under Linux can be optimized effectively and systematically.
UR - http://www.scopus.com/inward/record.url?scp=70349682891&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=70349682891&partnerID=8YFLogxK
U2 - 10.1109/ICESS.2009.86
DO - 10.1109/ICESS.2009.86
M3 - Conference contribution
AN - SCOPUS:70349682891
SN - 9780769536781
T3 - Proceedings - 2009 International Conference on Embedded Software and Systems, ICESS 2009
SP - 381
EP - 387
BT - Proceedings - 2009 International Conference on Embedded Software and Systems, ICESS 2009
T2 - 2009 International Conference on Embedded Software and Systems, ICESS 2009
Y2 - 25 May 2009 through 27 May 2009
ER -