PETSc and overture : lessons learned developing an interface between components. Page: 3 of 12
This article is part of the collection entitled: Office of Scientific & Technical Information Technical Reports and was provided to Digital Library by the UNT Libraries Government Documents Department.
The following text was automatically extracted from the image on this page using optical character recognition software:
Developing an Interface between Components 3
solver class within Overture. The development of such a class is still ongoing,
but much can be learned about how to write useful components by observing
this work in progress.
Two types of interfaces shall be discussed: the internal interface between
components, and the external interface which the application developer will
use. Three basic approaches toward developing the internal interface between
Overture and PETSc have been explored. The first approach is to have Over-
ture convert its native data structures into those that the Overture developers
expect to be appropriate for linear algebra purposes, and to require any lin-
ear algebra solver to support these formats. The second is to force the linear
algebra solver (PETSc) to use the native Overture data structures as vectors
and matrices. The third approach is to have both Overture and the linear alge-
bra component work together to convert Overture's native data structure into
whichever data structure the linear algebra component recommends. For the
external interface, one must balance simplicity with flexibility, to allow the
user to develop high-performance applications without needing to learn new
interfaces for well-known tasks.
2. THE INTERNAL INTERFACE
When working with multiple software components, the principal barrier to-
ward interaction is related to the data structures involved. The best data struc-
ture for one particular task, and component, is not the best data structure for
another. Clearly, all components cannot be expected to use the same data struc-
ture. An interface must be generated to determine the interaction between the
components at the level of the data structures. This interface is one that, if
properly implemented, is used by component developers and is not essential
for the application developer to use directly. In this section, three approaches
toward this internal interface are discussed.
2.1. OVERTURE CONVERTS DATA STRUCTURES TO
The first approach is for Overture to require linear algebra solvers to support
specific matrix and vector data structures that are common among linear alge-
bra toolkits. In particular, contiguous one-dimensional arrays are used to store
vectors. For storing matrices, the compressed and uncompressed sparse row
formats as well as their column-based counterparts are currently supported.
Overture provides a mechanism for the conversion into and out of these spe-
cific data structures. These data structures are created and destroyed by Over-
ture, but since they are supported by other components, those components are
free to manipulate them as they see fit.
Here’s what’s next.
This article can be searched. Note: Results may vary based on the legibility of text within the document.
Tools / Downloads
Get a copy of this page or view the extracted text.
Citing and Sharing
Basic information for referencing this web page. We also provide extended guidance on usage rights, references, copying or embedding.
Reference the current page of this Article.
Buschelman, K. R.; Gropp, W. D.; McInnes, L. C. & Smith, B. F. PETSc and overture : lessons learned developing an interface between components., article, November 20, 2000; Illinois. (https://digital.library.unt.edu/ark:/67531/metadc721284/m1/3/: accessed March 19, 2019), University of North Texas Libraries, Digital Library, https://digital.library.unt.edu; crediting UNT Libraries Government Documents Department.