PerPI: A Tool to Measure Instruction Level Parallelism

  • Bernard Goossens
  • Philippe Langlois
  • David Parello
  • Eric Petit
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7133)


We introduce and describe PerPI, a software tool analyzing the instruction level parallelism (ILP) of a program. ILP measures the best potential of a program to run in parallel on an ideal machine – a machine with infinite resources. PerPI is a programmer-oriented tool the function of which is to improve the understanding of how the algorithm and the (micro-) architecture will interact. PerPI fills the gap between the manual analysis of an abstract algorithm and implementation-dependent profiling tools. The current version provides reproducible measures of the average number of instructions per cycle executed on an ideal machine, histograms of these instructions and associated data-flow graphs for any x86 binary file. We illustrate how these measures explain the actual performance of core numerical subroutines when measured run times cannot be correlated with the classical flop count analysis.


Run time performance instruction level parallelism ideal processor BLAS polynomial evaluation mixed precision 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Hennessy, J.L., Patterson, D.A.: Computer Architecture – A Quantitative Approach, 4th edn. Morgan Kaufmann (2007)Google Scholar
  2. 2.
    Higham, N.J.: Accuracy and Stability of Numerical Algorithms. SIAM (2002)Google Scholar
  3. 3.
    Langlois, P., Louvet, N.: More Instruction Level Parallelism Explains the Actual Efficiency of Compensated Algorithms. Technical Report, DALI Research Team (2007),
  4. 4.
    Luk, C., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V., Hazelwood, K.: Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In: PLDI 2005: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 190–200 (2005)Google Scholar
  5. 5.
    Ogita, T., Rump, S.M., Oishi, S.: Accurate Sum and Dot Product. SIAM J. Sci. Comput. 26(6), 1955–1988 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
  7. 7.
  8. 8.
    Rump, S.M.: Ultimately fast accurate summation. SIAM J. Sci. Comput. 31(5), 3466–3502 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Rump, S.M., Ogita, T., Oishi, S.: Accurate floating-point summation – part I: Faithful rounding. SIAM J. Sci. Comput. 31(1), 189–224 (2008)CrossRefzbMATHGoogle Scholar
  10. 10.
    Touati, S.: Towards a Statistical Methodology to Evaluate Program Speedups and their Optimisation Techniques. Technical Report, PRISM, UVSQ (2009),
  11. 11.
    Weaver, V., Dongarra, J.: Can Hardware Performance Counters Produce Expected, Deterministic Results? In: 3rd Workshop on Functionality of Hardware Performance Monitoring, Atlanta, GA (December 4, 2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Bernard Goossens
    • 1
  • Philippe Langlois
    • 1
  • David Parello
    • 1
  • Eric Petit
    • 1
  1. 1.DALI Research TeamUniversity of PerpignanPerpignan cedexFrance

Personalised recommendations