A brief review of the ITPACK project - Science Direct

6 downloads 22880 Views 664KB Size Report
Center for Numerical Analysis, The University of Texas at Austin, Austin, TX 78712, ... The development of the ITPACK software began when Professor Garrett ...
Journal of Computational and Applied Mathematics 24 (1988) 121-127 North-Holland

121

A brief review of the ITPACK project * David R. KINCAID and David M. YOUNG Center for Numerical Analysis,

The University of Texas at Austin, Austin, TX 78712, U.S.A

Received 18 April 1988 Absfracf: Over the past several years a number of research-oriented software packages for solving large sparse systems of linear algebraic equations have been developed within the Center for Numerical Analysis as part of the ITPACK Project. This report includes a brief discussion of each of the packages. References are given to other reports and papers which describe the individual packages in more detail.

1. Introduction The ITPACK Project was established in the mid-1970s by the Center for Numerical Analysis at The University of Texas at Austin. The objective was the development and evaluation of iterative algorithms for solving large systems of linear algebraic equations with sparse coefficient matrices using theoretical analysis and experimental studies. The emphasis was on linear systems arising in the solution of partial differential equations by discretizations involving finite difference methods or finite element methods. Several software packages have been developed in connection with this research, to provide software tools for carrying out experimental studies for a variety of algorithms over a range of test problems. The ITPACK packages have been modified, improved, enhanced, and changed through various versions over a period of years. The following packages have been developed: ITPACK 1: a prototype package which is no longer available. ITPACK 2C: contains seven iterative algorithms designed primarily for symmetric positive definite (SPD) systems. ITPACKV 2C: a vectorized package based on ITPACK 2C but with a modified data storage scheme and coding techniques for improved performance on vector computers. ITPACK 3A: allows a combination of a number of preconditioners and acceleration procedures; designed to handle systems which are not necessarily SPD. ITPACK 3B: similar to ITPACK 3A but is activated by a high-level language. NSPCG: contains a large number of preconditioners/ accelerator combinations with several different data storage schemes; designed for SPD or non-SPD systems and with vectorization in mind. * This work was supported in part by the National Science Foundation under Grant DCR-8518722, Department of Energy under Grant DE-AS05-81ER10954, by Cray Research, Inc., under Grant LRTDTD, Sandia National Laboratories, under Grant 06-4298 with The University of Texas at Austin. 0377-0427/88/$3.50

0 1988, Elsevier Science Publishers B.V. (North-Holland)

by the and by

122

D.R. Kincaid, D.M. Young / Software for solving linear systems

The object of this report is to give a very brief description of each of these packages. More detailed summaries and more complete information can be found in the references.

2. ITPACK 1 The development of the ITPACK software began when Professor Garrett Birkhoff suggested that there was a need for general purpose software for solving linear systems of algebraic equations based on iterative methods similar to that based on direct methods which was being developed under the LINPACK project. Before that time, many iterative computer programs had been written in the Center for Numerical Analysis but primarily to support research studies. These programs were designed for solving self-adjoint elliptic partial differential equations with iterative methods embedded in the code. One of the reasons for the lack of general purpose software was the absence of accurate procedures for choosing iteration parameters and for deciding when to stop the iteration process. A number of iteration algorithms were developed, based on adaptive selection of acceleration parameters and automatic stopping procedures. Many are described in the book by Hageman and Young (1981) [5]. An earlier book by Young (1971) [41] presented many of the basic theoretical principles associated with iterative methods. Initially, prototype software for ITPACK was written based on preliminary iterative algorithms with the emphasis on designing algorithms with these key features (adaptive parameter determination and automatic stopping). In ITPACK 1.0 the focus shifted from partial differential equations to large sparse linear systems. Which storage scheme to use was a major issue from the beginning. As with some of the latter version of the package, ITPACK 1.0 allowed the user to select from several different sparse storage formats. (Selecting the appropriate storage scheme to use is still an unresolved problem today since the structure of the matrices in the applications and the computer architectures keep changing. The current trend seems to be toward matrix-free packages which require the user to provide routines for matrix-vector operations). Some of the early work on ITPACK is described by the following authors: Kincaid and Young (1975) [25]; Kincaid and Grimes (1977) [24]; Hayes and Young (1977) [6]; Kincaid, Grimes and Young (1979) [21,22]; Grimes, Kincaid, MacGregor and Young (1979) [4].

