October 27-28, 1999     -     Pasadena, California

it2kcs_635x105.gif (9716 bytes)

Agenda

Event Home Page

Steven Koonin
Vice President, Provost, and Professor of Theoretical Physics
California Institute of Technology

Computational Science in a Research University

 

Good morning.

The organizers have asked me to say something about the importance of Computational Science in the Research University setting, and I will attempt to do so. As you can see, I will try to meet the speaker’s Grand Challenge and hold your attention without the dazzle of PowerPoint.

Part of my perspective is that of Caltech’s Chief Academic Officer. In that capacity, not only do I have to worry about many pucks in play simultaneously, but also about who’s on the team, and even what game we’re playing.

Another element of my perspective is that of a Professor of Theoretical Physics who has been a major research user of machines at Caltech and elsewhere, who is the author of one of the first textbooks on Computational Physics, and who has been an advisor to the US government on various matters computational.

My credentials

To further establish my credentials, let me also note that I’ve been involved in scientific computing for some 35 years, ever since I first learned machine language programming of an IBM 1620 as a high school junior. Subsequent work on numerical quantum mechanics both here as an undergrad and then as a grad student at MIT was on an IBM 360 — a blur of punch cards, batch job submissions that began with magic // incantations, and late nights at the computer center. Indeed, my then future wife never lets me forget that it was a frequent site of our dates.

The IT Revolution

Since that time, computing has changed dramatically. Of course, it’s just Moore’s Law operating, but I guess that you’re always experiencing a revolution when you live on an exponential curve.

But it’s not only in computing speed that is improving so rapidly, but also the ability to collect, transport, and store data. Before the present decade, most of the progress was driven by the government, for both research and national security issues. But in the past ten years, most of the improvement in information processing capability has been driven by the commercial sector. This shift has profound implications, some of them still being sorted out.

Moore’s Law, and indeed, the whole information technology revolution is a great example of the cyclic interplay between science and engineering. Science discovers new phenomena, which are then applied to build new instruments, which in turn enable new science, and so on. I’m sure all of you can cite numerous examples of how this synergism has worked, and, indeed, continues to work. Many non-scientists often forget that you need to nurture and support both the scientific and engineering phases of the process in order to make it work. For example, without basic research on the quantum theory of solids, we would not have the control of semiconductor properties necessary for modern chip fabrication.

One of the wonders of the science/technology cycle is that, often, the technology generated can be applied to other things besides building better scientific instruments. Many of us pursue science just because we’re driven to understand Nature. But, in fact, technology "spin-offs" that benefit society are the primary motivation for the support of basic research in this country (at least by the government and industry).

In the case of IT, we have the somewhat unusual situation that the technology has been highly elaborated and refined for non-technical uses. Early computational research was confined to the government and driven by national security and basic research needs. But once the utility of IT became obvious, far more substantial and diverse resources were brought to bear on its development. As the non-technical world has discovered, embraced, and learned how to exploit the IT revolution, IT has become something of a commodity; we buy processing power, storage, and bandwidth by the yard. We in the technical enterprise now need to learn to how exploit that, perhaps adding the extra specializations required for our purposes. In a curious way, we are in something of a reverse engineering mode. And that’s where computational science comes in.

So what I thought I’d do is first cover computational science, outlining what I see as some of the challenges, tying together and commenting on some of the themes we’ve heard in the past day and a half. I’ll then cover the relationship of Computational Science to the rest of the research university.

What is computational science?

Paul Messina opened yesterday with a definition of computational science that I’d recast as mostly about using the power of computers toward scientific or engineering ends. There are necessarily parts that overlap with Computer Science, but the more abstract elements of that discipline are more akin to mathematics, and often pursued as ends in themselves. Computational science is thus really engineering, learning how to use tools to accomplish a specific task. Because the tools given to us by Moore’s law are so new and powerful, Computational Science is an active and thriving activity.

From my perspective, the field divides roughly into two parts, simulation and data management, and I’ll discuss each in turn.

Simulation

Simulation is a method for doing science that is a bridge between experiment and theory. Often we understand thoroughly and precisely the basic laws governing a system (such as Newton’s law or Schrödinger’s equation), and these have been well tested in simple situations. But as our understanding of the world becomes more sophisticated and we become more ambitious (either for basic science or engineering) in wanting to treat complex systems, the application of these simple laws becomes a task requiring extensive numerical work.

