Several optimization alternatives are presented for legacy FORTRAN 77 scientific programs, each one with a quantitative characterization in terms of performance gain. Initially, sequential optimization is focused on the analisys of Level 3 BLAS (Basic Linear Algebra Subroutines) utilization, since BLAS have several performance optimized implementations. Also, the Fortran 90/95 array notation is used as a code upgrade from Fortran 77 to Fortran 90/95and, also, to provide the compiler a better source code for performance optimization. Since the shared memory parallel computing model is widely available (multiple cores and/or processors), the analysis of possible parallel processing via OpenMP is presented, along with the performance gain in a specific case. Sequential optimization as well parallelization work is done on a real (production code) program: a weather climate model implemented about two decades ago and used for climate research.
[1]
Barbara Chapman,et al.
Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation)
,
2007
.
[2]
Robert H. Halstead,et al.
Matrix Computations
,
2011,
Encyclopedia of Parallel Computing.
[3]
Anneli Folkesson,et al.
Numerical methods for engineers
,
2007
.
[4]
Charles L. Lawson,et al.
Basic Linear Algebra Subprograms for Fortran Usage
,
1979,
TOMS.
[5]
Gary W. Sabot.
High performance computing: problem solving with parallel and vector architectures
,
1995
.
[6]
Julien Langou,et al.
The Impact of Multicore on Math Software
,
2006,
PARA.