3. ITPACK 2C and ITPACKV 2C The ITPACK 2C package described by Kincaid, Respess, Young and Grimes (1982) [17] includes seven iterative algorithms including the Successive Overrelaxation (SOR) method as well as the Jacobi, Symmetric Successive Overrelaxation (SSOR) and Reduced System (RS) methods, each with Chebyshev or conjugate gradient acceleration. Adaptive procedures are used to determine the iteration parameters. The package is designed primarily for linear systems where the coefficient matrix is symmetric and positive definite (SPD). It can handle mildly nonsymmetric systems in a formal manner. The nonzeros from the coefficient matrix of the system are stored in three linear arrays A-IA-JA. A double precision version of this package is available for use on short-word-length computers. The basic iterative algorithms used in ITPACK 2C are found in the book by Hageman and Young (1981) [5] an d in the following reports and papers: Grimes, Kincaid and Young (1979) [3],

D. R. Kincaid, D. M. Young / Software for solving linear systems

123

Kincaid and Young (1979, 1980) [20,23]; Young and Kincaid (1980, 1983) [39,40]; Kincaid (1981) [18]; Young, Jea and Kincaid (1984) [36]. Various versions of the user’s guide for this package were written before the final refereed paper on ITPACK 2C was published by Kincaid, Respess, Young and Grimes (1982) [17]. A vectorized package, called ITPACKV 2C, was constructed by modifying ITPACK 2C to improve overall performance on vector computers. The algorithms used are exactly the same as those in ITPACK 2C. The primary modification involved changing the sparse data structure used to store the matrix in such a way as to obtain longer vectors and less indirect addressing. This storage format uses two two-dimensional arrays COEF-JCOEF and is the same one used in the ELLPACK package for solving elliptic partial differential equations (Rice and Boisvert, 1985 [31]). Most of the routines from ITPACKV 2C are included in ELLPACK as iterative modules in the solution phase of this package (Kincaid, Oppe, Respess, and Young, 1985 [ll]). The user who does not need ELLPACK to generate the linear system is encouraged to obtain the ITPACK software and to use it as a stand-alone package. ITPACKV 2C was considerably faster than ITPACK 2C when tested on the CDC Cyber 205 and CR1 Cray 1 supercomputers. In some cases, ITPACKV 2C was a factor of ten times faster (Kincaid, Oppe, and Young, in 1982, 1983 [12,16]). Recently, additional comparisons were performed on sample oil reservoir simulation problems using the Cyber 205, Cray X-MP, and Amdahl VP1200 (Oppe and Kin&d, 1987 [29]). The main focus of these papers was on the changes made in the package for efficiency when going from a memory-to-memory supercomputer to a register-to-register supercomputer. It is believed that these modifications are typical of changes that must be considered when transporting software of this type between vector computers. It should be noted that these studies were used to evaluate the performance of the particular software package and, hence, may not be representative of the overall performance of the computers involved. Some of the other publications related to ITPACKV 2C are those by: Kincaid, Oppe and Young (1984, 1986) [12,8,9]; Kincaid and Oppe (1983, 1984) [13,12]; Kincaid and Young (1983b) [15]; Young and Kincaid (1984) [34]; Young, Oppe, Kincaid and Hayes (1985) [35]. The ITPACKV 2C user’s guide was written by Kincaid, Oppe, Respess and Young (1984) [ll]. Status reports on the development of the ITPACK 2 packages were written by Kincaid and Young (1983a) [14] as well as Young and Kincaid (1983) [39].

4. ITPACK 3A and 3B The ITPACK 3A and 3B packages were designed to be modular in that any one of several basic iterative methods could be used with any one of several basic acceleration procedures. Moreover, the packages can handle nonsymmetric and indefinite systems as well as SPD systems. The ITPACK 3A package is written in the form of individual subroutines which can be called by the user. The accelerators available for symmetric systems are conjugate gradient acceleration and Chebyshev acceleration. For nonsymmetric and indefinite systems, the accelerations include ORTHOMIN(s), ORTHODIR(s), ORTHORES(s), Lanczos/ORTHOMIN (biconjugate gradient), Lanczos/ ORTHODIR, Lanczos/ORTHORES, and nonsymmetric Chebyshev acceleration. The matrix is stored using the A-IA-JA storage scheme. ITPACK 3B, on the other hand, is activated by means of a high-level language similar to that used with the ELLPACK package. The user describes the matrix problem and the desired

124

D. R. Kincaid, D. M. Young / Software for solving linear system

iterative solution technicals using this language. Then a preprocessor constructs a Fortran program with the appropriate calls to the library of iterative routines. This package contains basically the same algorithm as in ITPACK 3A with the same storage scheme but a different user interface designed to make the package easy to use. More details on ITPACK 3A and 3B are given by Young and Mai (1984, 1987) [33,34] and Mai and Young (1986) [27], respectively. Related publications on ITPACK 3 and the algorithms used therein are those by: Jea (1982) [7]; Mai (1986) [26]; Young, Jea and Mai (1987) [33].

