|
ABSTRACT
In this paper we review the design of a sequential object oriented linear algebra library, OOLALA. Several designs are proposed and used to classify existing sequential object oriented libraries. The classification is based on the way that matrices and matrix operations are represented. OOLALA's representation of matrices is capable of dealing with certain matrix operations that, although mathematically valid, are not handled correctly by existing libraries. OOLALA also enables implementations of matrix calculations at various abstraction levels ranging from the relatively low-level abstraction of a Fortran BLAS-like implementation to higher-level abstractions that hide many implementation details. OOLALA addresses a wide range of numerical linear algebra functionality while the reviewed object oriented libraries concen trate on parts of such functionality. We include some preliminary performance results for a Java implementation of OOLALA.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Advanced Computing Laboratory, Los Alamos National Laboratory. Parallel Object-Oriented Methods and Applications (POOMA) framework web page. http://www.acl.lanl.gov/Pooma.
|
| |
2
|
B. A. Allan, R. L. Clay, K. D. Mish, and A. B. Williams. ISIS++ Reference Guide: Iterative Scalable Implicit Solver in C++ version 1.1. Sandia National Laboratories Livermore, 1999.
|
| |
3
|
E. Anderson , Z. Bai , C. Bischof , L. S. Blackford , J. Demmel , Jack J. Dongarra , J. Du Croz , S. Hammarling , A. Greenbaum , A. McKenney , D. Sorensen, LAPACK Users' guide (third ed.), Society for Industrial and Applied Mathematics, Philadelphia, PA, 1999
|
| |
4
|
H. Anton and C. Rorres. Elementary Linear Algebra: Applications Versions. John Wiley & Sons, 7th edition, 1994.
|
| |
5
|
C. Ashcraft and R. Grimes. SPOOLES: An object-oriented sparse matrix library. InSIAM Conference on Parallel Processing for Scientific Computing, 1999.
|
| |
6
|
C. Ashcraft and J. W. H. Liu. SMOOTH: A Software Package For Ordering Sparse Matrices, November 1996. Available at http://www.cs.yorku.ca/ joseph/Smooth/SMOOTH.html.
|
| |
7
|
|
| |
8
|
S. Balay, W. D. Gropp, L. C. McInnes, and B. F. Smith. PETSc 2.0 users manual. Technical Report ANL-95/11 - Revision 2.0.24, Argonne National Laboratory, 1999.
|
| |
9
|
R. Barrett, M. Berry, T. Chan, J. Demmel, J. Donato, J. J. Dongarra, V. Eijkhout, R. Pozo, C. Romine, and H. van der Vorst. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods. SIAM, 1994.
|
| |
10
|
A. J. C. Bik and D. B. Gannon. A note on native level 1 BLAS in Java. Concurrency: Practice and Experience, 9(11):1091-1099, 1997.
|
| |
11
|
L. Birov, Y. Bartenev, A. Vargin, A. Purkayastha, A. Skjellum, Y. Dandass, and P. Bangalore. The parallel mathematical libraries project (PMLP) - a next generation scalable sparse object oriented mathematical library suite. In Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing, March 1999.
|
| |
12
|
Lubomir Birov , Arkady Prokofiev , Yuri Bartenev , Anatoly Vargin , Avijit Purkayastha , Yoginder Dandass , Vladimir Erzunov , Elena Shanikova , Anthony Skjellum , Purushotham Bangalore , Eugeny Shuvalov , Vitaly Ovechkin , Nataly Frolova , Sergey Orlov , Sergey Egorov, The Parallel Mathematical Libraries Project (PMLP): Overview, Design Innovations, and Preliminary Results, Proceedings of the 5th International Conference on Parallel Computing Technologies, p.186-193, September 06-10, 1999
|
| |
13
|
Blitz++ library web page. http://oonumerics.org/blitz/.
|
| |
14
|
|
| |
15
|
B. Blount and S. Chatterjee. An evaluation of Java for numerical computing. Scientific Programming, 7(2):97-110, 1999.
|
| |
16
|
R. F. Boisvert, J. J. Dongarra, R. Pozo, K. A. Remington, and G. W. Stewart. Developing numerical libraries in Java. Concurrency: Practice and Experience, 10(11-13):1117-1129, 1998.
|
 |
17
|
|
| |
18
|
Z. Budimlic and K. Kennedy. The cost of being object-oriented: A preliminary study. Scientific Programming, 7(2):87-96, 1999.
|
| |
19
|
Z. Budimlic and K. Kennedy. Prospects for scientific computing in polymorphic object-oriented style. In Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing, March 1999.
|
| |
20
|
Z. Budimlic, K. Kennedy, and J. Piper. The cost of being object-oriented: A preliminary study. In Workshop for Java for High Performance Network Computing at EUROPAR'98, 1998.
|
| |
21
|
E. Chow and M. A. Heroux. Block preconditioning toolkit reference manual. Technical Report UMSI 96/183, University of Minnesota Supercomputing Institute, September 1996.
|
 |
