Identifying hotspots in a program for data parallel architecture: an early experience

  • Authors:
  • Santonu Sarkar;Mageri Filali Maltouf

  • Affiliations:
  • Infosys Labs, Bangalore, India;Mines ParisTech, Paris, France

  • Venue:
  • Proceedings of the 5th India Software Engineering Conference
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

In applications that rely on data intensive computation, one can gain significant performance if the source code is suitably transformed for parallel hardware. A common approach is to identify the loops inside the program that consume a significant amount of time, that we call hotspots. One of the impending business need here is to quickly identify such loops for further transformation. However, the exact identification of such hotspots requires an elaborate runtime analysis. When we deal with a third party business application, only a partial version of the source code is available, with limited test inputs, which hinders a correct runtime analysis. Therefore, we resort to static analysis of source code to get a conservative loop iteration count. In this paper we describe our approach to analyze a source code to find hotspots. Our approach is based on estimating the iteration count of a loop using the polytope model for volume computation. This is then combined with the cyclomatic complexity measurement of the loop body. Both these metrics together provides an approximate idea of hotspots in a program and serves as a code transformation clue to programmers. We have run our tool on Rodinia benchmark applications and found encouraging results.