5. NSPCG (a.k.a. ITPACK 4) The newest software package in the ITPACK collection of software is called NSPCG, for Nonsymmetric Preconditioned Conjugate Gradient. The package is intended to handle both symmetric and nonsymmetric systems with structured and unstructured coefficient matrices. As in ITPACK 2C and ITPACK 3A, the user makes a subroutine call to obtain a particular iterative algorithm. NSPCG allows various acceleration techniques to be used in conjunction with various preconditioners by selecting unique names for two parameters in the calling sequence. Details on the user interface can be found in the report by Oppe, Joubert, and Kincaid (1988) [28]. For symmetric systems, a number of methods, such as those used in ITPACK 2C, are included. For nonsymmetric systems, a number of accelerators are included such as generalized conjugate gradient acceleration, Lanczos acceleration, a least-squares version of conjugate gradient acceleration applied to the normal equations, and many others. Many basic preconditioners are available, such as Jacobi, modified incomplete Cholesky, line SOR, line least-squares polynomial, and various others. Furthermore, some of these preconditioners are available with either left-preconditioners, right-preconditioners, or two-sided preconditioners. Many of the preconditioners have been vectorized to work efficiently on supercomputers such as the Cray X-MP, Cyber 205, etc. In the interest of portability, the entire package is written in 1977 ANSI Standard Fortran with no special vector-Fortran syntax. However, some minor installation changes can be made for different vector computers to enhance vectorization. For example, the Fortran implementation of gather and scatter instructions can be replaced by calls to machine routines for these operations when available. A novel feature of this package is that several different matrix storage schemes are allowable. The user may represent the matrix of the linear system in one of the following five basic sparse matrix storage formats: primary storage (ELLPACK format), symmetric diagonal storage, nonsymmetric diagonal storage, symmetric coordinate storage, and nonsymmetric coordinate. In addition, the package can be used in a matrix-free mode where the user supplies customized routines for performing all matrix operations. The package is modular in nature so that almost any preconditioner may be used with almost any accelerator. Also, any preconditioner may be used with nearly all of the allowable data storage schemes. A preliminary version of the NSPCG User’s Guide has been written by Oppe, Joubert and Kincaid (1988) [28], and a companion report outlining the algorithms used is being written. Testing of the package on applications is in progress using the sample reservoir simulation problems that were used in the evaluation of ITPACKV 2C (Oppe and Kincaid, 1986, 1987 [30,29]). Additional testing using other large application problems and linear systems from finite-element solution techniques is planned.

D.R. Kincaid, D.M. Young / Software for solving linear systems

125

6. Distribution of software A limited number of copies of these packages are available for distribution with the understanding that they are intended as research tools and may undergo further development. The interested reader should write to the address below for additional information on obtaining the distribution tape(s) of the software and documentation. Center for Numerical Analysis RLM Bldg. 13.150 University of Texas at Austin Austin, Texas 78713-8510 A nominal fee is involved to cover handling, mailing charges, etc. Also, reports of difficulties encountered in using these packages plus comments and suggestions for improving them are welcome. As usual with research software, The University of Texas at Austin and the Center for Numerical Analysis disclaim all warranties with regard to these software packages and documentation. It should be emphasized that they are preliminary, incomplete, and subject to change.

Acknowledgements A number of people have contributed to the development of the ITPACK software package. Included among the group are Roger Grimes, Wayne Joubert, Tsun-Zee Mai, Bill MacGregor, Tom Oppe, and John Respess. Some of those who have made contributions to the ITPACK project are Garrett Bid&off, Linda J. Hayes, Louis A. Hageman, Robert E. Lynch, Kang C. Jea, and all of those who send in comments and suggests after using the software.

References References are ordered alphabetically by the first author’s last name and then in reverse chronological order for all publications cited by that author. [l] S. Eisenstat, A. George, R. Grimes, D. Kincaid and A. Sherman, Some comparisons of software packages for large sparse linear systems, in: R. Vichnevetsky and R. Stepleman, Eds., Advances in Computer Methods for Partial Differential Equations III, IMACS, Department of Computer Science, Rutgers University, New Brunswith, NJ, 1979, pp. 98-106. [2] R.G. Grimes, D. Kincaid and D.M. Young, ITPACK 2A: a Fortran implementation of adaptive accelerated iterative methods for solving large sparse linear systems, Report CNA-164, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1980. [3] R.G. Grimes, D.R. Kincaid and D.M. Young, ITPACK 2.0, user’s guide, Report CNA-150, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1979. [4] R.G. Grimes, D.R. Kincaid, W.I. MacGregor and D.M. Young, ITPACK report: adaptive iterative algorithms using symmetric sparse storage, Report CNA-139, Center for Numerical Analysis, University of Texas at Austin, Austin, Texas, 1978. [5] L.A. Hageman and D.M. Young, Applied Iterative Methods (Academic Press, New York, 1981).

