Scientific Computing on Itanium-Based Systems

One of the advances in computation software is the encapsulation of different computational algorithms into common subtasks. The BLAS (Basic Linear Algebra Subroutines) is one prime example. This chapter continues to illustrate the suitability of Itanium architecture for scientific computation through a number of specific kernel-type computations for interval arithmetic, high-precision arithmetic, FFT, matrix computations, function evaluations, and cryptography.
Realistic scientific computations often contain several sources of errors: errors in modeling, errors in truncation, errors in data, and errors in computation. The first three kinds of error are usually specific to the particular problem or a computational algorithm at hand. In contrast, error in computation that is caused primarily by finite precision arithmetic is quite general. This error can be tackled from two complementary approaches. First, various methods in error analysis on finite-precision computation have been studied extensively (see for example [34] and [35]). Second, different arithmetic types are devised to increase the reliability and/or accuracy of computations in the presence of error. Two techniques related to the latter approach will be discussed here, with emphasis on the implementation of these ideas on the Itanium architecture. The first technique is interval arithmetic, which tries to provide some certainty properties on the uncertainties of computed results. The second technique is arbitrarily high precision calculation. This is a software-implemented arithmetic type with arbitrarily (subject to usual limitation of memory and other resources) high, finite, precision. These two techniques can also be naturally combined to yield arbitrarily high precision interval arithmetic.