The transition of numerical software

Barry Smith · ACM SIGNUM Newsletter · 1998

Traditionally, much of the numerical analysis community has focused on issues of error bounds, convergence rates and time and space complexity of numerical algorithms, not on robust, reusable software implementations. Until recently, many of the computer science advances in software engineering rarely filtered into numerical codes.With the growing complexity of (1) parallel computers, (2) numerical algorithms, and (3) application physics that must be modeled, the community has finally begun to realize the need for new techniques to manage the complexity of the codes. Thus, the entire community has entered a learning curve; some groups are well advanced on the curve and develop and use sophisticated class libraries and frameworks, while others are still struggling with dynamic memory allocation and data structures.This article will discuss some of the issues involved in the transition from a Fortran 77 nuts-and-bolts approach to developing numerical code to a higher level, abstract, object-oriented methodology and how our PETSc development team is trying to ease that transition. In addition, it will discuss two limitations in the Fortran 90 syntax that make it difficult to take full advantage of abstraction when programming purely in Fortran 90.

Read the paper · More papers on PaperTik