Tuning and Benchmarking
Anton H.J. Koning
Academic Computing Services Amsterdam
<anton@sara.nl>
Looking at many of todays programs, one might get the impression that the
speed with which manufacturers introduce new generations of processors and
increase clock speeds, has lead to a certain complacency with programmers.
Rather than spend some time optimizing their code, they either ask for a new,
faster machine or put a sticker on the box saying: "Minimum configuration:
Pentium II 233 Mhz, 64 Mbytes RAM, 512 Mbytes disk space, 24 speed CD-ROM".
For some applications this may be cost effective, but for instance for large
scale scientific computing, a couple of hours invested in optimization may well
be worth a number of weeks in run time. In this talk and paper, a number of
optimization and benchmarking techniques will be discussed: Timing and
profiling, efficient coding, loop optimizations, memory access and cache
efficiency, vectorization and parallelization, standard and self-written
benchmarks.