ACM Home Page
Please provide us with feedback. Feedback
Generic programming for high performance scientific applications
Full text PdfPdf (159 KB)
Source Java Grande Conference archive
Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande table of contents
Seattle, Washington, USA
Pages: 112 - 121  
Year of Publication: 2002
ISBN:1-58113-599-8
Authors
Lie-Quan Lee  Indiana University, Bloomington, IN
Andrew Lumsdaine  Indiana University, Bloomington, IN
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 40,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

We present case studies that apply generic programming to the development of high-performance parallel code for solving two archetypal PDEs. We examine the overall structure of the example scientific codes and consider their generic implementation. With a generic approach it is a straight-forward matter to reuse software components from different sources; implementations with components from ITL, MTL, Blitz++, A++/P++, and Fortran BLAS are presented. Our newly-developed Generic Message Passing framework is used for communication. We compare the generic implementations to equivalent implementations developed with alternative libraries and languages and discuss not only performance but software engineering issues as well.


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
C. Ashcraft and R. Grimes. SPOOLES: An Object-Oriented sparse matrix library. In Proceedings of the 1999 SIAM Conference on Parallel Processing for Scientific Computing, 1999.
 
2
 
3
 
4
Boost. Boost Graph Library.
 
5
 
6
K. Briggs. The doubledouble library.
 
7
 
8
X.-C. Cai, W. D. Gropp, D. E. Keyes, and M. D. Tidriri. Newton-Krylov-Schwarz methods in CFD. In F. Hebeker and R. Rannacher, editors, The International workshop on Numerical Methods for the Navier-Stokes Equations, 1994.
 
9
O. Coulaud and E. Dillon. Para++: C++ binding for message passing. Technical report, Institut National De Recherche En Informatique Et En Automatique, 1997.
10
 
11
12
13
 
14
 
15
W. D. Gropp and B. Smith. PETSc: Portable extensible tools for scientific computation. Technical report, Argonne National Laboratory, Argonne, IL, 1994.
 
16
M. E. Hayder, C. Ierotheou, and D. E. Keyes. Three parallel programming paradigms: Comparisons on an archetypal PDE computation. Parallel and Distributed Computing Practices, (2):35--53, 2000.
 
17
 
18
M. Heroux, T. Barth, D. Day, R. Hoekstra, R. Lehoucq, K. Long, R. Pawlowski, R. Tuminaro, and A. Williams. The Trilinos project.
 
19
 
20
M. R. Hestenes and E. Stiefel. Methods of conjugate gradients for solving linear systems. J. Res. Nat. Bur. Standards, 49(6):409--436, December 1952.
 
21
22
 
23
L.-Q. Lee and A. Lumsdaine. The generic message-passing framework. In preparation.
 
24
 
25
W. Liu and A. Sherman. Comparative analysis of the Cuthill-McKee and the reverse Cuthill-McKee ordering algorithnms for sparse matrices. SIAM J. Numerical Analysis, pages 198--213, 1976.
 
26
A. Lumsdaine, L.-Q. Lee, and J. Siek. The iterative template library home page. http://ww.osl.iu.edu/research/itl.
 
27
A. Lumsdaine, J. Siek, and L.-Q. Lee. The matrix template library home page. http://ww.osl.iu.edu/research/mtl.
 
28
N. C. Myers. Traits: a new and useful template technique. C++ Report, June 1995.
 
29
D. Quinlan. A++/P++ Manual. Lawrence Livermore National Laboratory.
 
30
 
31
J. Siek and A. Lumsdaine. Concept checking: Binding parametric polymorphism in C++. In First Workshop on C++ Template Programming, Erfurt, Germany, October 2000.
 
32
J. Siek, A. Lumsdaine, and L.-Q. Lee. Generic programming for high performance numerical linear algebra. In Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing (OO'98). SIAM Press, 1998.
 
33
A. Skjellum, D. G. Wooley, A. Lumsdaine, and J. M. Squyres. Object-oriented analysis and design of the message passing interface. Concurrency: Theory and Practice, 13(4):245--292, April 2001.
 
34
A. A. Stepanov and M. Lee. The Standard Template Library. Technical Report X3J16/94-0095, WG21/N0482, ISO Programming Language C++ Project, May 1994.
 
35
The ESI technical forum. Equation Solver Interface (ESI) standards multi-lab working group. http://z.ca.sandia.gov/esi.
 
36
R. S. Tuminaro, M. Heroux, S. A. Hutchinson, and J. N. Shadid. Official Aztec User's Guide: Version 2.1, November 1999.
 
37
T. Veldhuizen. Blitz++ home page. http://oonumerics.org/blitz.


Collaborative Colleagues:
Lie-Quan Lee: colleagues
Andrew Lumsdaine: colleagues