Every mathematical algorithm for
the numerical algebra can be relatively easily rewrited into
pseudocode: every
mathematic operation in the algorithm is simply transformed into one
subroutine
from the linear algebra package. This simple algorithm leads to very
transparent, error-free codes. But these codes do not respect the inner
architecture of the CPU and the memory hierarchy and suffer from low
temporal
and spatial locality. These drawbacks can be reduced by the
applications of SW
transformation techniques. These
transformations result
in better temporal and spatial locality or in more efficient
utilization of
inner pipelines.
In this paper, we will demonstrate
idea of SW transformation on 2 codes of iterative solvers. We will also
represent the new code restructuring transformation called dynamic
loop
reversal. This transformation offers a new way to improve the cache
utilization.