13
PROBLEM-SOL WNC ENWRONMENTS Computer as ThinkerDoer: Problem# Solving Environments for Computational - Science E+atios Gallopozclos, University of Illinois Elias Hozcstk and John R. Rice, Pzcrdzce University DURING THE EARLY os, SOON AFTER HIGH-LEVEL programming languages were introduced, scientists began to envision problem-solving computing environments not only powerful enough to solve complex problems but also able to interact with users on human terms. While many tried to create PSEs over the next few years, by the early 1970s they had abandoned almost all of these attempts. Technology could not yet support PSEs in computational science. But the dream of the 1960s can be the reality of the 1990s: high-performance computers combined with better understanding of computing and computational science have put PSEs well within our reach. The term problem-solving environment means different things to differ- ent people. Simple PSEs appeared early in computing without being rec- ognized as such. Whatever form PSEs eventually take, their scientific and economic impact will be enormous. A PSE is a computer system that provides all the computational facili- ties necessary to solve a target class of problems. These features include advanced solution methods, automatic or semiautomatic selection of so- lution methods, and ways to easily incorporate novel solution methods. Moreover, PSEs use the language of the target class of problems, so I SUMMER 1994 1070-9924/94/%4.00 0 1994 IEEE 11

Computer as thinker/doer: problem-solving environments for computational science

  • Upload
    jr

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer as thinker/doer: problem-solving environments for computational science

PROBLEM-SOL W N C ENWRONMENTS

Computer as ThinkerDoer:

Problem# Solving Environments for Computational

-

Science E+atios Gallopozclos, University of Illinois Elias Hozcstk and John R. Rice, Pzcrdzce University

D U R I N G THE EARLY os, SOON AFTER HIGH-LEVEL programming languages were introduced, scientists began to envision problem-solving computing environments not only powerful enough to solve complex problems but also able to interact with users on human terms. While many tried to create PSEs over the next few years, by the early 1970s they had abandoned almost all of these attempts. Technology could not yet support PSEs in computational science. But the dream of the 1960s can be the reality of the 1990s: high-performance computers combined with better understanding of computing and computational science have put PSEs well within our reach.

The term problem-solving environment means different things to differ- ent people. Simple PSEs appeared early in computing without being rec- ognized as such. Whatever form PSEs eventually take, their scientific and economic impact will be enormous.

A PSE is a computer system that provides all the computational facili- ties necessary to solve a target class of problems. These features include advanced solution methods, automatic or semiautomatic selection of so- lution methods, and ways to easily incorporate novel solution methods. Moreover, PSEs use the language of the target class of problems, so

I SUMMER 1994 1070-9924/94/%4.00 0 1994 IEEE 11

Page 2: Computer as thinker/doer: problem-solving environments for computational science

,SOL VINC ENVIRONMENTS

users can run them without specialized knowl- edge of the underlying computer hardware or software. By exploiting modern technologies such as interactive color graphics, powerful processors, and networks of specialized ser- vices, PSEs can track extended problem- solving tasks and allow users to review them easily (see the example PSE display in Figure 1). Overall, they create a framework that is all things to all people: they solve simple or com- plex problems, support rapid prototyping or detailed analysis, and can be used in introduc- tory education or at the frontiers of science. While this description might sound like sci- ence fiction, PSEs with some of these charac- teristics have already been built.

Three general measures of PSEs are scope, power, and reliability. By scope we mean the ex- tent of the problem set that the PSE addresses. If the scope is small enough, it is easy to build

a PSE. T h e powev of a PSE refers to its ability to actually solve the problems that can be posed to it. Once the problem class gets com- plex, a knowledgeable user almost certainly can pose problems the PSE cannot solve. Reliability measures how often a PSE produces correct answers. A system that responds with “unable to solve problem” is much better than one that gives a wrong answer. High reliability can be difficult and costly to achieve, which is why it is sometimes neglected by PSE builders.

In the proceedings of the 1963 Pacific Com- puter Conference, the Culler and Fried paper “An On-Line Computing Center for Scientific Problems” showed high hopes for PSEs at a time when Fortran and Algol were still novel- ties.’ The proceedings of the 1967 ACM con- ference “Interactive Systems for Experimental Applied Mathematics” provides an overview of early work.’ However, these early efforts a t

Figure 1. PSE display for a system to optimize the design of a mechanical part. The entire mechanism, the part of interest, and a mesh on it are shown in the middle. Also shown are various partitions of the mesh for a parallel solution (lower left), the part‘s stresses and strains (bottom center), and the final shape obtained (lower right).

12 IEEE COMPUTATIONAL SCIENCE & ENGINEERING

Page 3: Computer as thinker/doer: problem-solving environments for computational science

PSEs failed primarily because of the lack of computing power.

In the late 1970s interactive PSEs reappeared in another context, as software for personal computers. In the meantime, batch-processing PSEs showed promise. Simple statistics PSEs such as SPSS and SAS were created because most statistics consumers could not or would not learn Fortran programming, and they de- manded a simple way to use statistical methods. Although these systems seem primitive now, they were such an improvement over traditional programming that they captured the statistical computing market.

The PCs and workstations of the 1980s fi- nally provided the computing power to realize the hopes of the early 1960s. In 20 years the mass market of computing moved from the re- search laboratory to the office (spreadsheets, word processors), the home (tax preparation, education), and service industries (airline reser- vations, banking). That PSEs would thrive in these markets is natural; the solvers are usually simpler and less compute-intensive, and the users are less able to do traditional program- ming. As a result, scientists, who were the first market for PSEs, might be among the last to enjoy their benefits.

Moreover, the educational infrastructure for scientific PSEs is weak. Unfortunately the divi- sion between computer scientists and other en- gineers and scientists seems to be growing. We often see highly trained engineers whose knowl- edge of computing is that of a college sopho- more. At the same time, as computer science matures and curricula crystallize, the need for specialization forces formal education in other areas to stop at an early stage. Curriculum and program proposals designed to bridge these gaps are being developed at several universities.* Although these programs vary widely because they must adapt to local faculty interests and university political structures, their common thread is that they all have substantial content in both computer science and other areas of engi- neering and science.

Grand versus national challenges

There are two generally accepted goals for PSEs: they should enable more people to solve more problems more rapidly, and they should enable many people to do things that they could not otherwise do. Time is money, and since more people would be able to solve problems faster, successful PSEs can have as much eco- nomic impact as higher performance hardware.

T o realize this impact, engineers and scientists should have PSEs for routine as well as non- standard computations.

The federal High-Performance Computing and Communications initiative has popularized the concept of grand Challenges for computer sci- ence.) Because PSEs for computational science and engineering facilitate science in general, we should expect them to help meet these chal- lenges in many ways. Although eventually we might want to create PSEs specifically in re- sponse to the grand challenges, we should not necessarily do this immediately. The nature of most grand challenges is experimental, whereas the nature of the science and engineering prob- lems for which PSEs can be developed must be well understood and standardized. One cannot expect a powerful and reliable PSE in an area where no one yet knows how to solve the prin- cipal underlying problems.

Recently the HPCC program has emphasized national challenges, applications that will have a major impact on the nation’s economy and wel- fare. PSEs can help meet national as well as grand challenges; they will help solve problems that are understood well enough that solutions are possible, and common enough that many scientific consumers will want this knowledge codified and available. As with taxes, large-scale economic impact often comes from thousands or millions of medium-sized activities instead of from highly visible, huge activities. PSEs that can help engineers design the crank mechanism for a window, the insulation for a safe, or the electrical controls of a dishwasher are practical now. These are the bread-and-butter tasks of computational science, requiring sophisticated but well-understood methods. In summary, it is a grand challenge for computer science to create PSEs for the national challenges of computa- tional science; these efforts will increase US sci- entific and engineering productivity and com- petitiveness in worldwide technology-driven markets.

In 1991, about 25 people attended a work- shop sponsored by the National Science Foun- dation to explore future research directions for PSEs. Application areas were represented, as were four of the most relevant areas of com- puter science: symbolic computing, numerical analysis, artificial intelligence, and computa- tional geometry. A long report issued after the workshop contains a bibliography of 200 cita- t i o n ~ . ~ This article selectively distills the work- shop’s discussions, findings, and recommenda- tions (see the sidebars on pages 14-15), and brings the state of PSE development up to date.

SUMMER 1994 1 3

Page 4: Computer as thinker/doer: problem-solving environments for computational science

cases be better and more retiable. Many areas of computational science are well understood and, in some sense, routine; the challenge is to encapsulate this problem-solving know-how into easily used, flexible systems. Thus the primary promise of PSEs is to capture what is well known or routine, not to provide magic bullets for problems at or beyond the frontiers of computational science.

FlNDlNG 3 PSEs require the expertise of many sub- disciplines of computer science as well as

NNDINC 5 There is a lack of models of computational science PSEs with all the ingredients de- sired; also lacking are certain generic building blocks for P S B .

The PSEs that exist today have most of their roots in one area of PSE design and are much less developed in others. This is not unexpected as a large, pro- duction-quality PSE requires many years of effort if built with today’s methodol- ogy. Thus we must visualize the next generation of PSEs much as the blind

matical expressions; visualization pack- ages for 2-, 3-, and 4D phenomena; and geometric modelers for a broad class of shapes.

NNDlNC 6 There are numerous basic research issues associated with building PSEs.

As with any complex grand challenge, there are many subchallenges for which more research is needed. Examples of important research issues for PSEs are: t Architecture: What is an appropriate

structure for a PSE? How are its com- ponents best organized? How do we allow for growth and evolution?

t Kernel: A basic kernel of facilities can be used for many PSEs. Which com- ponents belong to this kernel? How can very large generic facilities be in- cluded in a kernel? Must the kernel al- low for easy pruning or expansion? lnterface technology: PSEs will involve very large subsystems that are independently constructed as stand- alone systems. What are the data structures and protocols that such components should use to interact with the PSE? What are the limits on such interfaces?

t Scientific interface: What are the best ways for a user to communicate with a PSE? Should computers provide ad- ditional capabilities beyond traditional equations, text, and pictures?

MNDlNC 7 New engineering design and science are hard work; successful PSEs for these pur- poses must provide for extensive user inter- action.

There are many instances in PSEs e see certain fea-

i-

eric

where expert systems and other AI tech- niques will be useful in guiding the user or selecting among certain alternatives. However, since the PSE concept includes the “well-understood” attribute, novel tasks will require human direction for the foreseeable future. Care must be taken in PSE design to support the user during long-term interactions.

mbolic comput- ate the nature of the whole beast. Cer-

ented well sev- not yet avail-

Examples include n for basic mathe-

14 IEEE COMPUTATIONAL SCIENCE & ENGINEERING

Page 5: Computer as thinker/doer: problem-solving environments for computational science

Recommendations of the PS

Broadly speaking, the workshop's recommendations for future research directions in PSE design concern current "targets of opportunity" in PSE con- struction, education in computational science, and long-term goals.

computa

In addition to complete PSE

RECOMMENDATION 7 Encourage research into the architecture, design, and methodology of PSEs.

The architecture appears to have a number of critical aspects: + How do we represent methods so

that they can be compiled into a in 2 0 and

programming language as machines and systems change? How do we transform such representations as methods are interfaced? How do we modify algorithmic constituents of methods as better algorithms are discovered?

4 What is an appropriate kernel for PSE construction?

+ How are large complex components of radically different designs incorpo- rated into a single PSE?

+ Can the PSE kernel and major com- ponents remain computationally efficient if high modularity is en- forced?

constructed? + Can a good "PSE generator" be

R ECOM MEN DA TlON 2 Construct prototypes of complete PSEs for computational science.

Prototype PSEs should be built using "targets of opportunity" involving good groups of collaborators. Each PSE built should be complex enough to exhibit the principal features and difficulties of the process but not so complex that an enormous investment of time and money is required. More ambitious projects could be under- taken if the scientific or economic pay- off and the probability of success are high enough.

Science" providing q cumukrted formulas, know- how.

Computational science has a long tra- dition of handbooks that collect impor- tant formulas and results for convenient use. Computers have made tables of function values nearly obsolete, but there sti l l remains an enormous body of knowledge that is hard to access. for example, Abramowitz and Stegun's Handbook of Mathematical Functions and the three volumes Higher Transcendental functions by Erdelyi and colleagues are

Keyboard entry of information will soon De replaced by voice input and hand-written formulas. These mecha- nisms must be perfected, and novel ap- proaches explored. Further, the PSE should maintain a "laboratory note- book'' of the problem-solving process, both as a means to verify how a solu- tion was obtained and to back up the solution process when a dead-end path has been followed.

SUMMER 1994 15

Page 6: Computer as thinker/doer: problem-solving environments for computational science

PROBLEM-SOLVING ENVIRONMENTS

Where PSEs are now

Computational simulation has become an essen- tial component of the scientific process, com- plementing theory and experiment. The typical problem-solving procedure of a computational scientist includes some or all of the following steps:

(1) Construct a mathematical model of the

( 2 ) Select relevant physics and geometry. (3) Manipulate equations and associated con-

ditions, simplifying to allow suitable solu- tion methods to be applied.

(4) Specify a solution method based on analyt- ical and approximate techniques.

(5) Construct test problems and data sets. (6) Using appropriate specification and pro-

gramming languages, specify and create (build from scratch or modify existing ma- terial) a program for the solution method.

phenomenon under study.

(7) Apply the program to the test data. (8) Validate results. (9) Compare the quality of results and per-

formance with alternative solution pro- cedures.

(10) Collect and manipulate output data. (1 1) Record the steps of the experiment, (12) Communicate results t o the scientific

community.

Certain observations will help us think about how these steps fit together. This problem-solv- ing process has a hierarchical structure: most steps can form the entry nodes of another prob- lem-solving sequence. Not all steps need to be applied, and several may be used repetitively. In general, their order is not strict.

Most steps require monitoring the quality of results and system performance. The former is critical for establishing confidence, while the latter is desirable where speed is critical.

Developers constantly consult knowledge bases such as references, databases, and col- leagues to exploit existing material. Several of the steps enumerated involve synergy with hu- man problem-solving skills such as pattern recognition and intuition, so tools to facilitate this synergy will help.

Realistic problems involve diverse temporal and spatial scales. T o be efficient, reliable, and robust, an efficient solution method should be able to adapt.

Several decisions depend directly on the plat- form used. For example, the system architecture influences the solution strategy and specifica-

tions. New communication protocols and inter- connection languages between PSE modules are essential.

The simplest PSEs are toolkits, which rely on front-end user interfaces issuing calls to a back- end library. As components are added, the sys- tem moves closer to being applicable to the problem-solving steps just outlined. PSEs for science and engineering will be based largely on symbolic, algebraic, and numerical computing tools, AI and expert systems, and computational geometry systems. In turn, these components will rely on “backbone” developments in hard- ware and software, including high-speed work- stations, parallel architectures and software, windowing environments, graphics, high-level languages, and object-oriented programming. By their nature, PSEs are complicated and mas- sive software systems. Their construction re- quires software engineering techniques such as modularization, decomposability, and informa- tion hiding, captured for example in the context of object-oriented programming, hierarchical representation, and software reuse.

Example problem-solving environments One thesis here is that PSEs can and will rev-

olutionize many scientific computing activities. In fact, this has already happened. Examples include

+ Printing: Desktop publishing systems have re- placed manual page layout and typesetting.

+ Accounting: Spreadsheets have replaced desk calculators and paper and pencil.

+ Statistics: Systems such as SPSS and SAS have replaced Fortran programs.

+ Architecture and civil engineering: Com- puter-aided design systems have replaced drafting tools, handbooks, and Fortran code.

These systems are not all fully developed in the way we envisage future PSEs, but they have many PSE characteristics and have had major impacts on their fields.

In science, successful PSEs have been built to solve partial differential equations. PDEs are fundamental mathematical tools for describing the physical behavior of many application processes in science and engineering. There is mathematical software for solving specific classes of PDEs and for simulating specific ap- plications, such as in structural mechanics. This software is usually based on application-specific techniques that cannot easily be used in other applications. Most of these systems are well- defined, documented, and tested libraries of

IEEE COMPUTATIONAL SCIENCE & ENGINEERING

Page 7: Computer as thinker/doer: problem-solving environments for computational science

procedures controlled by well-defined drivers; however, a few already have some characteris- tics of PSEs. Table 1 juxtaposes some existing P D E systems with a number of features that should be included in environments for PDE computation .+

For example, the mathematical software pack- age RPI adaptively solves parabolic PDEs in one and two space dimensions using finite- element procedures that can automatically se- lect and vary both the mesh and the elements. Teiiiporal integration, within a method-of-lines fr a i i i ewo r k, auto In at i ca 1 1 y chooses between haclward-difference and Runge-Kutta methods.

Ellpack was designed to solve second-order elliptic PDEs in 2D and 3D and to evaluate software for such computations. It is a modular system with a domain-specific PDE language and a variety of elliptic PDE solvers. XEllpack and Parallel Ellpack are recent extensions.' XEllpack provides graphical input for con- structing grids, pop-up menus for selecting so- lution techniques, and color graphics output for analyzing solutions. A user can interface with XEllpack from any X Windows workstation while an XEllpack client solves an elliptic prob- lem on any machine(s) on the network. Parallel Ellpack is an interface to various libraries of parallel elliptic-PDE solvers. It allows the user

to speci 6: n on1 i near and ti me -dependent as \se1 1 as elliptic PDE pro1)leins interactively. and it maps the underlying computation onto par'allel machines automatically. This mapping can be displayed and modified interactively. All three systems can collect, visualize, and analyze per- formance data. For instance, the example PSE in Figure 2 uses editors for various tasks.

The Vecfeni system solves multidimensional el lip tic, par aho li c , an d e i g e nva 1 ue function a 1 equations on vector machines. The equations are approximated using finite elements in space (thus allowing irregular domains), and finite dif- ferences with self-adapted step size and order control in time. T h e interface is based on a inacro extension of Fortran (Patran) and a geo- metric modeling system.

The PDE2D system solves nonlinear elliptic, parabolic, and eigenvalue PDE prohlems in 2D using the Galerkin method with adaptive meshes.

Deqsol supports finite-difference and finite- e 1 e in en t d i s cr e ti za t i o n s of ti 1x1 e- d e pe n d e n t PDEs. It includes a high-level specification Ian- guage, an interactivehisual user interface for PDE problem specification, automatic genera- tion of sequential o r vector code, debugging, di- agnosis, and the visualization of numerical sin- illations of PDE problems.

Figure 2. The basic components of this PSE are edi- tors for various tasks. The menu on the left i s used to select them. Icons for tools to control the pro- cess are shown on the right with legal transitions indicated.

SUMMER 1994 17

Page 8: Computer as thinker/doer: problem-solving environments for computational science

@ROBLEM-SOLVING ENVIRONMENTS

Table 1. PSE features of systems and tools for solving partial differential equations. ”+” means the feature is present, “U” means it is under development.

PSE feature Parallel

RPI Ellpack XEllpack Ellpack Deqsol Vecfem Alpal PDEZD

PDE model generator PDE solver generator + + + + + + Advising 0 0 0 Explaining Tutoring Navigation

Sequential processing + + + + + + + + Programming “in the large” + + + + + + + Vector processing + + + + Parallel processing + Distributed processing + Performance estimation + + +

Alpal is a system for several PDE-based computations. Given a high-level specification of equations to be solved and the numerical meth- ods to be used, Alpal generates sequential or vec- tor code to solve nonlinear integro-differential equations. The software is designed to handle the sort of complicated mathematical models used in very large scientific simulation codes. Other features of Alpal include an interactive graphical front end, the ability to compute sym- bolically exact Jacobians (matrices of partial de- rivatives) for implicit methods, and a high degree of code optimization. Alpal has generated For- tran modules representing models that could not have been implemented earlier because of the in- tractability of their Jacobians.6

As Table 1 shows, all these systems are either application- or method-specific. None of them is easily expandable, and in general they lack

many PSE features. To create a true PSE for PDEs the developer must address the integra- tion of numeric, symbolic, multimedia, and AI processing.

Main component areas of PSEs The 1991 workshop focused on several main

feature areas for science and engineering PSES.~ We discuss some of those areas here.

Symbolic and algebraic computing. Symbolic and algebraic computing systems such as Axiom, Macsyma, Reduce, Maple, and Mathematica help perform tedious analytical computations that might improve or simplify the underlying mathematical model or the selection of appro- priate solution procedures.’ The commercial success of Mathematica demonstrates the broad usefulness of such tools in industry. By provid-

I 18 IEEE COMPUTATIONAL SCIENCE €4 ENGINEERING

Page 9: Computer as thinker/doer: problem-solving environments for computational science

ing the framework for specifymg a mathemati- cal problem in close to standard scientific termi- nology, these systems almost satisfy the impor- tant PSE function of communicating in the user’s own terms. As these systems accumulate mathematical knowledge, they can also replace mathematical handbooks, and even more ambi- tiously, they can become the mathematician’s assistant. Significant research questions remain about how to develop good symbolic and alge- braic computing systems, including increased speed of operation by exploiting multiprocess- ing technology, better reliability, and improved user interfaces8

An important use of such systems is the gen- eration of Jacobian matrices to replace error- prone hand manipulations and finite-difference- oriented schemes contaminated by round-off. However, the reliability of these systems needs to be improved: When researchers substituted floating-point numbers for variables in formulas generated by symbolic and algebraic computing systems, the numerical values produced were less accurate than if approximate methods had been used from the start. This is a worrying finding, p e n the typical use of such systems to produce extremely long mathematical expres- sions, translate them into Fortran, and evaluate them with floating-point arguments. Moreover, these systems still need appropriate software li- braries and good interfaces with users and other systems.

Numerical analysis. T o the problem-solving process, numerical analysis contributes efficient and robust algorithms (in the form of numerical libraries such as Lapack), which can solve prob- lems effectively on target computer systems. Some libraries are developed even further into complete environments (for example, using graphics and interface languages), bringing them closer to PSEs. The success of matrix lab- oratory tools shows that the scientific commu- nity values these development efforts. A signifi- cant task for PSEs will be to minimize the delay in applying and testing novel numerical algo- rithms in the context of real applications. Relia- bility, always a strong concern, underlines the importance of current research in error esti- mation, adaptive algorithms, and software for the complex problems to which PSEs will be a ~ p l i e d . ~

Artzficial intelligence. Techniques and expert systems for efficient problem solving constitute a major topic of AI research. From early on, polyalgorithms (combinations of common algo-

rithms with logic for dynamically choosing among them) and automatic algorithm selection procedures were recognized as important to the development of efficient and reliable numerical software. The proliferation of solution methods has made it even clearer that selection should be largely automated. In areas such as civil engi- neering, knowledge-based systems are com- bined with computer-aided design tools to im- prove the overall design process. Expert systems have been developed for differential equations, and AI techniques have been used to prepare, execute, and control experiments automatically or semiautomatically, and to build interactive knowledge media and cooperative problem- solving systems.

Geometry computations. Geometrical computa- tion and manipulation is a critical component of most science and engineering applications. The almost exclusive use of rectangles and circles in textbooks obscures the fact that most applica- tions involve more complicated shapes. T h e structural engineering community has devel- oped a “building block” approach (using finite elements or constructive solid geometry) for a wide range of shapes. While this is quite effec- tive for many applications, it is less so when smooth shapes are essential. More distressing to those trying to build versatile systems is that most of the geometry manipulation capability is deeply buried within massive software systems. There are important efforts to provide desigTz shells for large structural-analysis systems (for example, the commercial products Ideas and Adams), which provide more natural and sim- ple-to-use geometry. Civil engineers and archi- tects have been building and using computer- aided design environments-which combine knowledge-based engineering, computer graph- ics, geometry and solid modeling, and design optimization-for some time; now geometry computation must be integrated into software environments of CSE for the 1990s.

Visualization and graphics. Advances in numer- ical simulation software/hardware environments need to be matched by advances in visualization and graphics to allow improved understanding of results. Presenting information in image form allows viewers to perceive patterns and re- lationships that might be missed in tables of numbers. As an example, 3D graphics have been incorporated into the accounting PSEs (spread- sheets). PSE visualization systems should also allow users to interact with and steer the com- putation (for example, extracting information

SUMMER 1994 19

Page 10: Computer as thinker/doer: problem-solving environments for computational science

-SOL VlNG ENVIRONMENTS

and modifying parameters at runtime). They should also provide mechanisms for visualizing program flow and how the program exploits the computer architecture, thus providing impor- tant information for understanding and improv- ing performance.

Where PSEs are going

By the beginning of the next century, some pre- dict that the computer technologies of the 1990s will enable anyone with access to a com- puter to find an answer to any question that has a known or effectively computable answer. The research directions for PSEs should be gov- erned by the desire to make this prediction a re- ality and to provide students, scientists, and en- gineers with environments that make them feel the only limitation is their imagination.

The enabling technology for future PSEs is the wide availability of high-performance com- puting. Some important advances include on- chip processing performance in excess of 2,000 MIPS (million instructions per second), power- ful palmtop computers, multiprocessor worksta- tions of tremendous computational and storage power, very high resolution displays, and extra high bandwidth networks.I0 The multimedia capabilities of these systems support new tools that combine traditional computer media, exist- ing information systems, and digital video and sound technology.

These advances will significantly affect how we learn, solve problems, communicate, and in- teract professionally and personally. Simulation has augmented, or in some cases even replaced, standard experimentation in everyday science and engineering. For most users, programming will involve high-level, interactive, visual-ob- ject-oriented languages, supported by multime- dia libraries of information and application ob- jects. This ability to “program in the large” will be an important feature of PSEs. T h e new technologies will change the way we communi- cate with electronic media and will determine the nature of PSE interfaces. I t is unclear whether the current direct interfaces can han- dle this workload, so R&D of effective user interfaces is needed.

We foresee as an important research direction the development of “soft laboratories” for com- putational science, where hybrid computational and experimental models interact in a natural way (see Figure 3 , for example). These labs will need support from a new kind of software infra- structure. PSEs must be designed to match the various levels of users’ abilities and to adapt to

each user’s changing needs and resources. Other key research will create a new breed of problem-solving expert systems and “smart” al- gorithms that will adapt to specific problem sit- uations using knowledge about their own algo- rithmic and computational behaviors and their performance using various hardware platforms. These environments must be high-perfor- mance, self-adapting, portable, and extensible. Other important problems and visions for fu- ture environments are described elsewhere.”

We believe the technology advances of the 1990s will be able to support the original vision of the 1960s. The challenge is to create the soft- ware needed to exploit and integrate these tech- nologies; the goal is to support well-established educational and problem-solving processes.

Generic and application-specific PSEs For years scientists and engineers have brain-

stormed using simple, generic tools: a paper notebook, blackboard, calculator, pencil, chalk. We can now dream of replacing these tools with a single electronic medium that supports small- scale symbolic, numeric, and graphical process- ing of certain (typically mathematical) objects, while large-scale, detailed computations go to more powerful computing engines. The re- search challenge here is to scale down existing tools to fit this hardware platform-an “elec- tronic back-of-an-envelope,” so to s p e a k a n d interface them to this new environment.

Another problem-solving process is the syn- thesis of a suite of well-understood operations from well-defined libraries. A practitioner’s re- curring dream is a well-organized “workbench” of smart software tools that can help select and synthesize ideas and techniques while hiding most non-application-specific operations. We need more than the limited ongoing research in knowledge-base front ends for existing libraries. One research goal here is to identify the frame- work and generic tools appropriate for a broadly applicable scientist’s workbench.

The view of a PSE as a set of components based on some form of kernel and collaborating through some form of sojkuare bus seems to be a reasonable approach for creating PSEs. Discov- ering and developing appropriate software engi- neering methods for implementing PSEs is one of the critical research challenges.

Clearly there are widely useful kernels for sci- entific PSEs. Some of these are easy to identify; for example, facilities for visualizing data, ma- nipulating geometric shapes, creating and using libraries, and doing symbolic processing of problem-solving specifications. Other less well

I 20 IEEE COMPUTATIONAL SCIENCE & ENGINEERING

Page 11: Computer as thinker/doer: problem-solving environments for computational science

developed kernels include object-oriented knowledge-base facilities, language translators geared to scientific and engineering jargon, controllers for complex distributed computa- tional environments, and support facilities for the interface between computers and the out- side world. The hard part is to identify the right combination of these kernels and the dividing line between generic and application-specific capabilities. W e must understand the architec- ture and properties of these kernel facilities bet- ter. Then the first step toward building scien- tific PSEs should be the creation of PSEs for small, specific problem areas.

Building a PSE requires collaboration be- tween PSE developers and application scien- tists; otherwise one risks building interesting but “toy” tools. Thus, PSE research must sup- port a constructive dialogue between designers and users, with the latter group having easy

access to the system and motivation to criticize and use it while it is being designed and devel- oped. Progress can be achieved by building PSEs around selected areas, such as computa- tional electronics. The conditions are now ripe for integrating tools into PSEs and specialized workbenches in order to create a more produc- tive environment for scientists.

Supporting areas Several developments in software insfrastruc-

ture are necessary, including parallel and dis- tributed computation, networks, user inter- faces, interconnect ion technologies , and language and compiler development. First, PSEs must enable the computational scientist to program “in the large.” In other words, PSEs, their component subsystems, and their design targets are all expected to be large and complex, and the PSEs must manage this

