Abstract
Computer architecture has undergone dramatic changes due to technology innovation. Some emerging architectures, such as GPUs and MICs also have been successfully used for parallel computation in the today’s HPC field. Nowadays, people frequently have to port application to a new architecture or system and to expand its functionality for a better performance while in the meantime to meet the new hardware environment need. However, many scientific application legacy codes have a relative large size and long development cycle, so it’s a very challenging job to port legacy codes to a new environment. And current codes porting process is a manual, time-consuming, expensive and error-prone process, which requires a team of people work together. Barely any useful tools can be used to ease the porting process in High Performance Computing (HPC). In this paper, we present a tool called Klonos, which is designed for assisting scientific application porting. Based on similarity analysis of code syntax and cost-model provided metrics, we are able to find codes which can be optimized similarly without the need of profiling the codes. The proposed porting plan can systematically guide users for selecting subroutines in a way which maximizes the reuse of similar porting strategy. We evaluate Klonos by applying it to a real scientific application porting to a shared memory environment using OpenMP. According to our experiment result, which shows that Klonos is very accurate to detect similar codes which can be ported similarly.
This work was funded by the ORAU/ORNL HPC grant. This research used resources of the Leadership Computing Facility at Oak Ridge National Laboratory and NICS Nautilus supercomputer for the data analysis.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
OpenMP ARB. Openmp arb. http://openmp.org/wp/about-openmp/
Machine Learning Group at University of Waikato. Weka 3: Data mining software in java. http://www.cs.waikato.ac.nz/ml/weka/
Jost, G., Chapman, B.M., van der Pas, R.: Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press, Cambridge (2007)
Buttlar, D., Nichols, B., Farrell, J.P.: Pthreads Programming. O’Reilly & Associates Inc., Sebastopol (1996)
NASA Ames Research Center. Capo (computer-aided parallelizer and optimizer). http://people.nas.nasa.gov/~hjin/CAPO/index.html
Chapman, B., Jost, G., Van Der Pas, R.: Using OpenMP: Portable Shared Memory Parallel Programming, vol. 10. MIT Press, Cambridge (2007)
Chen, C., Chame, J., Hall, M.: CHiLL: a framework for composing high-level loop transformations. Technical report, Technical Report 08–897, USC Computer Science Technical Report (2008)
Davison, J., Mancl, D., Opdyke, W.: Understanding and addressing the essential costs of evolving systems. Bell Labs Tech. J. 5, 44–54 (2000)
Ding, W., Hernandez, O., Chapman, B.: A similarity-based analysis tool for porting OpenMP applications. In: Keller, R., Kramer, D., Weiss, J.-P. (eds.) Facing the Multicore-Challenge III. LNCS, vol. 7686, pp. 13–24. Springer, Heidelberg (2013)
Ding, W., Hsu, C.-H., Hernandez, O., Chapman, B., Graham, R.: Klonos: similarity-based planning tool support for porting scientific applications. Concurrency Comput. Pract. Experience 25, 1072–1088 (2013)
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)
CAPS Entreprise. HMPP: A Hybrid Multicore Parallel Programming Platform. http://www.caps-entreprise.com/en/documentation/caps_hmpp_product_brief.pdf
The Portland Group. PGI accelerator compilers (2010). http://www.pgroup.com/resources/accel.htm
Hernandez, O., Ding, W., Chapman, B., Kartsaklis, C., Sankaran, R., Graham, R.: Experiences with high-level programming directives for porting applications to GPUs. In: Keller, R., Kramer, D., Weiss, J.-P. (eds.) Facing the Multicore - Challenge II. LNCS, vol. 7174, pp. 96–107. Springer, Heidelberg (2012)
Johnson, S., Evans, E., Jin, H., Ierotheou, C.: The ParaWise expert assistant - widening accessibility to efficient and scalable tool generated OpenMP code. In: Chapman, B.M. (ed.) WOMPAT 2004. LNCS, vol. 3349, pp. 67–82. Springer, Heidelberg (2005)
Jost, G., Jin, H., Labarta, J., Gimenez, J.: Interfacing computer aided parallelization and performance analysis. In: Sloot, P.M.A., Abramson, D., Bogdanov, A.V., Gorbachev, Y.E., Dongarra, J., Zomaya, A.Y. (eds.) ICCS 2003, Part IV. LNCS, vol. 2660, pp. 181–190. Springer, Heidelberg (2003)
Kartsaklis, C., Hernandez, O., Hsu, C.H., Ilsche, T., Joubert, W., Graham, R.L.: Hercules: a pattern driven code transformation system. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), pp. 574–583. IEEE (2012)
Levesque, J., Sankaran, R., et al.: Hybridizing s3d into an exascale application using openacc: an approach for moving to multi-petaflops and beyond. In: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, p. 15. IEEE Computer Society Press (2012)
Top500 List. Treemap - november 2012 (accelerator/co-processor). http://www.top500.org/statistics/treemaps/
Mancl, D.: Refactoring for software migration. IEEE Commun. Mag. 39(10), 88–93 (2001)
Mével, Y.: Tsf: an environment for program transformations
Munshi, A.: The OpenCL Specification, October 2009
NVIDIA Corporation. NVIDIA CUDA Compute Unified Device Architecture Programming Guide Version 3.0, March 2010. http://developer.nvidia.com/cuda
The OpenUH compiler project (2005). http://www.cs.uh.edu/~openuh
Sampaio do Prado Leite, J.C., Sant’Anna, M., Francisco do Prado, A.: Porting cobol programs using a transformational approach. J. Softw. Maintenance: Res. Pract. 9(1), 3–31 (1997)
Tafti, D.: Genidlest a parallel high performance computational infrastructure for simulating complex turbulent flow and heat transfer. APS Division of Fluid Dynamics Meeting Abstracts, vol. 1 (2002)
Vetter, S., Aoyama, Y., Nakano, J.: RS/6000 SP: practical MPI programming, vol. SG24-5380-00 of 0738413658. vervante, August 1999
The Wikipedia. Software porting. http://en.wikipedia.org/wiki/Porting
Wolf, M.E., Maydan, D.E., Chen, D.-K.: Combining loop transformations considering caches and scheduling. In: Proceedings of the 29th Annual ACM/IEEE International Symposium on Microarchitecture, pp. 274–286. IEEE Computer Society, Washington, DC (1996)
Yi, Q., Seymour, K., You, H., Vuduc, R., Quinlan, D.J.: POET: parameterized optimizations for empirical tuning. In: Workshop on Performance Optimization for High-Level Languages and Libraries, March 2007
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Ding, W., Hernandez, O., Curtis, T., Chapman, B. (2014). Porting Applications with OpenMP Using Similarity Analysis. In: Cașcaval, C., Montesinos, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2013. Lecture Notes in Computer Science(), vol 8664. Springer, Cham. https://doi.org/10.1007/978-3-319-09967-5_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-09967-5_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09966-8
Online ISBN: 978-3-319-09967-5
eBook Packages: Computer ScienceComputer Science (R0)