Skip to main content

A Similarity-Based Analysis Tool for Porting OpenMP Applications

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7686))

Abstract

Exascale computers are expected to exhibit an unprecedented level of complexity, thereby posing significant challenges for porting applications to these new systems. One of the ways to support this transition is to create tools that allow their users to benefit from prior successful porting experiences. The key to such an approach is the manner in which we define source code similarity, and whether similar codes can be ported in the same way to a given system. In this paper, we propose a novel approach based on the notion of similarity that uses static and dynamic code features to check if two serial subroutines can be ported with the same OpenMP strategy. Our approach creates an annotated family distance tree based on the syntactic structure of subroutines, where subroutines that belong to the same syntactic family and share the similar code features have a greater potential to be optimized in the same way. We describe the design and implementation of a tool, based upon a compiler and performance tool, that is used to gather the data to build this porting planning tree. We then validate our approach by analyzing the similarity in subroutines of the serial version of the NAS benchmarks and comparing how they were ported in the OpenMP version of the suite.

This work was funded by the ORAU/ORNL HPC grant and NSF grant CCF-0917285. This research used resources of the Leadership Computing Facility at Oak Ridge National Laboratory and NICS Nautilus supercomputer for the data analysis.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Emboss: The european molecular biology open software suite (2000)

    Google Scholar 

  2. Codeanalyst user’s manual (2010)

    Google Scholar 

  3. Machine Learning Group at University of Waikato. Weka 3: Data mining software in java, http://www.cs.waikato.ac.nz/ml/weka/

  4. Bodin, F., Mével, Y., Quiniou, R.: A user level program transformation tool. In: International Conference on Supercomputing (July 1998)

    Google Scholar 

  5. Open64 Compiler. Open64 compileri, whirl intermediate representation, http://www.mcs.anl.gov/OpenAD/open64A.pdf

  6. Ding, W., Hsu, C.-H., Hernandez, O., Chapman, B., Graham, R.: Klonos: Similarity-based planning tool support for porting scientific applications. Concurrency and Computation: Practice and Experience (2012)

    Google Scholar 

  7. Ding, W., Hsu, C.-H., Hernandez, O., Graham, R., Chapman, B.M.: Bioinspired similarity-based planning support for the porting of scientific applications. In: 4th Workshop on Parallel Architectures and Bioinspired Algorithms, Galveston Island, Texas, USA (2011)

    Google Scholar 

  8. Fursin, G., Temam, O.: Collective optimization: A practical collaborative approach. ACM Transactions on Architecture and Code Optimization

    Google Scholar 

  9. Gabel, M., Jiang, L., Su, Z.: Scalable detection of semantic clones. In: Proceedings of the 30th International Conference on Software Engineering, pp. 321–330. ACM (2008)

    Google Scholar 

  10. Kessler, C.: Parallelize automatically by pattern matching (2000)

    Google Scholar 

  11. Krinke, J.: Identifying similar code with program dependence graphs. In: WCRE, p. 301. IEEE Computer Society (2001)

    Google Scholar 

  12. Needleman, S.B., Wunsch, C.D.: A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology 48(3), 443–453 (1970)

    Article  Google Scholar 

  13. OpenMP: Simple, portable, scalable SMP programming (2006), http://www.openmp.org

  14. The OpenUH compiler project (2005), http://www.cs.uh.edu/~openuh

  15. Sokal, R., Michener, C.: A statistical method for evaluating systematic relationships. University of Kansas Science Bulletin 38, 1409–1438 (1958)

    Google Scholar 

  16. Roy, C.K., Cordy, J.R.: An empirical study of function clones in open source software. In: Proceedings of the 2008 15th Working Conference on Reverse Engineering, Washington, DC, USA, pp. 81–90 (2008)

    Google Scholar 

  17. Saitou, N., Nei, M.: The neighbor-joining method: a new method for reconstructing phylogenetic trees. Molecular Biology and Evolution 4(4), 406–425 (1987)

    Google Scholar 

  18. Smith, R., Horwitz, S.: Detecting and measuring similarity in code clones. In: International Workshop on Software Clones (March 2009)

    Google Scholar 

  19. Walenstein, A., El-Ramly, M., et al.: Similarity in programs. In: Duplication, Redundancy, and Similarity in Software. Dagstuhl Seminar Proceedings (April 2007)

    Google Scholar 

  20. Fitch, W.M., Margoliash, E.: Construction of phylogenetic trees. Science 155(3760), 279–284 (1967)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Ding, W., Hernandez, O., Chapman, B. (2013). A Similarity-Based Analysis Tool for Porting OpenMP Applications. In: Keller, R., Kramer, D., Weiss, JP. (eds) Facing the Multicore-Challenge III. Lecture Notes in Computer Science, vol 7686. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35893-7_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35893-7_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35892-0

  • Online ISBN: 978-3-642-35893-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics