PSE Research at Virginia Tech: An Overview

Marc Abrams, Donald Allison, Dennis Kafura, Calvin Ribbens,
Mary Beth Rosson, Clifford Shaffer, Layne Watson

Department of Computer Science
Virginia Tech
Blacksburg, VA 24061

The purpose of this report is to give an overview of the activities of the research group in problem solving environments (PSEs) at Virginia Tech. Most of the report is devoted to an introduction to the area itself, with particular emphasis on our perspective and goals. After a brief attempt at defining the term PSE, we consider individually the three key words:

problem: what problem domains are we addressing?
solving: what characterizes the solution process?
environment: what should the computational environment include?

The final section summarizes our current specific interests. For more information about PSE research at Virginia Tech, please visit our home page at www.cs.vt.edu/~pse.

What is a PSE?

The term problem solving environment (PSE) is a slippery one. Like many terms in Computer Science, different people use it in different ways. Furthermore, as a relatively new and diverse area of research, it resists simple universally accepted definitions. In fact, one of the main points of this research is to understand what a PSE is or should be: what its capabilities should be, what the needs of users are, who the users are, what the fundamental architecture of a PSE should be, what components can be re-used from one PSE to the next, etc.

Keeping in mind that the term PSE is hard to pin down, here are a few attempts at a definition:

  • From [Gallopoulos, Houstis, and Rice, 1994]:
    ``A PSE is a computer system that provides all the computational facilities necessary to solve a target class of problems. These features include advanced solution methods, automatic or semiautomatic selection of solution methods, and ways to easily incorporate novel solution methods. Moreover, PSEs use the language of the target class of problems, so users can run them without specialized knowledge of the underlying computer hardware or software. By exploiting modern technologies such as interactive color graphics, powerful processors, and networks of specialized services, PSEs can track extended problem-solving tasks and allow users to review them easily. Overall, they create a framework that is all things to all people: they solve simple or complex problems, support rapid prototyping or detailed analysis, and can be used in introductory education or at the frontiers of science.''

  • A similar definition from one of our recent proposals:
    ``A problem solving environment is a computational system that provides a complete and convenient set of high level tools for solving problems from a specific domain. The PSE allows users to define and modify problems, choose solution strategies, interact with and manage appropriate hardware and software resources, visualize and analyze results, and record and coordinate extended problem solving tasks. A user communicates with a PSE in the language of the problem, not in the language of a particular operating system, programming language, or network protocol.''

  • Here are a few additional remarks that help to describe how we view PSEs and PSE development:

    • A PSE applies state of the art research and technology in many subdisciplines of Computer Science to create powerful and convenient computing environments for specific application areas, primarily in science, engineering, and manufacturing. The relevant subdisciplines include artificial intelligence, collaborative computing, graphics and visualization, human-computer interaction, networks and the World Wide Web, numerical analysis, object oriented computing, parallel and distributed computing, and software engineering.

    • A motivational example: A PSE is the software infrastructure needed to support hundreds of engineers, physically distributed, collaborating on the design of a new airplane, and using a heterogeneous collection of models and codes and machines. More specifically, the design approach known as multidisciplinary design optimization (MDO) used in aerospace engineering is a good example of a problem domain that could benefit from a PSE. In MDO, the disciplines of fluid dynamics, controls, and structures are all combined in aircraft design. Large scale engineering design problems such as this are heterogeneous in the extreme: many models, many codes, many people, many machines, many locations. Without a sophisticated, usable software environment, MDO is virtually impossible.

    • Another motivational example: A PSE is the system that the engineer/scientist of the year 2010 will use to solve problems on the global meta-computer.

    • The need for a PSE increases with the complexity and heterogeneity of the application and the problem solving process, i.e., more models, more realistic models, more people, more codes, more machines, more cases. A computational scientist of a generation ago used a relatively simple set of tools: FORTRAN, mainframe computers, output consisting of tables of numbers and simple plots. Today's scientists use a variety of programming languages---from Fortran90 and HPF to C++ and Java to problem-specific and visual programming environments; they use a complex and rapidly evolving set of parallel computer architectures; they visualize output in three dimensions, with motion, and in immersive environments; and they collaborate with a research team scattered over the world. Clearly, a usable software infrastructure to help scientists manage and coordinate all these problem solving tools is needed.

    • The possibility of building a good PSE increases with the power and sophistication of the key technologies; i.e., networking, visualization, parallel processing, interface tools, etc.

Problems of Interest

The initial focus of our work is on problems and problem-solving arising in manufacturing, engineering research and development, and the natural sciences. Our motivating examples have most of the following characteristics:
  • They are based on sophisticated mathematical models.
  • They require sophisticated numerical solution methods.
  • They require large scale high performance computing resources.
  • They are often multi-disciplinary.
  • They are often solved by groups rather than individuals.

The Problem Solving Process

