Abstract

The development of software for scientific applications that rest on dynamic or irregular meshes causes many problems because of the conflicting issues of flexibility and efficiency. This dissertation addresses these problems in the following way. Firstly, it applies the ideas of domain engineering to the field of data-parallel applications in order to design reusable software products that accelerate the development of specific applications in this domain. It starts with an analysis of typical data-parallel applications and formulates general requirements on the components that can be used in this domain. Secondly, using the ideas of generic programming the Janus software architecture is defined. The resulting conceptual framework and C++ template library Janus provides a flexible and extensible collection of efficient data structures and algorithms for a broad class of data-parallel applications. In particular, finite difference methods, (adaptive) finite element methods, and data-parallel graph algorithms are supported. An outstanding advantage of providing a generic C++ framework is that it provides application-oriented abstractions that achieve high performance without relying on language extension or nonstandard compiler technology. The C++ template mechanism allows to plug user-defined types into the Janus data structures and algorithms. Moreover, Janus components can easily be combined with standard software packages of this field. A portable implementation of Janus for distributed-memory architectures that utilizes the standard Message Passing Interface (MPI) is described. The expressiveness of Janus is proven by the implementation of several standard problems from the realm of data-parallel scientific applications. The performance of Janus is evaluated by comparing the Janus applications with those that use other state-of-the-art components. The examination of scalability on a high-performance Linux cluster system shows that Janus is on par with current scientific software.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call