Figure 3. PSE display for a bioseparation laboratory, The actual laboratory, the display representations of the instruments, and physically measured quantities plotted are on the left. The equations and outputs of the mathematical model controlling the instruments appear on the right.

SUMMER 1994 21

Page 12: Computer as thinker/doer: problem-solving environments for computational science

-SOLVlNC ENVIRONMENTS

complexity. W e expect object-oriented pro- gramming will be essential to implementing PSEs and all their component subsystems.

Parallel and distributed computation will af- fect research in most areas. With true multi- processing and large memories, i t also be- comes possible to parallelize symbolic computations. Some PSE components could be geographically distributed. Access to high- speed networks has already become indispens- able to the scientist. The proposed National Information Infrastructure is designed to sup- port the bandwidth required for tasks such as interactive visualization, the transfer of text, image, and sound data, multimedia database access, teleconferencing, and collaboration technology.

Another important area deserving attention is the user interface. Early systems suffered in this respect. Although a number of technol.ogica1 problems have been resolved (such as quality of display), several important areas of research remain.4

In terms of interconnection technologies, a software bus could provide the appropriate in- frastructure for integrating PSE subsystems. The bus should be designed to allow programs to be described and manipulated in terms of minimum specifications, and to provide a lan- guage for the interfacing of modules that is in- dependent of the application’s implementation language.’* Recent systems have begun to con- sider the interconnection problem. For exam- ple, it is now possible to link Matlab and Math- ematica with numerical libraries written in Fortran or C, or to use Matlab to invoke Maple or Mathematica.

Developing appropriate language and com- piler technology is critical to the problem-solv- ing process. SIAM recently published a useful report about current developments and future research in the area of system software and tools for high-performance computing environ- m e n t ~ . ~ ~ New languages are being proposed, some specifically directed toward scientific computation. Future research should also exam- ine how to exploit the PSE’s high-level knowl- edge of a problem to enhance the compilation process and produce better solutions. In addi- tion, recent developments in computer architec- ture have underlined the difficulties of restruc- turing “dusty-deck” codes (very old programs) for full exploitation of parallel machines. There is still a lot to be done in the important task of developing parallel software engineering princi- ples for writing codes that demonstrate perfor- mance portability.

PSEs for education Specialized PSEs will also have an important

impact on education, allowing students to ex- periment with hard problems and sophisticated solution methods. Multimedia technologies can revolutionize education in every field, including computational science and engineering. The fo- cus of most PSE application developments to- day involves areas of low technical difficulty or very narrow scope, and big economic impact. At the same time, educational institutions face ris- ing costs for teaching science and soon will face students who have been exposed almost from infancy to various multimedia technologies. Thus, the development of multimedia-based problem-solving educational technology is criti- cal, yet natural, to the evolution and improve- ment of the education process.

The PSE approach is attractive in science and engineering education for reasons beyond eco- nomic and human-resource factors. The long- term goal is to develop PSEs that reflect and mold specific subject areas, as textbooks and curriculum standards do now, but that also ex- ploit the wealth of information and access possi- bilities of electronic multimedia. Thus, ideally, students could study a great deal of engineering and science by stepping through levels of a PSE. The feasibility of this approach to organizing problem-solving capabilities should be demon- strated for a specific subject area.

T h e “Future Research Directions” report that grew out of the 1991 conference has been widely circulated. A new effort to support PSE research has begun at NSF, and other federal agencies have also increased funding to this area.

PSEs for computational science are still in their infancy. T h e field is one of promise, where the technological infrastructure has ad- vanced enough to allow the dreams of 30 years ago to be realized. It is immature but diverse, with potentially enormous scientific and eco- nomic impact. T o achieve the potential contri- butions of computers to science and society, we must have an interdisciplinary effort to design and build PSEs that will give scientists and en- gineers routine access to high-performance computers, advanced algorithms, and the accu- mulated know-how of computational science. We must answer the challenge of discovering how to mass-produce PSEs that are powerful yet flexible, and not limited to a particular com- puter, problem-solving method, or program- ming infrastructure. +

22 IEEE COMPUTATIONAL SCIENCE & ENGINEERING

Page 13: Computer as thinker/doer: problem-solving environments for computational science

Acknowledgments

The authors are grateful to all the workshop participants, those mentioned in this article as well as Kamal Abdali, Charles Brownstein, Bob Caviness, Grant Cook, AndrC De- prit, Joseph Flaherty, Dennis Gannon, Keith Geddes, Luddy Harrison, Christoph M. Hoffmann, Moyyad Hus- sain, David J. Kuck, Cleve Moler, David H . Padua, James L. Phillips, Allan Robinson, Jacob T . Schwartz, Siu Shing Tong, Joseph Tribbia, and Paul Wang.

We also thank the National Science Foundation for its partial support under grant CCR-90-24549. This article is based on a report to the National Science Foundation and other agencies; it was not written by the NSF or any other agency.

References

