next up previous
Next: Acknowledgments Up: LAPACK Working Note 112: Previous: Algorithmic Integrity

Closing Remarks

We have tried to illustrate some of the potential difficulties concerned with floating point computations on heterogeneous networks. Some of these difficulties are straightforward to address, while others require considerably more thought. All of them require some additional level of defensive programming to ensure the usual standards of reliability that users have come to expect from packages such as LAPACK and the NAG Libraries.

We have suggested reasonably straightforward solutions to the problems associated with floating point machine parameters and global values, and have suggested the use of a controlling process to solve some of the difficulties of algorithmic integrity. This can probably be used to solve most of these problems, but in some cases at the expense of considerable additional overhead, usually in terms of additional communication, which is also imposed on a homogeneous network unless we have separate code for the homogeneous case. Unless we can devise a satisfactory test for homogeneity and hence have separate paths within the code, separate code would defeat the aim of portability.

A topic that we have not discussed is that of the additional testing necessary to give confidence in heterogeneous environments. The testing strategies that are needed are similar to those already employed in reputable software packages such as LAPACK, but it may be very hard to produce actual test examples that would detect incorrect implementations of the algorithms because, as we have seen, the failures are likely to be very sensitive to the computing environment, and in addition may be non-deterministic.

The LAPACK and ScaLAPACK software is available from Netlibgif, as is the documentation and the LAPACK Working Notes. A number of the other references in the bibliography can also be found via Netlib, particularly [&make_named_href('', "node12.html#ABBDDDGHMOS:95","[1]")], [&make_named_href('', "node12.html#GBDJMS:94","[9]")] and [&make_named_href('', "node12.html#SOHWD:96","[18]")].



Jack Dongarra
Fri Aug 30 15:13:52 EDT 1996