Font Size: a A A

Generic programming for high-performance scientific computing

Posted on:2004-11-14Degree:Ph.DType:Dissertation
University:University of Notre DameCandidate:Lee, Lie-QuanFull Text:PDF
GTID:1458390011954915Subject:Computer Science
Abstract/Summary:
Generic programming is an important paradigm for software development, with an emphasis on reusability and performance, qualities that would seemingly make this paradigm especially suited for application to scientific computing. We apply generic pro gramming to the development of a message passing framework (the Generic Message Passing library) for parallel computing in hybrid execution architectures (i.e., those having both shared and distributed memory). Although GMP supports both shared-memory and distributed-memory execution, it explicitly separates its programming and execution models, presenting a uniform message-based programming interface to enable source-code portability of parallel programs. At the same time, the implementation of GMP fully exploits the architectural characteristics of its execution target for maximum run-time performance. GMP is specifically designed to seamlessly integrate with modern generic C++ libraries such as the C-++ Standard Library. C++ objects with complex data structures are efficiently communicated with a flexible object serialization strategy. Performance results of benchmarks and real-world programs presented here demonstrate the efficiency of the Generic Message Passing framework.; There are many software packages, from repositories such as Netlib to solve well-understood scientific problems. However, it is very difficult to use them because algorithms in the packages were specifically designed for the data structures in the same packages and lack reusability. Generic programming as an ideal paradigm for realizing separation of concerns presents one approach to reusable software. We present the Iterative Template Library (ITL), the generic library for Krylov subspace iterative linear solvers widely used in scientific computing. The ITL algorithms are independent of data structures defined by a set of concepts. Parallelization of the ITL algorithms is provided by implementing a thin adaptor layer and reusing the same algorithm source code due to the generic design.; Finally, we solve two archetypal nonlinear partial differential equations (PDEs) using ITL with the GMP framework as case studies to illustrate that in high-performance scientific computing.
Keywords/Search Tags:Generic, Scientific computing, Performance, Programming, GMP, ITL
Related items