Porting Applications with OpenMP Using Similarity Analysis

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.

[1]  Dennis Mancl,et al.  Understanding and addressing the essential costs of evolving systems , 2000, Bell Labs Technical Journal.

[2]  Richard W. Vuduc,et al.  POET: Parameterized Optimizations for Empirical Tuning , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[3]  Barbara M. Chapman,et al.  Experiences with High-Level Programming Directives for Porting Applications to GPUs , 2011, Facing the Multicore-Challenge.

[4]  Michael E. Wolf,et al.  Combining Loop Transformations Considering Caches and Scheduling , 2004, International Journal of Parallel Programming.

[5]  Marina Schroder Facing the Multicore-Challenge - Aspects of New Paradigms and Technologies in Parallel Computing [Proceedings of a conference held at the Heidelberger Akademie der Wissenschaften, March 17-19, 2010] , 2011, Facing the Multicore-Challenge.

[6]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[7]  Mary W. Hall,et al.  CHiLL : A Framework for Composing High-Level Loop Transformations , 2007 .

[8]  Haoqiang Jin,et al.  The ParaWise Expert Assistant - Widening Accessibility to Efficient and Scalable Tool Generated OpenMP Code , 2004, WOMPAT.

[9]  Barbara M. Chapman,et al.  KLONOS: Similarity‐based planning tool support for porting scientific applications , 2013, Concurr. Comput. Pract. Exp..

[10]  Wei Ding,et al.  Bioinspired Similarity-Based Planning Support for the Porting of Scientific Applications , 2011 .

[11]  Antônio Francisco do Prado,et al.  Porting COBOL Programs Using a Transformational Approach , 1997, J. Softw. Maintenance Res. Pract..

[12]  Jesús Labarta,et al.  Interfacing Computer Aided Parallelization and Performance Analysis , 2003, International Conference on Computational Science.

[13]  Barbara Chapman,et al.  Shared Memory Parallel Programming with Open MP , 2005 .

[14]  D. Mancl Refactoring for software migration , 2001 .

[15]  Barbara M. Chapman,et al.  A Similarity-Based Analysis Tool for Porting OpenMP Applications , 2012, Facing the Multicore-Challenge.

[16]  Ray W. Grout,et al.  Hybridizing S3D into an Exascale application using OpenACC: An approach for moving to multi-petaflops and beyond , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[17]  Jack Dongarra,et al.  Computational Science — ICCS 2003 , 2003, Lecture Notes in Computer Science.

[18]  Barbara Chapman,et al.  Using OpenMP - portable shared memory parallel programming , 2007, Scientific and engineering computation.

[20]  Oscar R. Hernandez,et al.  HERCULES: A Pattern Driven Code Transformation System , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[21]  Bradford Nichols,et al.  Pthreads programming , 1996 .