Next: List of Notation Up: List of Tables Previous: Preface

# Suggestions for Reading

This users guide is divided into two parts. Part I: Guide contains chapters and appendices providing a thorough explanation of the design and functionality of the ScaLAPACK library. These chapters should be read in the order in which they are presented. Part II: Specifications of Routines is a reference manual of the leading comments of each routine in alphabetical order by routine name. A Bibliography is also provided, as well as two indexes- Index by Keyword and Index by Routine Name.

This book assumes a basic knowledge of distributed-memory parallel programming, and is written for an audience of both novice and expert users. Users intimately familiar with specific concepts discussed in this book may choose to not read certain chapters or sections within this book. Some of the chapters can be regarded as stand-alone and read independently. Novice users are directed to focus their attention on special introductory chapters, sections, and example programs, as detailed below.

All users are encouraged to frequently refer to the List of Notation and the Glossary. The first time notation from the glossary appears in the text, it will be italicized. If the user is unfamiliar with any of the concepts defined, a number of books provide background information in parallel programming [6, 33, 65, 66, 67, 70, 75, 87, 92, 95, 99, 112].

- Chapter 1: Essentials provides a brief overview of the components of the library, downloading instructions, and details of support for the package. Users who are familiar with the design of the BLAS and LAPACK and acquainted with the existing Web pages may wish to skip this chapter.
- Chapter 2: Getting Started with ScaLAPACK presents the basic requirements to enable users to call ScaLAPACK software, together with a very simple example program. Users who are well versed in using ScaLAPACK software may choose to skip this chapter.
- Chapter 3: Contents of ScaLAPACK outlines the functionality provided by the package. This is a stand-alone chapter and important for both expert and novice users.
- Chapter 4: Data Distributions and Software Conventions discusses process grid layout, contexts, block and block-cyclic data distributions, and documentation and software conventions. This chapter is essential reading for any user who is not familiar with data distributions, array descriptors, and the calling sequences of ScaLAPACK routines.
- Chapter 5: Performance of ScaLAPACK provides guidelines to achieve high performance by using ScaLAPACK and presents performance results for a subset of the ScaLAPACK routines on a variety of distributed-memory MIMD computers and networks of workstations. This is a stand-alone chapter.
- Chapter 6: Accuracy and Stability discusses the accuracy and stability of the algorithms used in ScaLAPACK, as well as issues of heterogeneous computing. This chapter provides varying degrees of detail, catering to novice as well as expert users.
- Chapter 7: Troubleshooting provides a set of installation and application debugging hints for first-time ScaLAPACK users.
- Appendix A provides a list of routine names for all driver, computational, and auxiliary routines in ScaLAPACK, as well as the matrix redistribution/copy routines.
- Appendix B provides a brief tutorial on how to convert programs using the BLAS to the PBLAS and LAPACK to ScaLAPACK.
- Appendix C provides two additional example programs. Section C.1 contains a more memory-efficient and practical example program, which reads a matrix from a file, distributes this matrix to the process grid, calls the desired ScaLAPACK routine, and writes the solution matrix to a file. Section C.2 provides a brief description of the HPF interface to ScaLAPACK, as well as an example program.
- Appendix D contains Quick Reference Guides for ScaLAPACK, the PBLAS, and the BLACS.
- Part ii: Specifications of Routines is a reference manual of the leading comments from the source code of all driver and computational routines. This manual can be read selectively as needed.

Next: List of Notation Up: List of Tables Previous: Preface