KLONOS: Similarity‐based planning tool support for porting scientific applications

In this paper, we propose a methodology to address an important aspect of software porting that receives little attention, namely planning support. When a scientific application consisting of many subroutines is to be ported, the selection of key subroutines greatly impacts the productivity and overall porting strategy because these subroutines may represent a significant feature of the code in terms of functionality, code structure, or performance. They may as well serve as indicators of the difficulty and amount of effort involved in porting a code to a new platform. The proposed methodology is based on the idea that a set of similar subroutines can be ported with similar strategies and result in a similar‐quality porting. By viewing subroutines as data and operator sequences, analogous to DNA sequences, we are able to use various bioinformatics techniques to conduct the similarity analysis of subroutines while mitigating NP‐complete challenges of other approaches. To the best of our knowledge, we are one of the first to explore this bio‐inspired view of program to target the porting planning problem. In this paper, we describe our methodology and present a tool called Klonos to facilitate the execution of the methodology, which integrates to well known bioinformatics tools. As a proof of concept, we use Klonos to conduct experiments to find strategies for porting of several scientific benchmarks and applications. We also have identified some of the advantages and limitations of the bio‐inspired view of a program code and the future work. Copyright © 2012 John Wiley & Sons, Ltd.

[1]  Chanchal Kumar Roy,et al.  An Empirical Study of Function Clones in Open Source Software , 2008, 2008 15th Working Conference on Reverse Engineering.

[2]  Romain Robbes,et al.  Language-Independent Clone Detection Applied to Plagiarism Detection , 2010, 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation.

[3]  Beth Tibbitts,et al.  NextGen eXtreme porting: structured by automation , 2005, SAC '05.

[4]  Michael Frumkin,et al.  The OpenMP Implementation of NAS Parallel Benchmarks and its Performance , 2013 .

[5]  Mark Hennessy,et al.  Ensuring behavioural equivalence in test-driven porting , 2006, CASCON.

[6]  Christoph W. Kessler,et al.  Automatic Parallelization by Pattern-Matching , 1993, ACPC.

[7]  I. Longden,et al.  EMBOSS: the European Molecular Biology Open Software Suite. , 2000, Trends in genetics : TIG.

[8]  Carlo Ghezzi,et al.  A hybrid approach (syntactic and textual) to clone detection , 2010, IWSC '10.

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

[10]  Henk Corporaal,et al.  Transformatiing and Parallelizing ANSI C Programs using Pattern Recognition , 1999, HPCN Europe.

[11]  Christus,et al.  A General Method Applicable to the Search for Similarities in the Amino Acid Sequence of Two Proteins , 2022 .

[12]  Mohammad El-Ramly,et al.  Similarity in Programs , 2006, Duplication, Redundancy, and Similarity in Software.

[13]  J. Howard Johnson,et al.  Substring matching for clone detection and change tracking , 1994, Proceedings 1994 International Conference on Software Maintenance.

[14]  Pradeep Varma Process and Planning Support for Iterative Porting , 2006, J. Inf. Sci. Eng..

[15]  Iulian Neamtiu,et al.  Towards a better understanding of software evolution: An empirical study on open source software , 2009, 2009 IEEE International Conference on Software Maintenance.

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

[17]  Surin Kittitornkun,et al.  MT-ClustalW: multithreading multiple sequence alignment , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[18]  Susan Horwitz,et al.  Detecting and Measuring Similarity in Code Clones , 2009 .

[19]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[20]  William G. Griswold,et al.  Effective pattern matching of source code using abstract syntax patterns , 2006, Softw. Pract. Exp..

[21]  Beniamino Di Martino,et al.  PAP Recognizer: a tool for automatic recognition of parallelizable patterns , 1996, WPC '96. 4th Workshop on Program Comprehension.

[22]  John M. Dennis,et al.  Towards an efficient and scalable discontinuous Galerkin atmospheric model , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[23]  Alessandro Bianchi,et al.  A Storytest-Driven Approach to the Migration of Legacy Systems , 2009, XP.

[24]  Steven P. Reiss Specifying what to search for , 2009, 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation.

[25]  François Bodin,et al.  A user level program transformation tool , 1998, ICS '98.

[26]  Geoffrey J. Barton,et al.  Jalview Version 2—a multiple sequence alignment editor and analysis workbench , 2009, Bioinform..