At one level, it can take little more than raw processing power. For example, we can quite accurately write down the force law between two stars. It is then a matter of integrating Newton’s equations with gravitation to understand the phenomenon of condensation of the early universe. Bigger computer, big enough collection of galaxies, and you’re able to understand more.

However, climate modeling shows that there are other difficulties. The earth’s climate system consists of many interacting components:  the ocean, atmosphere, cryosphere, biosphere, etc. To do a good job of modeling, we must break the system into manageable elements that can be quantified and whose interactions can be tracked on the computer.

Surely the molecules that make up the earth are too fine a scale. A reasonable division might be 10 km volumes of the earth and ocean, still an extraordinarily large number. But even at this fine resolution, there are still subgridscale phenomena such as thunderstorms that must be parametrized or understood phenomenologically. Here lies much of the art and talent of simulation.

Getting the simulation running requires learning how to adapt the algorithms to the platform architectures available, as well as software engineering to track the writing and debugging of the often millions of lines of code.

V and V

Of course, once you’ve got a simulation running, there are the very important issues of Verification and Validation. Verification is how do you know the code is doing what you think it’s doing — is probably as old as numerical computation itself. The well-known techniques that we teach our students include:
Convergence as a function of step size or grid size
Conservation laws
Convergence with respect to discretization order
Approach to analytically known behavior in certain limits

More useful are perhaps "homework" problems, where a community agrees upon the detailed specification of a certain system and then proceeds to intercompare the results of various algorithms or approximations. I’m familiar with this approach from a famous homework problem in nuclear matter theory posed by Hans Bethe in the 1960’s. It became an important testing ground for many-body codes and techniques.

Validation is a different story. Here, one has to step outside the arena of pure theory and interact with people doing experiments or observations. Crucial to success are well-characterized and well-diagnosed situations, but even so, acquiring 3-dimensional, time-dependent data is not a trivial matter, as Paul Dimotakis just showed us. And even with such data in hand, there are many interesting questions, like:
How do you quantitatively compare multidimensional data sets? That is, get beyond looking at pretty pictures. Gil Weigand reminded us, and Paul Woodward vividly demonstrated, that in going from 2-dimensional to 3-dimensional simulations "you can’t just stare at a table of numbers anymore"
In a complex simulation with many physical variables that may be at base non-deterministic, what constitutes validation? In other words, which parts of the description is it most important to get right?
And finally, what are the limits of validity of any given code. For what range of parameters or initial conditions can it be trusted?

Many of these questions are methodological challenges that are first being posed by the new technology available to us. The issue is, in many ways, not getting simulations to run faster, but getting them to be better; speed is only part of the answer.

Data glut

The second mode of computational science is what I would call dealing with data glut. Many fields of science are experiencing a greatly expanded capability to collect information. This is enabled by new sensors (as in the earth sciences or astronomy) or by new technology, as in the biological sciences. Other instances are the large demographic or economic databases beginning to be available in the social sciences. Having so much data available brings issues fully as engaging as those posed by simulation.

How to extract information from data? And then knowledge from that information? And ultimately understanding from the knowledge? It could be that people have always felt like they were drowning in data. Consider the following quote:

The modern age has a false sense of security because of the great mass of data at its disposal. But the valid issue is the extent to which people know how to form and master the material at their command.

Sounds familiar, right? Surprisingly, it comes from Goethe in 1832!

Goethe was surely drowning in the printed word. Today, we drown in bits. The data can be homogenous (as in astronomical images at different wavelengths). They can also be very heterogeneous. One of the most awesome informatics problems is being posed by biological data sets. Beyond the obviously homogenous nuclei acid data sets of genomic and cellular DNA, there are protein sequence data, expression data, structural data, homology data, and so on. A great mass of information, but terribly heterogeneous and, at the moment, disorganized.

Of course, science has always been about discerning patterns in the data. But again, the technology has brought a qualitatively different situation, where the data are voluminous, they often have high dimensionality, and we are treating systems so complex that we don’t always know what we’re looking for. The discipline of data mining has evolved to undertake these tasks. We’re learning how to think in high-dimensional spaces and to collapse phenomena down to simple dimensions. These are tools generic to both experiment and theory. They also span disciplines.

Visualization

And how do we get all of this data into the brain? Our visual system is the highest bandwidth port into the brain. I’m not enough of a physiologist to know exactly how fast, but I’d guess that a good order of magnitude number is about what it takes to transmit a TV signal, or about a megabit per second. Of course, our brain rapidly reduces this data rate by feature extraction and so on. It’s interesting to note that the next highest bandwidth is probably our auditory system, at a few 10’s of kilobits per second.

When the IT systems we’re dealing with have the ability to process and generate terabits per second, there’s a million-fold reduction in data that needs to take place. Knowing which needle to fish out of the haystack is the data mining problem I just spoke about. But learning about that needle requires visualization.

So visualization is very important. This was well understood in the pencil and paper era. But now our data sets are 3D or more and are dynamic. Yet our brains are designed for, at most the 4-dimensional world of 3 space dimensions and time. Researchers developing modern IT systems need to do the human factors, to consult with the psychologists and physhophysicists as to what is the most efficient way to couple to the brain’s processing. This area is ripe for research. And what about the possibility of using other channels into the brain, such as the tactile or olfactory senses? I suspect that a big part of the answer is not faster or better graphical displays or more bandwidth, but intelligent machine-dependent feature extraction from massive data sets, as Andy van Dam hinted at. More generally, there is the issue of how you balance the processing in the human with processing in the machine. There is, perhaps, an opportunity for synergism here with the community that has been working the automatic target recognition problem in the DOD.

The research university setting

Let me now turn to how all of these considerations play in the research university.

The business of a research university is two-fold. One is research:  to continually push the forefronts of knowledge in science and engineering and to find new applications of that knowledge. The second part of the enterprise is the "university" bit:  training future generations who will continue the generation and application of knowledge. Because information technology now so pervades science and engineering, it is perforce a part of the research university, both for our work and for education. The issue is, I think, because it is so new, how do we best integrate computational science into the university.

Caltech has long recognized the importance of computing and computational science. More than a decade ago, two of our then faculty, Chuck Seitz and Geoffrey Fox, had the foresight to realize the potential of massively parallel architectures. In collaboration with our Jet Propulsion Laboratory, they pioneered the construction and use of one of the world’s first parallel computers.

The Institute’s enthusiasm for high-performance computing has grown steadily since. Almost five years ago, we created the Center for Advanced Computing Research (CACR), led by Paul Messina; substantial Institute resources have been devoted to its support. This organization specializes in providing leading-edge computing and communications technology to scientific users. In this arrangement, manufacturers find a friendly and knowledgeable testbed for their products, while users who are willing to cope with less than stable systems have often unique capabilities to do their research. Among its accomplishments, the Center has developed operating systems and scalable I/O for massively parallel systems, and metacomputing, which allows disparate supercomputers at widely separated locations to work together on a single problem, and the notion of massive arrays of commodity hardware embodied in the Beowulf architecture. The Center currently provides stable access to several large cutting edge machines for a large community of users, both at Caltech and across the country

Caltech has been a leader in the application of high-performance computers to real problems in science and engineering. More than 40 professors from across the Institute (that’s one-sixth of our technical faculty) use CACR facilities for data analysis, modeling, and other computation. The philosophy of concentrating significant computational resources in the hands of a relatively few researchers has resulted in breathtaking progress in many fields, including physics, chemistry, geology, and biology. You’ve heard about some of these yesterday and earlier today. We have also successfully integrated high-performance computing into the curriculum. Undergraduate and graduate students are regular users of our parallel machines and Caltech was the first university to teach a hands-on course in their use.

I don’t think we’ve yet got the perfect integration of IT into the research university that is CIT, but I think we’ve had a number of successes. And so our experiences suggest some general principles as to how this is best done.

I think one important point is to keep computational science close to the disciplines and applications. Computational science needs the science (or engineering, for that matter). Successes will be emptier, or even non-existent, unless the technology is applied to real technical problems whose solutions people really care about. In that regard, I’m pleased to see that Ken Kennedy understood (and agreed with) this point and that the new government program is going to make some of its investment in the technology of computation through a close coupling to applications. With regard to the problem of Grand Challenges not leaving behind enough of a legacy of expertise, I’d urge the NSF to look at the DOD’s ACTD program, where such a residual capability was built into the project plan at the very beginning.

