TY - GEN
T1 - Predicting multi-core performance
T2 - 3rd International Workshop on Multicore Software Engineering, IWMSE 2010, in Conjunction with the 32nd ACM/IEEE International Conference on Software Engineering, ICSE 2010
AU - Siami Namin, Akbar
AU - Sridharan, Mohan
AU - Tomar, Pulkit
PY - 2010
Y1 - 2010
N2 - Multi-core technology is an emerging hardware trend that provides significant capabilities for computationally expensive applications. However, it also demands a paradigm shift in the software industry, Software developers need to think about the best distribution of software components across the available CPUs, and trade-off the computational efficiency against the cost of re-structuring the standard sequential execution of software. The relationship between the measured performance and the corresponding parameters such as the number of threads and CPUs remains an interesting open problem, especially since it is a challenge to conduct controlled experiments. This paper reports a case study on the use of Solaris containers to control the assignment of threads to the available CPUs in a set of applications. We model the performance as a function of the number of threads, the number of CPUs and the type of program. We use two different modeling strategies: linear regression and Neural Networks, which are applied to the well-established Java Grande benchmark. We observe that there is a nonlinear relationship between these parameters and the associated performance. In addition, neural network models are observed to be consistently better at estimating the performance over a range of parameter values. The results reported in this paper can therefore be used to suitably re-structure software programs to fully utilize the available resources.
AB - Multi-core technology is an emerging hardware trend that provides significant capabilities for computationally expensive applications. However, it also demands a paradigm shift in the software industry, Software developers need to think about the best distribution of software components across the available CPUs, and trade-off the computational efficiency against the cost of re-structuring the standard sequential execution of software. The relationship between the measured performance and the corresponding parameters such as the number of threads and CPUs remains an interesting open problem, especially since it is a challenge to conduct controlled experiments. This paper reports a case study on the use of Solaris containers to control the assignment of threads to the available CPUs in a set of applications. We model the performance as a function of the number of threads, the number of CPUs and the type of program. We use two different modeling strategies: linear regression and Neural Networks, which are applied to the well-established Java Grande benchmark. We observe that there is a nonlinear relationship between these parameters and the associated performance. In addition, neural network models are observed to be consistently better at estimating the performance over a range of parameter values. The results reported in this paper can therefore be used to suitably re-structure software programs to fully utilize the available resources.
KW - multi-core performance
KW - neural networks
KW - regression
KW - solaris containers
UR - http://www.scopus.com/inward/record.url?scp=77954569954&partnerID=8YFLogxK
U2 - 10.1145/1808954.1808960
DO - 10.1145/1808954.1808960
M3 - Conference contribution
AN - SCOPUS:77954569954
SN - 9781605589640
T3 - Proceedings - International Conference on Software Engineering
SP - 18
EP - 25
BT - 3rd International Workshop on Multicore Software Engineering, IWMSE 2010, in Conjunction with the 32nd ACM/IEEE International Conference on Software Engineering, ICSE 2010
Y2 - 2 May 2010 through 8 May 2010
ER -