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...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
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 |