126

D. R. Kincaid, D. M. Young / Software for solving linear systems

[6] L.J. Hayes and D.M. Young, The accelerated SSOR method for solving large linear systems: preliminary report, Report CNA-123, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1977. [7] K.C. Jea, Generalized conjugate gradient acceleration of iterative methods, CNA-176, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1982. [S] D.R. Kincaid, T.C. Oppe and D.M. Young, Vector computations for sparse linear systems, SIAM J. A/g. Disc. Math. 7 (1986) 99-112. [9] D.R. Kin&d, T.C. Oppe and D.M. Young, Vectorized iterative methods for partial differential equations, Comm. Appl. Numer. Meth. 2 (1986) 289-296. [lo] D.R. Kin&d, T.C. Oppe, J.R. Respess and D.M. Young, Chapter 7: ITPACK solution modules, in: J.R. Rice and R.F. Boisvert, Eds., Solving Elliptic Problems Using ELLPACK (Springer, New York, 1985) 237-258. [ll] D.R. Kin&d, T.C. Oppe, J.R. Respess and D.M. Young, ITPACKV 2C user’s guide, Report CNA-191, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1984. [12] D.R. Kin&d, T.C. Oppe and D.M. Young, Vector computations for sparse linear systems, Report CNA-189, Center for Numerical Analysis, The University of Texas at Austin, Austin, TX, 1984. [13] D.R. Kincaid and T.C. Oppe, ITPACK on supercomputers, V. Pereyra and A. Reinoza, Eds., Numerical Methods, Lecture Notes Math. 1005 (Springer, New York, 1983) 151-161; also, Report CNA-178, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1982. [14] D.R. Kincaid and D.M. Young, The ITPACK Project: past, present, and future, Report CNA-180, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1983; also in: G. Birkhoff and A. Schoenstadt, Eds., Elliptic Problem Solvers (Academic Press, New York, 1984) 53-63. [15] D.R. Kincaid and D.M. Young, Adapting iterative algorithms for solving large sparse linear systems for efficient use on the CDC CYBER 205, CYBER 200 Applications Seminar, NASA Conference Publication 2295, NASA Scientific and Technical Information Research, Washington, D.C., pp. 147-160. [16] D.R. K&aid, T.C. Oppe and D.M. Young, Adapting ITPACK routines for use on a vector computer, Report CNA-177, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1982; also in: Proceedings: Symposium of CYBER 205 Applications, The International Symposium on Vector Processing Applications, Colorado State University, Fort Collins, Colorado, August, 12-13, 1982. [17] D.R. Kin&d, J.R. Respess, D.M. Young and R.G. Grimes, ITPACK 2C: a Fortran package for solving large sparse linear systems by adaptive accelerated iterative methods, ACM Trans. Math. Software 8 (1982) 302-322. [18] D.R. Kin&d, Acceleration parameters for a symmetric successive overrelaxation conjugate gradient method for nonsymmetric systems, in: R. Vichnevetsky and R. Stepleman, Eds., IMACS, Department of Computer Science, Rutgers University, New Brunswick, New Jersey, 1981, pp. 294-299; also, Report CNA-171, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1981. 1191 D.R. Kin&d, R.G. Grimes, J.R. Respess and D.M. Young, ITPACK 2B: a Fortran implementation of adaptive accelerated iterative methods for solving large sparse linear systems, Report CNA-173, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1981. [20] D.R. Kincaid and D.M. Young, Adapting iterative algorithms developed for symmetric systems to nonsymmetric systems, Report CNA-161, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1980; also in: M. Schultz, Ed., Elliptic Problems Solvers (Academic Press, New York, 1981) 353-359. [21] D.R. K&aid, R.G. Grimes and D.M. Young, The use of iterative methods for solving large sparse PDE-related linear systems, Math. Comput. Simulation XXI (1979) 368-375. [22] D.R. Kin&d, R.G. Grimes and D.M. Young, ITPACK-adaptive iterative algorithms using symmetric sparse storage, in: Symposium on Reservoir Simulation, Sot. Pet. Engr. of AIME, 6200 North Central Expressway, Dallas, TX, 1979, 151-160. [23] D.R. Kin&d and D.M. Young, Survery of iterative methods, in: J. Belzer, A. Holzman, and A. Kent, Eds., Encyclopedia of Computer Sciences and Technology 13 (Marcel Dekker, New York, 1979) 354-391. [24] D.R. Kincaid and R.G. Grimes, ITPACK report: numerical studies of several adaptive iterative algorithms, Report CNA-126, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1977. [25] D.R. Kincaid and D.M. Young, The development of a computer package for solving a class of partial differential equations by iterative methods, Report CNA-102, Center for Numerical Analysis, The University of Texas at Austin, Austin, TX, 1975; also in: Ann. Assoc. Internat. Calcul Analogique 3 (1975) 186-191. [26] T.-Z. Mai, Adaptive iterative algorithms for large sparse linear systems, Report CNA-203, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1986.

