Abstract
As both programs and machines are becoming more complex, writing high performance codes is an increasingly difficult task. In order to bridge the gap between the compiled-code and peak performance, resorting to domain or architecture-specific libraries has become compulsory. However, deciding when and where to use a library function must be specified by the programmer. This partition between library and user code is not questioned by the compiler although it has a great impact on performance. We propose in this paper a new method that helps the user find in its application all code fragments that can be replaced by library calls. The same technique can be used to change or fusion multiple calls into more efficient ones. The results of the alternative detection of BLAS 1 and 2 in SPEC are presented.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Cimetile, A., Lucia, A.D., Munro, M.: A Specification-driven Slicing Process for Identifying Reusable Functions. J. of Software Maintenance: Research and Practice 8(3), 145–178 (1996)
Alias, C., Barthou, D.: Algorithm Recognition based on Demand-driven Dataflow Analysis. In: Working Conf. on Reverse Engineering, IEEE, Los Alamitos (2003)
Lattner, C., Adve, V.: LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In: Proceedings of CGO 2004, Palo Alto (2004)
Lawson, C., Hanson, R., Kincaid, D., Krogh, F.: Basic Linear Algebra Subprograms for Fortran usage. Trans. on Mathematical Software 5(3), 308–323 (1979)
Wilde, D.: A Library for Doing Polyhedral Operations. INRIA TR 2157 (1993)
Quilleré, F., Rajopadhye, S., Wilde, D.: Generation of Efficient Nested Loops from Polyhedra. Int. J. of Parallel Programming 28(5), 469–498 (2000)
Dongarra, J.: The LINPACK Benchmark: An Explanation. In: Supercomputing, pp. 456–474. Springer, Heidelberg (1988)
Henning, J.: SPEC CPU2000: Measuring CPU Performance in the New Millennium. Computer 33(7), 28–35 (2000)
Wills, L.: Automated Program Recognition by Graph Parsing. PhD thesis, MIT (1992)
Frigo, M., Johnson, S.: FFTW: An Adaptive Software Architecture for the FFT. In: Proc. Intl. Conf. Acoustics Speech and Signal Processing, vol. 3, pp. 1381–1384. IEEE, Los Alamitos (1998)
Püschel, M., Singer, B., Xiong, J., Moura, J., Johnson, J., Padua, D., Veloso, M., Johnson, R.: SPIRAL: A Generator for Platform-Adapted Libraries of Signal Processing Algorithms. J. of High Perf. Comp. and Applications 1(18), 21–45 (2004)
Thomas, N., Tanase, G., Tkachyshyn, O., Perdue, J., Amato, N., Rauchwerger, L.: A Framework for Adaptive Algorithm Selection in STAPL. In: Proc. ACM PPoPP 2005, Chicago (2005)
Metzger, R., Wen, Z.: Automatic Algorithm Recognition: A New Approach to Program Optimization. MIT Press, Cambridge (2000)
Whaley, R., Dongarra, J.: Automatically Tuned Linear Algebra Software. In: SuperComputing, Springer, Heidelberg (1998)
Kim, S., Kim, J.: An Hybrid Approach for Program Understanding based on Graph-Parsing and Expectation-driven Analysis. J. of Applied A.I. 12(6), 521–546 (1998)
Paul, S., Prakash, A.: A Framework for Source Code Search using Program Patterns. IEEE Trans. on S.E. 20(6), 463–475 (1994)
Kelly, W., Pugh, W., Rosser, E., Shpeisman, T.: Transitive Closure of Infinite Graphs and its Applications. Int. J. of Parallel Programming 24(6), 579–598 (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Alias, C., Barthou, D. (2005). Deciding Where to Call Performance Libraries. In: Cunha, J.C., Medeiros, P.D. (eds) Euro-Par 2005 Parallel Processing. Euro-Par 2005. Lecture Notes in Computer Science, vol 3648. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11549468_39
Download citation
DOI: https://doi.org/10.1007/11549468_39
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28700-1
Online ISBN: 978-3-540-31925-2
eBook Packages: Computer ScienceComputer Science (R0)