Abstract
We use the paradigm of generic programming together with the Standard Template Library (STL) to develop concepts and template classes that can represent finite sets and their relations as they occur in (parallel) finite element and other numerical methods. A key idea of our approach is to consider these sets as static search structures with clearly separated phases for insertions and retrievals. The resulting C++ template library Janus has generic domain and relation classes that allows a space-optimal and quickly traversable representation of finite element meshes and sparse matrix graphs. We give performance numbers for the parallel implementation of the Poisson equation for linear triangular elements on the Linux PC cluster of the Real World Computing Partnership. We also compare our approach with related work such as the HPC++ and POOMA projects.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bastian, P., Birken, K., Johansen, S., Lang, K., Neuss, N., Rentz-Reichert, H., Wieners, C.: UG – a Flexible Software Toolbox for Solving Partial Differential Equations. Institut für Computeranwendungen III, Universität Stuttgart, Pfaffenwaldring 27, 70569 Stuttgart, http://www.ica3.uni-stuttgart.de
Griebel, M., Zumbusch, G.: Hash-Storage Techniques for Adaptive Multilevel Solvers and their Domain Decomposition Parallelization. In: Mandel, J., Farhat, C., Cai, X.-C. (eds.) Proceedings of Domain Decomposition Methods 10. Contemporary Mathematics, vol. 218, pp. 279–286. AMS (1998)
Gerlach, J., Sato, M., Ishikawa, Y.: Janus: A C++ Template Library for Parallel Dynamic Mesh Applications. In: Caromel, D., Oldehoeft, R.R., Tholburn, M. (eds.) ISCOPE 1998. LNCS, vol. 1505, pp. 215–222. Springer, Heidelberg (1998)
Schmidt, D.C.: Users Guide to gperf. Free Software Foundation, http://www.gnu.org/manual/gperf-2.7/gperf.html
Musser, D.R., Stepanov, A.A.: Generic Programming. In: Gianni, P. (ed.) ISSAC 1988. LNCS, vol. 358, pp. 13–25. Springer, Heidelberg (1989)
Musser, D.: Generic Programming, http://www.cs.rpi.edu/~musser/gp/index.html
Silicon Graphics Computer Systems, Inc. Standard Template Library Programmer’s Guide, http://www.sgi.com/Technology/STL
Johnson, E., Gannon, D.: Programming with the HPC++ Parallel Standard Template Library. In: SIAM Conference on Parallel Processing for Scientific Computing, Minneapolis, Minnesota (March 1997)
Karmesin, S., Crotinger, J., Cummings, J., Haney, S., Humphrey, W., Reynders, J., Smith, S., Williams, T.J.: Array Design and Expression Evaluation in POOMA II. In: Caromel, D., Oldehoeft, R.R., Tholburn, M. (eds.) ISCOPE 1998. LNCS, vol. 1505, pp. 231–238. Springer, Heidelberg (1998)
Siek, J.G., Lumsdaine, A.: The Matrix Template Library: A Generic Programming Approach to High Performance Numerical Algebra. In: Caromel, D., Oldehoeft, R.R., Tholburn, M. (eds.) ISCOPE 1998. LNCS, vol. 1505, pp. 59–70. Springer, Heidelberg (1998)
Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison-Wesley, Reading (1998)
Giloi, W.K., Kessler, M., Schramm, A.: PROMOTER: A High Level Object- Parallel Programming Language. In: Proceedings of International Conference on High Performance Computing, New Delhi, India (December 1995)
Shewchuk, J.R.: A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator, http://www.cs.cmu.edu/~quake/triangle.html
Karypis, G.: Metis a Family of Multilevel Partitioning Algorithms, http://wwwusers.cs.umn.edu/~karypis/metis/main.shtml
Ishikawa, Y., Tezuka, H., Hori, A., Sumimoto, S., Takahashi, T., O’Carroll, F., Harada, H.: RWC PC Cluster II and Score Cluster System Software – High Performance Linux Cluster. In: Proceedings of the 5th Annual Linux Expo, pp. 55–62 (1999)
Tezuka, H., Hori, A., Ishikawa, Y., Sato, M.: PM: An Operating System Coordinated High Performance Communication Library. In: Hertzberger, B., Sloot, P.M.A. (eds.) HPCN-Europe 1997. LNCS, vol. 1225, pp. 708–717. Springer, Heidelberg (1997)
The OpenMP Consortium http://www.openmp.org . OpenMP: A Proposed Industry Stan- dard API for Shared Memory Programming (October 1997), http://www.openmp.org/mp-documents/paper/paper.ps
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gerlach, J., Sato, M. (1999). Generic Programming for Parallel Mesh Problems. In: Matsuoka, S., Tholburn, M. (eds) Computing in Object-Oriented Parallel Environments. ISCOPE 1999. Lecture Notes in Computer Science, vol 1732. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10704054_12
Download citation
DOI: https://doi.org/10.1007/10704054_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66818-3
Online ISBN: 978-3-540-46697-0
eBook Packages: Springer Book Archive