ACM Home Page
Please provide us with feedback. Feedback
OoLALA: an object oriented analysis and design of numerical linear algebra
Full text PdfPdf (678 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Minneapolis, Minnesota, United States
Pages: 229 - 252  
Year of Publication: 2000
ISBN:1-58113-200-X
Also published in ...
Authors
Mikel Luján  Centre for Novel Computing, University of Manchester, Oxford Road, Manchester M13 9PL, United Kindgom
T. L. Freeman  Centre for Novel Computing, University of Manchester, Oxford Road, Manchester M13 9PL, United Kindgom
John R. Gurd  Centre for Novel Computing, University of Manchester, Oxford Road, Manchester M13 9PL, United Kindgom
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 17,   Citation Count: 7
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/353171.353187
What is a DOI?

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
 
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
 
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
 
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
 
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
 
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

Collaborative Colleagues:
Mikel Luján: colleagues
T. L. Freeman: colleagues
John R. Gurd: colleagues