generic programming for high performance scientific applications
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.
generic programming generic performance applications case studies developer high-performance parallel code structure examples implementation reuse software component component communication libraries language software engineering  framework  message-passing forward krylov subspace iterative solvers high-performance computing c++