Parallel Linear Algebra Software

In this chapter we discuss numerical software for linear algebra problems on parallel computers. We focus on some of the most common numerical operations: linear system solving and eigenvalue computations. Numerical operations such as linear system solving and eigenvalue calculations can be applied to two di erent kinds of matrix: dense and sparse. In dense systems, essentially every matrix element is nonzero. In sparse systems, a su ciently large number of matrix elements is zero that a specialized storage scheme is warranted; for an introduction to sparse storage, see [3]. Because the two classes are so di erent, usually di erent numerical softwares apply to them. We discuss ScaLAPACK and PLAPACK as the choices for dense linear system solving (see Section 13.1). For solving sparse linear systems, there exist two classes of algorithms: direct methods and iterative methods. We will discuss SuperLU as an example of a direct solver (see Section 13.2.1) and PETSc as an example of iterative solvers (see Section 13.2.2). For eigenvalue computation, the distinction between sparse and dense matrices does not play so large a role as it does in systems solving; for eigenvalues the main distinction is whether one wants all the possible eigenvalues and attendant eigenvectors, or just a subset, typically the few largest or smallest. ScaLAPACK and PLAPACK are packages that start with a dense matrix to calculate all or potentially part of the spectrum (see Section 13.1), while ARPACK (see Section 13.2.3) is preferable when only part of the spectrum is wanted; since it uses reverse communication, PARPACK can handle matrices in sparse format. In addition to numerical software operations, we discuss the issue of load balancing. We focus on two software packages, ParMetis and Chaco, which can be used in the above-mentioned sparse packages. We conclude this chapter with a list of software for linear algebra that is freely available on the Web [16].