22
|
|
| |
23
|
Computer Science Department, University of Minnesota and Minnesota Supercomputer Institute, and Mathematical Algorithms and Scalable Computing Group, SGI/Cray Research, Inc. Block Preconditioning ToolKit (BPKIT) web page. http://www.cs.umn.edu/ chow/bpkit.html.
|
| |
24
|
Department of Computer Science, Rice University. Objects within the Linear Algebra Package (OwlPack) web page. http://www.cs.rice.edu/~budimlic/OwlPack.
|
| |
25
|
Department of Computer Science, University of Maryland and Mathematical and Computations Sciences Division, NIST. Jampack library web page. ftp://math.nist.gov/pub/Jampack/Jampack.html.
|
| |
26
|
Department of Computer Science, University of North Carolina. JLAPACK library web page. http://www.cs.unc.edu/Research/HARPOON/jlapack.
|
| |
27
|
Distributed Applications Research Department, Sandia National Laboratories. Iterative Scalable Implicit Solver in C++ (ISIS++) web page. http://z.ca.sandia.gov/isis.
|
| |
28
|
|
| |
29
|
F. Dobrian, G. Kumfert, and A. Pothen. The design of sparse direct solvers using object-oriented techniques. In A. M. Bruaset, H. P. Langtangen, and E. Quak, editors, Advances in Software Tools for Scientific Computing, volume 10 of Lecture Notes in Computational Science and Engineering. Springer-Verlag, 1999.
|
| |
30
|
J. Dongarra, A. Lumsdaine, X. Niu, R. Pozo, and K. Remington. Sparse matrix libraries in C++ for high performance architectures. In Proceedings of the Conference on Object Oriented Numerics OON-SKI, pages 122-138, 1994.
|
| |
31
|
J. Dongarra, A. Lumsdaine, R. Pozo, and K. A. Remington. IML++ v. 1.2: Iterative Methods Library Reference Guide, April 1996. Available at http://math.nist.gov/lapack++/.
|
| |
32
|
J. Dongarra, R. Pozo, and D. Walker. LAPACK++ v. 1.1: High Performance Linear Algebra Users' Guide, April 1996. Available at http://math.nist.gov/lapack++/.
|
 |
33
|
|
 |
34
|
|
 |
35
|
|
 |
36
|
|
 |
37
|
|
| |
38
|
J. J. Dongarra, R. Pozo, and D. W. Walker. An object oriented design for high performance linear algebra on distributed memory architectures. In Proceedings of the Conference on Object Oriented Numerics OON-SKI, 1993.
|
| |
39
|
|
| |
40
|
|
| |
41
|
F. R. Gantmacher. The Theory of Matrices Vol. 1. Chelsea, 1959.
|
| |
42
|
F. R. Gantmacher. The Theory of Matrices Vol. 2. Chelsea, 1959.
|
 |
43
|
|
| |
44
|
|
| |
45
|
|
| |
46
|
V. Getov, P. Gray, S. Mintcheva, and V. Sunderam. Multi-language programming environments for high performance Java computing. Scientific Programming, 7(2):139-146, 1999.
|
| |
47
|
G. H. Golub and C. F. van Loan. Matrix Computations. John Hopkins University Press, 3th edition, 1996.
|
| |
48
|
|
| |
49
|
|
| |
50
|
|
| |
51
|
High Performance Computing Laboratory, Mississippi State University. Parallel Mathematical Library Project (PMLP) web page. http://www.erc.msstate.edu/research/labs/hpcl/pmlp/.
|
| |
52
|
|
| |
53
|
Iterative Methods Library (IML++) library web page. http://math.nist.gob/iml++/.
|
| |
54
|
Java Grande Forum. Making Java Work for High-End Computing, November 1998. Available at http://www.javagrande.org/reports.htm.
|
| |
55
|
Java Grande Forum. Interim Java Grande Forum Report, June 1999. Available at http://www.javagrande.org/reports.htm.
|
| |
56
|
Steve Karmesin , James Crotinger , Julian Cummings , Scott Haney , William J. Humphrey , John Reynders , Stephen Smith , Timothy Williams, Array Design and Expression Evaluation in POOMA II, Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments, p.231-238, December 08-11, 1998
|
| |
57
|
|
| |
58
|
Laboratory for Scientific Computing, University of Notre Dame. Iterative Template Library (ITL) web page. http://www.lsc.nd.edu/research/itl.
|
| |
59
|
Laboratory for Scientific Computing, University of Notre Dame. Matrix Template Library (MTL) web page. http://www.lsc.nd.edu/research/mtl.
|
| |
60
|
LAPACK++ library web page. http://math.nist.gov/lapack++/.
|
 |
