Tpetra, and the use of generic programming in scientific computing
We present Tpetra, a Trilinos package for parallel linear algebra primitives implementing the Petra object model. We describe Tpetra's design, based on generic programming via C++ templated types and template metaprogramming. We discuss some benefits of this approach in the context of scientific computing, with illustrations consisting of code and notable empirical results.
generic programming scientific computing template metaprogramming shared-memory programming distributed-memory programming many-core computing