[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-user] Article: Fortran Legacy Software: Source Code Update and Possible Parallelisation Issues

Mariano Méndez (one of our Photran committers and the proprietor of http://www.fortranrefactoring.com.ar/) and his PhD advisor, Fernando Tinetti, published a nice article in this month's ACM Fortran Forum on their work modernizing legacy Fortran codes through automated refactoring.  The article describes an interesting vision, as well as some detail on how (and why) they are implementing their transformations in Photran.  -Jeff


"Fortran Legacy Software: Source Code Update and Possible Parallelisation Issues"

Fernando G. Tinetti and Mariano Méndez, Universidad Nacional de La Plata

Abstract: We are working on a process for carrying out a set of transformations on Fortran legacy projects. We started our work for parallelization and reduction of runtime at least on multiprocessing systems, but we found necessary to update several old Fortran features and/or legacy software issues as a previous task. We present how to define and implement several source code transformations in order to enhance readability and, also, provide a source code that we think is more likely to be parallelized in subsequent work. Furthermore, we propose that some parallelization (e.g. for shared memory parallel computers) can be made at least as a tool-guided process, i.e. as other source code transformations. In the most simple cases, some transformations from sequential to parallel processing could be made automatically by a source code software analysis and transformation tool, which could provide the user (programmer/developer) a suggested way of Parallelisation. Source code transformations are initially approached as restructurings, and implemented by changing the abstract syntax tree (AST) program representation. We provide some comments on our preliminary work on the source code transformations directly focussed on parallelization that we expect to implement almost automatically.