Skip all navigation and jump to content Jump to site navigation Jump to section navigation.
NASA Logo - Goddard Space Flight Center + Visit NASA.gov
Software Integration and Visualization Office banner
ABOUT US OUR WEB SITES RESOURCES

  +Home

 

About Us
MISSION
ORGANIZATION
PERSONNEL

+ Advanced Software Technology Group (ASTG)

+ Cubed-sphere fvcore

+ pFUnit

+ FFTT

+ GMI

+ Asynch I/O

+ Modeling Guru

+ GISS ModelE

+ Sourcemotel

+ Gigaparticle Trajectories

+ Adjoint GCM

+ Scientific Visualization Studio

+ Education & Public Outreach

Advanced Software Technology Group

Fast Fortran Transformation Toolkit (FFTT)

ASTG is developing FFTT which enables model developers to create test "harnesses" for legacy software written in Fortran. Such harnesses are invaluable tools when maintaining and extending software because the automatically detect and isolate model errors (bugs) as soon as they are introduced. This extra security therefore enables developers to make more substantial changes at lower risk and alters the entire dynamics of software development.

FFTT grew from our experience in using our own pFUnit, which enables test driven development in Fortran. Unfortunately, for legacy software typically does not have any unit tests and only rarely is it straightforward to construct suitable tests. Our approach is instead to assume that the current application is working as expected and to capture that empirical behavior within data files. FFTT provides tools that greatly simplify the capturing of this empirical test data and then provides the means to "replay" the same interface to see if the behavior of a procedure has changed because of further developments. The package will identify which routines have changed and which variables are incorrect.

The basic capabilities of FFTT are now nearly complete. We now expect to add extensions that will be useful in the context of message passing for parallelism. The same empirical data can drive both a serial and a parallel implementation of a given algorithm, and in this manner a developer can check a parallel implementation against a large number of different scenarios rapidly and precisely. Previously developers would typically test using an entire application which would provide very little useful feedback when an error had been introduced. Further, the expense of testing the entire application meant that only a handful of different processor counts would be tested.

FFTT can also be useful when porting an application to a new architecture, new compiler, or even altering compilation flags. FFTT can systematically report on which interfaces are affected by the change and to what degree. At the level of a full system, harmless roundoff can lead to large deviations that may mask real errors. We expect that for most procedures, though, the lower-level FFTT-based tests should distinguish between unavoidable roundoff issues and differences that require further investigation.

 

 

USA.gov logo + Privacy Policy and Important Notices NASA Curator: Lara Clemence
NASA Official: Michael Seablom
Last Updated: 04/17/2008