Frank, Byron R. wrote:
> Is anyone aware of tools for use by Fortran developers that can do the
> following:
>
> * Dynamic run time analysis (memory leak checking, unitialized
> memory reads, etc.)
> * Coverage analysis (how many times lines of code are executed)
> * Timing analysis (how long a particular routine or block of code
> requires to execute)
> * Runs on Linux (we use SUSE 9.0)
> * Runs with Fortran compilers (we use ifort)
>
>
> Our organization had previously used (with great success) the Purify /
> PureCoverage / Quantify tools from Atria/ClearCase/IBM on HP-UX. We
> have been informed that IBM is no longer supporting any Fortran compiler
> on any platform. We need a replacement.
>
> Does Intel's Vtune provide all of the above?
> Does anybody use valgrind?
> Are there others?
>
For use with ifort -parallel or -openmp, Intel Thread Checker is useful
for finding un-initialized data, as well as checking for threading
errors. In most cases, un-initialized data in Fortran programs stem
from not following good practice, including use of undisciplined styles
from 40 years ago.
valgrind is often recommended for mixed language programs; it may be
over-kill for pure Fortran programs.
The profiling options included in ifort may be used for coverage
analysis, although I concur with Greg that gcov may be found more
convenient.
Intel VTune may be used with all compilers which support the standard -g
debug symbols. Much of its functionality is limited to Intel CPUs. For
profiling execution times at the function level, I prefer gprof for long
running programs. However, gprof support is broken in several of the
most popular linux distributions. For profiling blocks of code inside
functions, VTune has advantages.
|