Curiously recurring template patterns
C++ Report
C++ gems
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
C++ Templates
C++ Expression Templates Performance Issues in Scientific Computing
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
Advanced expression templates programming
Computing and Visualization in Science
Introduction to High Performance Computing for Scientists and Engineers
Introduction to High Performance Computing for Scientists and Engineers
LIKWID: A Lightweight Performance-Oriented Tool Suite for x86 Multicore Environments
ICPPW '10 Proceedings of the 2010 39th International Conference on Parallel Processing Workshops
Euro-Par'12 Proceedings of the 18th international conference on Parallel processing workshops
Scientific Programming - A New Overview of the Trilinos Project --Part 1
Hi-index | 0.00 |
In the last decade, expression templates (ETs) have gained a reputation as an efficient performance optimization tool for C++ codes. This reputation builds on several ET-based linear algebra frameworks focused on combining both elegant and high-performance C++ code. However, on closer examination the assumption that ETs are a performance optimization technique cannot be maintained. In this paper we compare the performance of several generations of ET-based frameworks. We analyze different ET methodologies and explain the inability of some ET implementations to deliver high performance for dense and sparse linear algebra operations. Additionally, we introduce the notion of “smart” ETs, which truly allow for a combination of high performance code with the elegance and maintainability of a domain-specific language.