How to Write Fast Numerical Code: A Small Introduction

  • Authors:
  • Srinivas Chellappa;Franz Franchetti;Markus Püschel

  • Affiliations:
  • Electrical and Computer Engineering, Carnegie Mellon University,;Electrical and Computer Engineering, Carnegie Mellon University,;Electrical and Computer Engineering, Carnegie Mellon University,

  • Venue:
  • Generative and Transformational Techniques in Software Engineering II
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

The complexity of modern computing platforms has made it extremely difficult to write numerical code that achieves the best possible performance. Straightforward implementations based on algorithms that minimize the operations count often fall short in performance by at least one order of magnitude. This tutorial introduces the reader to a set of general techniques to improve the performance of numerical code, focusing on optimizations for the computer's memory hierarchy. Further, program generators are discussed as a way to reduce the implementation and optimization effort. Two running examples are used to demonstrate these techniques: matrix-matrix multiplication and the discrete Fourier transform.