Abstract
Expression templates (ET) can significantly reduce the implementation effort of mathematical software. For some compilers, especially for those of supercomputers, however, it can be observed that classical ET implementations do not deliver the expected performance. This is because aliasing of pointers in combination with the complicated ET constructs becomes much more difficult. Therefore, we introduced the concept of enumerated variables, which are provided with an additional integer template parameter. Based on this new implementation of ET we obtain a C++ code whose performance is very close to the handcrafted C code. The performance results of these so-called Fast ET are presented for the Hitachi SR8000 supercomputer and the NEC SX6, both with automatic vectorization and parallelization. Additionally we studied the combination of Fast ET and OpenMP on a high performance Opteron cluster.
Chapter PDF
Similar content being viewed by others
Keywords
- High Performance Computing
- Alamos National Laboratory
- Vector Length
- Abstract Data Type
- Automatic Parallelization
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.
References
Bassetti, F., Davis, K., Quinlan, D.: Towards Fortran 77 Performance from Object-Oriented C++ Scientific Framework: HPC 1998, April 5-9 (1998)
Bassetti, F., Davis, K., Quinlan, D.: C++ Expression Templates Performance Issues in Scientific Computing. CRPC-TR97705-S (October 1997)
Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Boston (2000)
München, L.-R.: The Hitachi SR8000-F1, System Description, http://www.lrz-muenchen.de/services/compute/hlrb/system-en
High Performance Computing Center Stuttgart: The NEC SX-6 Cluster Documentation, http://www.hlrs.de/hw-access/platforms/sx6/user_doc
Department of Computer Science 10, System Simulation, Erlangen: HPC Cluster, http://www10.informatik.uni-erlangen.de/Cluster/hpc.shtml
Los Alamos National Laboratories: PETE - Portable Expression Templates Engine, http://www.acl.lanl.gov/pete/html/introduction.html
Pflaum, C.: Expression Templates for Partial Differential Equations. Comput. Visual. Sci. 4, 1–8 (2001)
Los Alamos National Laboratories: POOMA, www.acl.lanl.gov/pooma
Veldhuizen, T.: Using C++ Template Metaprograms. C++ Report 7(4), 36–43 (1995)
Veldhuizen, T.: Expression Templates. C++ Report 7(5), 26–31 (1995)
Veldhuizen, T.: Will C++ be faster than Fortran? In: Ishikawa, Y., Reynders, J.V.W., Tholburn, M. (eds.) ISCOPE 1997. LNCS, vol. 1343, Springer, Heidelberg (1997)
Veldhuizen, T.: Blitz++, http://oonumerics.org/blitz/index.html
Veldhuizen, T.: Techniques for Scientific C++. Indiana University Computer Science Technical Report No 542, Version 0.4 (August 2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Härdtlein, J., Linke, A., Pflaum, C. (2005). Fast Expression Templates. In: Sunderam, V.S., van Albada, G.D., Sloot, P.M.A., Dongarra, J.J. (eds) Computational Science – ICCS 2005. ICCS 2005. Lecture Notes in Computer Science, vol 3515. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11428848_133
Download citation
DOI: https://doi.org/10.1007/11428848_133
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-26043-1
Online ISBN: 978-3-540-32114-9
eBook Packages: Computer ScienceComputer Science (R0)