What characterizes the problem-solving that PSEs assist? An important aspect of this work is to understand what tasks the scientific problem-solver wants to do in a PSE, and how the PSE can help. So it is important to have an understanding of the problem solving process itself. One can imagine many different settings or scenarios. Here are a few:
  • Research. A scientist wants to compare models or algorithms or implementations. A small number of test cases are used. Accuracy or computational performance are of primary interest. Comparison with experimental data may be required. The goal is to model some physical phenomenon more accurately, or to develop a better solution algorithm.

  • Design and development. An engineer is trying to design a better system of some kind. The mathematical models and numerical methods used are relatively fixed, although a few key parameters (e.g., the geometry) may be varied. The goal is to find a better design, according to some criteria. This optimization process may be automatic, but is most likely to involve human-in-the-loop steps. Previous ``nearby'' solutions are of considerable help.

  • Manufacturing. A plant manager or technical officer must monitor and adjust some process to respond to current conditions, e.g., properties of input materials, the current operating environment. Possible adjustments are evaluated for their predicted effect on the manufacturing process. The goal is to produce a product in the most timely, cost-effective manner, while maintaining quality. Speed may be especially critical in this setting, where shutting down the manufacturing line is virtually unacceptable. Previous solutions and expert help are extremely valuable.

  • Education. A student is studying a well-understood problem domain, experimenting with a variety of models, test cases, methods, etc. The goal is primarily to understand the current state of the art, rather than to generate new insight or new designs. A repository of sample problems and solution strategies would be very helpful, as would expert assistance, and explanation regarding problem solving steps and choices.

Characteristics of the Environment

The adjectives below represent a shopping list of characteristics that are desirable, to one degree or another, in a scientific PSE:
  • Problem-oriented. The PSE should allow the specialist to concentrate on their discipline, without having to become a self-taught expert in networks or parallel computing or the World Wide Web.

  • Integrated. Many problems and solution strategies are extremely heterogeneous: in models, codes, applications, machines, even terminology. One of the most challenging aspects of good PSE design will be to manage all this heterogeneity in an integrated way, so that the user has at least the illusion of working in a predictable and consistent environment.

  • Collaborative. Virtually all science and engineering is done in a collaborative mode, increasingly with physically distributed participants. Collaboration may be synchronous or asynchronous.

  • Distributed. A PSE may need to be distributed to facilitate remote collaboration (as just mentioned), or simply to make remote computational resources available to a single scientist.

  • Persistent. Problem solving sessions are not isolated events. The process is distributed in time as well as space. A PSE should support this, perhaps with a ``notebook'' paradigm, perhaps with some concept of continuing sessions, perhaps with a problem and solution repository, etc. Each problem solving session has a previous context it may need to inherit, and is likely to produce results and insight that will be used in subsequent sessions.

  • Powerful. No matter how good the PSE looks and feels, if it does not make available sufficiently powerful hardware and software resources, it will not be useful in solving the problems of greatest interest. Note that in educational settings, good use could be made of slightly less powerful PSEs, however.

  • Open, flexible, adaptive. In many settings it is important that PSE-builders and sophisticated users be able to tailor or add to the functionality of a PSE.

  • Graphical, visual. Most large scale applications require visualization of results; many rely on graphical input as well.

  • Intelligent. In certain settings it is likely that a PSE could supply some expert ``advice,'' in choosing among several numerical methods, for example, or in advising a machine operator on the factory floor about process control.

Our interests in PSEs

The primary goal of this research is not to build a series of PSEs that will solve all problems for a set of application areas. Instead, our focus is on software infrastructure to make it easier to build and adapt powerful and usable PSEs. Of course, in order to understand the problem and investigate solutions, one needs to work with real users and build some real PSEs ...

Specifically we are most interested in issues such as these:

  • Object oriented computing. How can OO technology be leveraged to increase the flexibility and interoperability of PSEs and PSE components? How can OO principals and technology be used in the context of legacy codes that are definitely not object oriented?

  • Human-computer interaction. What are the best ways (paradigms, models, ...) for users to interact with PSEs and with other users? How can PSEs be made more flexible and adaptable to different types of users? How usable are PSEs? How do users of scientific PSEs like to interact with the system and with fellow users? How can a PSE be useful for both disciplinary experts and general or casual users?

  • Parallel algorithms and parallel computing. The computational heart of most scientific PSEs is a substantial numerical simulation, requiring state of the art high performance computing. What level of expertise regarding parallel computing should an engineer or scientist be forced to have? What can be hidden, what should be visible regarding parallelism?

  • Numerical analysis. What accuracy and robustness issues arise when PSEs begin to combine problem solving modules in unanticipated ways? How can non-expert users be supplied with guidance in choosing mathematical or numerical models? How can a system be designed to degrade gracefully when an inner or server computational kernel fails?

  • Network-based computing. How can the Web and its descendents be leveraged to make better PSEs available more cheaply? When enough affordable bandwidth exists to make machine cycles a utility (like electricity) or to make problem solving servers a good option, how can all of this be used in scientific problem solving? Or are there other ways to think about it?

  • Computer-supported collaborative work. How can collaboration across space and time, among many users, be supported? What technical and other issues are there and how can they be addressed in this context? How can collaboration be exploited to allow new efficiencies in problem solving?

  • Visualization. How can scientific visualization tools be more easily integrated with the other components of modern scientific problem solving? What special challenges and opportunities arise with the rise of immersive visualization environments?

References

E. Gallopoulos, E. Houstis, J.R. Rice, ``Problem-solving environments for computational science,'' IEEE Computational Science & Engineering, 1, 1994, 11--23.

J.R. Rice & R.F. Boisvert, ``From scientific software libraries to problem-solving environments,'' IEEE Computational Science & Engineering, Fall, 1996, 44--53.