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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Emboss: The european molecular biology open software suite (2000)
Codeanalyst user’s manual (2010)
Machine Learning Group at University of Waikato. Weka 3: Data mining software in java, http://www.cs.waikato.ac.nz/ml/weka/
Bodin, F., Mével, Y., Quiniou, R.: A user level program transformation tool. In: International Conference on Supercomputing (July 1998)
Open64 Compiler. Open64 compileri, whirl intermediate representation, http://www.mcs.anl.gov/OpenAD/open64A.pdf
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)
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)
Fursin, G., Temam, O.: Collective optimization: A practical collaborative approach. ACM Transactions on Architecture and Code Optimization
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)
Kessler, C.: Parallelize automatically by pattern matching (2000)
Krinke, J.: Identifying similar code with program dependence graphs. In: WCRE, p. 301. IEEE Computer Society (2001)
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)
OpenMP: Simple, portable, scalable SMP programming (2006), http://www.openmp.org
The OpenUH compiler project (2005), http://www.cs.uh.edu/~openuh
Sokal, R., Michener, C.: A statistical method for evaluating systematic relationships. University of Kansas Science Bulletin 38, 1409–1438 (1958)
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)
Saitou, N., Nei, M.: The neighbor-joining method: a new method for reconstructing phylogenetic trees. Molecular Biology and Evolution 4(4), 406–425 (1987)
Smith, R., Horwitz, S.: Detecting and measuring similarity in code clones. In: International Workshop on Software Clones (March 2009)
Walenstein, A., El-Ramly, M., et al.: Similarity in programs. In: Duplication, Redundancy, and Similarity in Software. Dagstuhl Seminar Proceedings (April 2007)
Fitch, W.M., Margoliash, E.: Construction of phylogenetic trees. Science 155(3760), 279–284 (1967)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)