61
|
|
| |
62
|
|
 |
63
|
Lie-Quan Lee , Jeremy G. Siek , Andrew Lumsdaine, The generic graph component library, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.399-414, November 01-05, 1999, Denver, Colorado, United States
|
| |
64
|
M. Lee and A. Stepanov. The Standard Template Library. Technical report, Hewlett Packard Laboratories, Menlo Park, California, 1995.
|
| |
65
|
M. Lujan. Object oriented linear algebra. Master's thesis, Department of Computer Science, University of Manchester, December 1999.
|
 |
66
|
Nikolay Mateev , Keshav Pingali , Paul Stodghill , Vladimir Kotlyar, Next-generation generic programming and its application to sparse matrix computations, Proceedings of the 14th international conference on Supercomputing, p.88-99, May 08-11, 2000, Santa Fe, New Mexico, United States
[doi> 10.1145/335231.335240]
|
| |
67
|
Mathematical and Computational Sciences Division, NIST. Template Numerical Toolkit (TNT) web page. http://math.nist.gov/tnt/.
|
| |
68
|
Mathematical and Computational Sciences Division, NIST and The MathWorks. JAMA library web page. http://math.nist.gov/jama/.
|
| |
69
|
Mathematics and Computer Science Division at Argonne National Laboratory. Portable Extensible Toolkit for Scientific Computation (PETSc) web page. http://www.mcs.anl.gov/petsc.
|
 |
70
|
|
| |
71
|
|
| |
72
|
|
| |
73
|
J. E. Moreira, S. P. Midkiff, and M. Gupta. A standard Java array package for technical computing. In Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing, March 1999.
|
| |
74
|
|
| |
75
|
Numerical Objects A.S. Diffpack web page. http://www.nobjects.com.
|
| |
76
|
R. Parsons and D. Quinlan. A++/P++ array classes for architecture independent finite difference computations. In Proceedings of the Second Annual Object-Oriented Numerics Conference (OON-SKI'94), pages 408-418, 1994.
|
| |
77
|
R. Pozo. Template numerical toolkit for linear algebra: High performance programming with C++ and the Standard Template Library. The International Journal of Supercomputer Applications and High Performance Computing, 11(3):251-263, 1997.
|
| |
78
|
R. Pozo, K. A. Remington, and A. Lumsdaine. SparseLib++ v. 1.5: Sparse Matrix Class Library Reference Guide, April 1996. Available at http://math.nist.gov/sparselib++/.
|
| |
79
|
|
| |
80
|
|
| |
81
|
|
| |
82
|
|
| |
83
|
J. G. Siek, A. Lumsdaine, and L.-Q. Lee. Generic programming for high performance numerical linear algebra. In M. E. Henderson, C. R. Anderson, and S. L. Lyons, editors, Object Oriented Methods for Interoperable Scientific and Engineering Computing, SIAM Proceedings in Applied Mathematics, 1999.
|
| |
84
|
Sparse Matrix Object-oriented Ordering methods (SMOOTH) web page. http://www.cs.yorku.ca/ joseph/Smooth/SMOOTH.html.
|
| |
85
|
SparseLib++ library web page. http://math.nist.gov/sparselib++/.
|
| |
86
|
Sparse Object Oriented Linear Equations Solver (SPOOLES) web page. http://www.netlib.org/linalg/spooles/spooles.2.2.html.
|
| |
87
|
G. W. Stewart. Introduction to Matrix Computations. Academic Press, 1973.
|
| |
88
|
G. W. Stewart. The Jampack Owner's Manual, 1999. Available at ftp://thales.cs.umd/pub/Jampack/AboutJampack.html.
|
| |
89
|
L. N. Trefethen and D. Bau III. Numerical Linear Algebra. SIAM Press, 1997.
|
| |
90
|
T. L. Veldhuizen. Expression templates. C++ Report, 7(5):26-31, June 1995.
|
| |
91
|
|
CITED BY 7
|
|
Mikel Luján, Building an object oriented problem solving environment for the parallel numerical solution of PDEs, Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum), p.149-150, January 2000, Minneapolis, Minnesota, United States
|
|
|
Mikel Luján , Mikel Luján , John R. Gurd , T. L. Freeman , José Miguel, Elimination of Java array bounds checks in the presence of indirection, Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande, p.76-85, November 03-05, 2002, Seattle, Washington, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|