This book presents the investigation, discussion, and
implementation of techniques for the analysis and
optimization of data locality in divide-and-conquer
algorithms as well as the design of new recursive
algorithms (e.g., balanced Strassen--Winograd''s matrix
multiplication and Kleene''s closure). We turn our
attention to recursive algorithms because we find
them appealing (i.e., natural code design, easy to
maintain and test) and we also aim at optimization
techniques and code generation for loop based codes
---non recursive--- in combination with recursive
algorithms, which is a hard problem. This work dwells
with algorithms, architectures, compilers,
performance measurement, and performance
interpretation. This
book is interdisciplinary by construction and it is
for systems engineers, computer scientists, and
compiler designers.
implementation of techniques for the analysis and
optimization of data locality in divide-and-conquer
algorithms as well as the design of new recursive
algorithms (e.g., balanced Strassen--Winograd''s matrix
multiplication and Kleene''s closure). We turn our
attention to recursive algorithms because we find
them appealing (i.e., natural code design, easy to
maintain and test) and we also aim at optimization
techniques and code generation for loop based codes
---non recursive--- in combination with recursive
algorithms, which is a hard problem. This work dwells
with algorithms, architectures, compilers,
performance measurement, and performance
interpretation. This
book is interdisciplinary by construction and it is
for systems engineers, computer scientists, and
compiler designers.