Automatic refactoring of Fortran applications

The proposal of refactoring applications mainly came about due to sequential algorithms that have room for improvement in terms of performance. Most sequential algorithms like matrix multiplication where the complexity is O(n3) can affect the overall execution time of a program when their size incre...

Full description

Saved in:
Bibliographic Details
Main Author: Chandrasehar Rajaseharan.
Other Authors: Stephen John Turner
Format: Final Year Project
Language:English
Published: 2012
Subjects:
Online Access:http://hdl.handle.net/10356/48454
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-48454
record_format dspace
spelling sg-ntu-dr.10356-484542023-03-03T20:29:23Z Automatic refactoring of Fortran applications Chandrasehar Rajaseharan. Stephen John Turner School of Computer Engineering A*STAR Institute of High Performance Computing (IHPC) Parallel and Distributed Computing Centre DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems The proposal of refactoring applications mainly came about due to sequential algorithms that have room for improvement in terms of performance. Most sequential algorithms like matrix multiplication where the complexity is O(n3) can affect the overall execution time of a program when their size increases. This can be improved if algorithms are transformed in such a way where the operations involving the array(s) in loops can be parallelized. In the context of the project, this parallelism is mainly achieved by two techniques, Array slicing and Fortran’s intrinsic functions in Fortran 90 where the former uses the technique of vectorization while the latter uses compiler-defined algorithms to parallelize array operations. A plugin developed using Eclipse and the Photran framework implements this process by identifying loops within programs where their array operations are refactored to either array sliced forms or Fortran’s intrinsic functions. This identification process includes data dependence analysis on the loops. Conclusively, profiling tests conducted on the implementation of these two techniques in two Fortran applications computing mathematical functions such as derivatives of a function and plotting a linear curve for Millikan experimental data highlight a maximum speedup of 2.99 as the size of the vectors involved in the application increase from 100 to 100000 for the first application and a maximum speedup of 1.73 as the size of the vectors increase from 20000 to 100000 for the second application. Bachelor of Engineering (Computer Science) 2012-04-24T03:42:16Z 2012-04-24T03:42:16Z 2011 2011 Final Year Project (FYP) http://hdl.handle.net/10356/48454 en Nanyang Technological University 51 p. application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems
spellingShingle DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems
Chandrasehar Rajaseharan.
Automatic refactoring of Fortran applications
description The proposal of refactoring applications mainly came about due to sequential algorithms that have room for improvement in terms of performance. Most sequential algorithms like matrix multiplication where the complexity is O(n3) can affect the overall execution time of a program when their size increases. This can be improved if algorithms are transformed in such a way where the operations involving the array(s) in loops can be parallelized. In the context of the project, this parallelism is mainly achieved by two techniques, Array slicing and Fortran’s intrinsic functions in Fortran 90 where the former uses the technique of vectorization while the latter uses compiler-defined algorithms to parallelize array operations. A plugin developed using Eclipse and the Photran framework implements this process by identifying loops within programs where their array operations are refactored to either array sliced forms or Fortran’s intrinsic functions. This identification process includes data dependence analysis on the loops. Conclusively, profiling tests conducted on the implementation of these two techniques in two Fortran applications computing mathematical functions such as derivatives of a function and plotting a linear curve for Millikan experimental data highlight a maximum speedup of 2.99 as the size of the vectors involved in the application increase from 100 to 100000 for the first application and a maximum speedup of 1.73 as the size of the vectors increase from 20000 to 100000 for the second application.
author2 Stephen John Turner
author_facet Stephen John Turner
Chandrasehar Rajaseharan.
format Final Year Project
author Chandrasehar Rajaseharan.
author_sort Chandrasehar Rajaseharan.
title Automatic refactoring of Fortran applications
title_short Automatic refactoring of Fortran applications
title_full Automatic refactoring of Fortran applications
title_fullStr Automatic refactoring of Fortran applications
title_full_unstemmed Automatic refactoring of Fortran applications
title_sort automatic refactoring of fortran applications
publishDate 2012
url http://hdl.handle.net/10356/48454
_version_ 1759856530508742656