We in the research universities need the infrastructure to support those applications. That means tools to do the computation, find the most efficient algorithms, engineer the software, adapt the right sort of visualization, database management, communications. Most of the big hardware need not be on campus; indeed, it can be almost anywhere. It’s enough to have a high-bandwidth link, a well-run remote facility, and perhaps, although not necessarily, a piece of the machine locally for development, I myself have done large scale computing on machines in Maui, in Japan, as well as in San Diego.

But, as usual, the most important resource for computational science at a research university (or indeed anywhere) is the people. We need people who are at the forefront in, and expert in, these skills to interact with the disciplinary experts and enable the science or engineering.

Another issue for universities, indeed for each university, is the balance between research in technology push vs. application pull. There is no doubt, as we’ve seen several times in this workshop, that there are trails to be blazed in developing the methodology of high-performance computing. However, it is also clear that there are very exciting opportunities in all of the applications. Can you have one without the other? or does a university need to be something like Dr. Doolittle’s push-my/pull-you. One model suggesting otherwise is in particle physics. Most universities neither practice, nor teach, the art and science of accelerator physics. Nevertheless, many run forefront particle physics research programs, exploiting the accelerators and expertise available at national facilities. Could scientific computing work the same way, particularly with the rise in network technology that dissolves time and space?

Rita Colwell noted that information technology breaks down the barriers between disciplines. I think computation is particularly effective in inducing a greater interaction among the disciplines, as full scale simulations require that one understand, and couple, previously disparate aspects of a problem. This is quite separate from, and in many ways more important than, the unity that comes from common use of hardware or operating systems, or visualization tools or other technology. A good example is happening here in our ASCI activities. The goal is a realistic simulation of shock waves induced in a material via high explosives. Faculty, students, and postdocs in chemistry, materials science, solid and fluid dynamics have had to speak the same language and really understand one another’s disciplines. Such interactions, which are highly desirable, can strain the traditional departmental boundaries.

Education

Let me close with a few words about education in computational science. My involvement with that activity began in 1981, when a man from IBM walked into my office and asked if I would like to try out this thing called a PC. (Some 640k, I remember, and dual floppy drives). I became intrigued enough with that possibility that I developed a course to teach advanced undergrads and grads how to use a computer to do science. To quote from the Introduction written about 14 years ago: …..

Computation is an integral part of modern science and the ability to exploit effectively the power offered by computers is therefore essential to a working physicist. The proper application of a computer to modeling physical systems is far more than blind "number crunching," and the successful computational physicist draws on a balanced mix of analytically soluble examples, physical intuition, and numerical work to solve problems which are otherwise intractable.

Unfortunately, the ability "to compute" is seldom cultivated by the standard university-level physics curriculum, as it requires an integration of three disciplines (physics, numerical analysis, and computer programming) covered in disjoint courses. Few physics students finish their undergraduate education knowing how to compute; those that do usually learn a limited set of techniques in the course of independent work, such as a research project, or a senior thesis.

I think that many university curricula have evolved since then to address those shortfalls. However, because we’ve got the ever-present driver of Moore’s law, we need to continually ask how to best educate our students in computational science?

What’s most important to get across are the technology-independent principles, since it is clear that the technology our students will use in their professional lives (or even just a few years after they leave us) will be different, and presumably better, than what they’re educated with.

What are some of those principles:
Educate them in a science and help them to develop an intuition in it. As I’ve emphasized several times, computational science without the science is an empty exercise. Preferably it should be a broad scientific exposure, since the traditional disciplines are merging and reforming before our eyes, and the distance between science and engineering is shrinking.
Don’t lose the fundamentals. We don’t want the more advanced version of the grade school kids who don’t learn arithmetic because they have calculators. We need to impart a set of time-tested tools that you carry in your head and give you a framework for thinking about the world and understanding the results of any calculation.
I think we also need to teach them to distrust the computer; unless programming gets a lot easier, there will always be bugs. So we need to teach them tools for verification.
We also need to teach them validation. That simulations are only devices for interpolation, extrapolation, and explanation. The real truths are observations and experimental results, not what comes out of the box.

I think, perhaps, I’ll end on that note, and would be happy to take questions.

 

 


Center for Advanced Computing Research (CACR)

California Institute of Technology