This dissertation involved two distinct, yet complementary goals. The primary focus is on
steering parallel computations, and, in particular, on providing tools to simplify the
task of creating user interfaces, when employing a steering and visualization package.
We then apply these tools to create a complex customized interface which enables a user to detect,
classify, and steer a sample parallel simulation of liquid crystal materials through a bifurcation point.
Steering and visualization (STV) packages such as CUMULVS have been developed to allow user
interaction with parallel programs. These packages tend to concentrate on data extraction
and transportation, but ignore the problem of allowing scientists to easily build customized
user interfaces to perform the actual steering. We believe that customized user interfaces are essential
for monitoring and steering any complex computation, and that any STV environment should
be accompanied by a set of tools which allow users to construct such an interface without
detailed knowledge of the STV library.
The principle result of this work is the creation of such a set of tools.
These include a toolkit to simplify common tasks, when constructing such a user interface;
a library of objects, which combine graphical display of data with the ability to steer that data;
and a generic user interface framework, which requires minimal customization to deploy. The use, and usefulness of each of these tools is demonstrated by producing interfaces for a number
of parallel numerical simulations. The utility of these tools for a large scale application is ultimately demonstrated by creating a complex custom interface to steer a large three dimensional parallel numerical simulation through the process of locating, classifying and following distinct paths out of a bifurcation point.
The implementation of this latter application required the development further software.
In particular, locating bifurcation points in the class of problems under investigation
involves determining the geometric multiplicity of the minimum eigenvalue
of the Jacobian as that eigenvalue approaches zero. To accomplish this, a
parallel library, PCIRBLEIGS, was created. This library, based upon
the irbleigs algorithm, can determine a few eigenvalues of a large, sparse,
symmetric, Hermitian matrix distributed across multiple processes. This
library is presented along with several examples and performance information.