Steven G. Parker, PhD | home | research | publications | images | software | vita | personal | links |
research

My research agenda involves bringing together a wide variety of my interests. In particular, I attempt to use programming languages, parallel computing and systems software to bring about new approaches for scientific computing and visualization. Particular interests include:

  • Scientific Visualization

    Modern computers can produce a large amount of data in a very short amount of time. However, it is often very difficult to understand this data. This research involves coming up with new mechanisms to visualize scientific data. In particlar, I focus on interactivity for large-scale scientific datasets that overwhelm many traditional visualization methods.

  • Computational Steering

    Instead of the typical simulation mode - manually setting input parameters, computing results, storing data off to disk, visualizing the results via a separate visualization package, then starting again at the beginning - computational steering would allow the scientist or engineer to "close the loop" and allow interactive manipulation of input parameters. SCIRun is a system that embodies these concepts.

  • Computer Graphics

    Traditional computer graphics algorithms have been designed to be either interactive or realistic. I am interested in increasing the amount of realism that can be used in an interactive setting. In particular, the real-time ray tracer uses a parallel machine to achieve interactivity from a ray tracing algorithm. For large models (especially scientific data), the speed of the ray tracer can rival or exceed the performance of even the fastest graphics hardware available.

  • Component Architectures

    As software systems become more complex, component architectures can be used to help manage many aspects of this complexity. Similarly, as high-performance parallel programs grow in both size and scope, it makes sense to use a component-based architecture in assembling high-performance applications. However, such mechanisms are not prevalent in parallel scientific computing applications. For these applications, there are many barriers to using the existing component systems, including inefficiency at handling large amounts of data, and the inability to express parallelism within and between components. I am working on component architectures designed to alleviate these limitations. These concepts are being implemented within the SCIRun Problem Solving Environment, are being applied to the simulations being written for C-SAFE.

  • Problem Solving Environments

    In addition to a component architecture, SCIRun provides other support for solving scientific problems. Currently, it provides support for simple debugging and resource management. However, many other capabilites would be useful, such as recommendation of particular numerical or visualization methods, validation, logging of parameters used, and the addition of domain specific knowledge.

  • Parallel Programming

    Many scientific computations are not possible without the use of large-scale parallel machines. For C-SAFE, I am helping to design software that will run on thousands of processors in a machine that supports a hybrid of message-passing and shared-memory communication paradigms.

  • High Performance Computing

    In addition to running in parallel, computer programs should run fast. Through increased understanding of the computer architecture, one can optimize programs to get the most out of the machine. My interests here include determining how to create new algorithms and data structures that use memory hierarchies effectively, and on progamming techniques that allow highly optimized code to still be human-readable.

  • Distributed Computing

    In particular, I am interested in combining distributed computing, parallel programming, scientific visualization and scientific computing techniques to produce an environment that supports remote steering. In this scenario, a large-scale scientific computation runs on a remote computer, and the user can interact with the computation from a desktop workstation that is possibly quite distant from the simulation. The user may wish to monitor the simulation, and could make changes in the running simulation. In some cases, tools like this may be critical since the data sizes prohibit transfer of the data over even the fastest networks. Here a combination of networking technologies, programming techniques, and novel visualization methods are required to provide an interactive system.

  • Visual Programming

    While I am not actively working on novel concepts for visual programming, it remains a research interest that could provide valuable tools for the component architecture and problem solving environment goals described above.


| University of Utah | School of Computing | Scientific Computing and Imaging Institute |