Abstract

Program executions are usually repetitive, hence, we can optimize program executions if we are able to identify the program's repetition pattern. If we can accurately classify program execution intervals into phases, and use such information to accurately predict the next phase at runtime, we will be able to apply suitable optimization on the subsequent intervals. Such runtime optimization opportunity not only exists in single-threaded programs but also in multithreaded programs In this paper, we propose a framework that collects code signature of each interval from individual threads of a multi-threaded parallel program, and classify them into phases at runtime. We then use the classification results to predict the next phase in an on-line fashion. In order to efficiently classify execution intervals on-line, we only keep a fixed number of representative data in a shared table for classification purpose. The classification is very efficient and uses less than 3K bytes of memory. We also propose a confidence table to improve the prediction rate. Our experiment results with the Spec OMP2001 and the PARSEC benchmark suites on an Intel Xeon multi-core show that our system can classify intervals into phases with high homogeneity, can predict the next phase with 65% accuracy without using confidence table and with 80% accuracy when confidence table is used.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call