D. R. Kincaid, D. M. Young / Software for solving linear systems

127

[27] T.-Z. Mai and D.M. Young, ITPACK 3B user’s guide (preliminary version), Report CNA-201, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1986. [28] T.C. Oppe, W.D. Joubert and D.R. Kin&d, NSPCG user’s guide, version 1.0, a package for solving large sparse linear systems by various iterative methods, Report CNA-216, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1988. [29] T.C. Oppe and D.R. Kin&d, The performance of ITPACK on vector computers for solving large sparse linear systems arising in sample oil reservoir problems, Comm. Appf. Numer. Meth. 3 (1987) 23-29. [30] T.C. Oppe and D.R. Kin&d, A comparison study of iterative solution methods for sample oil reservoir simulation problems on vector computers, Report CNA-200 (revised), Center for Numerical Analysis, The University of Texas at Austin, Austin, TX, 1986. [31] J.R. Rice and R.F. Boisvert, Solving Elliptic Problems Using ELLPACK (Springer, New York, 1985). [32] D.M. Young, A historical review of iterative methods, Report CNA-206, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1987; to appear in: Proceedings of the Conference on the History of Scientific and Numeric Computing, sponsored by the Association for Computing Machinery, held at Princeton, May 13-15, 1987. [33] D.M. Young, K.C. Jea, T.-Z. Mai, Preconditioned conjugate gradient algorithms and software for solving large sparse linear systems, Report CNA-207, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1987, to appear in: Proceedings of the SIAM Conference on “Linear Algebra, Signals, and Control” held in Boston, MA, August, 1986. [34] D.M. Young and T.-Z. Mai, Iterative algorithms and software for solving large sparse linear systems, Report CNA-215, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1987; also Comm. Appf. Numer. Meth., to appear. [35] D.M. Young, T.C. Oppe, D.R. Kincaid and L.J. Hayes, On the use of vector computers for solving sparse linear systems, Report CNA-199, Center for Numerical Analysis, The University of Texas at Austin, Austin, TX, 1985; to appear in: Proceeding of the Conference Vector and Parallel Processors for Scientific Computation, held at Academia dei Lincei, Palazzina dell Auditoria, via della Lungara 230, Rome, Italy, May 27-29, 1985. [36] D.M. Young, K.C. Jea and D.R. Kincaid, Accelerating nonsymmetrizable iterative methods, in: G. Birkhoff and A. Schoenstadt, Eds., Elliptic Problem Solvers ZZ (Academic Press, New York, 1984) 323-342. [37] D.M. Young and D.R. Kin&d, On the use of iterative methods with supercomputers for solving partial differential equations, Report CNA-196, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1984; also in: V. Lakshmikantham, Ed., Trenak in the Theory and Practice of Non-linear Analysis (North-Holland, The Netherlands, 1984). [38] D.M. Young and T.-Z. Mai, ITPACK 3A user’s guide (preliminary version), Report CNA-197, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1984. [39] D.M. Young and D.R. Kincaid, The ITPACK software package, Report CNA-182, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1983; also in: B. Engquist, Ed., PDE Software: Modules, Interfaces and Systems, Proceedings of the IFIP Working Group 2.5 on Numerical Software (North-Holland, Amsterdam, 1984) 193-206. [40] D.M. Young and D.R. Kincaid, The ITPACK package for large sparse linear systems, Report CNA-160, Center for Numerical Analysis, University of Texas at Austin, Austin, TX, 1980; also in: M. Schultz, Ed., Elliptic Problem Solvers (Academic Press, New York, 1981) 163-185. [41] D.M. Young, Iterative Solution of Large Linear Systems (Academic Press, New York, 1971).