1. M. Klerer and J. Reinfelds, eds., Interactive Systemsfor Experimental Applied iWathematics, Academic Press, New York, 1968.

2 . J.R. Rice, “Academic Programs in Computational Sci- ence and Engineering,” IEEE Computational Science e? Engineering, Vol. 1, No. 1, Spring 1994, pp. 13-2 1.

3 . Grand Challenges: High Performance Computing and Com- mzcnications: A Report by the Committee on Physical, Mathe- matical, and Engineering Sciences, Ofice of Science and Technology Policy, Washington, D.C., 1991.

4. E. Gallopoulos, E.N. Houstis, and J.R. Rice, “Future Research Directions in Problem Solving Environments for Computational Science: Report of a Workshop on Research Directions in Integrating Numerical Analysis, Symbolic Computing, Computational Geometry, and Artificial Intelligence for Computational Science,” Tech. Report 1259, Center for Supercomputing Re- search and Development, Univ. of Illinois a t Urbana- Champaign, 1992.

5. E.N. Houstis, T.S. Papatheodorou, and J.R. Rice, “Par- allel Ellpack: An Expert System for the Parallel Process- ing of Partial Differential Equations,” in Intelligent Mathematical Software Systems, E.N. Houstis and J.R. Rice, eds., North-Holland, Amsterdam, 1990, pp.

6. G.O. Cook Jr. and J.F. Painter, “Alpal: A Tool to Gen- erate Simulation Codes from Natural Descriptions,” in Expert Systems for Scientific Computing, E.N. Houstis, J.R. Rice, and R. Vichnevetsky, eds., North-Holland, Amsterdam, 1992, pp. 401-419.

7. A.C. Heam, A. Boyle, and B.F. Caviness, Symbolic Com- putation: Directions for Future Research, SIAM, Philadel- phia, 1989.

8. R.J. Fateman, “Advances and Trends in the Design and Construction of Algebraic Manipulation Systems,” Proc. Int’l Symp. Symbolic and Algebraic Computing (ISSAC ’90), ACM Press, New York, 1990, pp. 60-67.

9. J.E. Flaherty et al., eds., Adaptive Methodsfor Partial D$ ferential Equutions, SIAM, Philadelphia, 1989.

10. D. Leebaert, ed., Technology 2001: The Future of Comput- ing and Communications, MIT Press, Cambridge, Mass., 1991.

11. D.J. Kuck, “A User’s View of High-Performance Scien- tific and Engineering Software Systems in the Mid 21st Century,” in Expert Systemsfor Scientific Computing, E.N. Houstis, J.R. Rice, and R. Vichnevetsky, eds., North- Holland, Amsterdam, 1992, pp. 69-87.

63-73.

SUMMER 1994

12. J.M. Purtilo, “The Polylith Software Bus,” ACiW Trans. Programming Languages and Systems, Vol. 16, No. 1, 1994, pp. 151-174.

13. P. Messina and T. Sterling, eds., System Sojhare and Tools for High-Performance Compzitirig Environments. SIAM, Philadelphia, 1993.

Efstratios Gallopoulos is a senior computer scientist and project leader for applications at the Center for Su- percomputing Research and Develop- ment at the University of Illinois. His research focuses on numerical analysis and parallel algorithms for scientific computing, problem-solving environ- ments for CSE, architectures for large-scale scientific computation, and

CSE education. He is this magazine’s area editor for nu- merical algorithms and its book news and reviews editor. He is also a member of the IEEE Computer Society, IEEE, ACiM, and SIAM, and an Associate of the Royal College of Science. Gallopoulos received his PhD in computer science from the University of Illinois at Urbana-Champaign and a BSc (first class honours) in mathematics from Imperial Col- lege, London.

Elias Houstis is a professor of com- puter science at Purdue University, where he received his PhD in 1974. His research interests include parallel computing, neural computing, and computational intelligence for scien- tific applications. H e is currently working on the design of a problem- solving environment called PDElab for aoolications modeled bv oartial dif-

I I , I

ferential equations and implemented on a virtual parallel machine environment. He is a member of ACM and the In- ternational Federation for Information Processing (IFIP) Working Group 2.5 (Numerical Software).

John R. Rice is W . Brooks Fortune Professor of Computer Sciences a t Purdue University, where he is work- ing on establishing a graduate degree program in CSE. His research inter- ests include mathematical software and scientific computing. Rice received his PhD in mathematics from the Califor- nia Institute of Technology in 1959. He then spent a year as an NRC post-

doc at the National Bureau of Standards and four years at General Motors Research Laboratories. He joined the fac- ulty at Purdue in 1964 and has been head of computer sci- ences since 1983. H e is a member of the IEEE Computer Society and the National Academy of Engineering, and serves as this magazine’s area editor for problem-solving en- vironments.

Gallopoulos can be reached at the Center for Supercomput- ing Research and Development, University of Illinois, Ur- bana, IL 61801; e-mail [email protected]. Houstis and Rice are a t the Department of Computer Sciences, Purdue University, West Lafayette, I N 47907; e-mail [email protected] due.edu and [email protected].

23