Steven Koonin
| ||||||||||||||||||||||||||||
| 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. Im familiar with this approach from a famous homework problem in nuclear matter theory posed by Hans Bethe in the 1960s. 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 cant 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.
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 dont always know what were looking for. The discipline of data mining has evolved to undertake these tasks. Were 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.
And how do we get all of this data into the brain? Our visual system is the highest bandwidth port into the brain. Im not enough of a physiologist to know exactly how fast, but Id 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. Its interesting to note that the next highest bandwidth is probably our auditory system, at a few 10s of kilobits per second.
When the IT systems were dealing with have the ability to process and generate terabits per second, theres 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 brains 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.
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 worlds first parallel computers.
The Institutes 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 (thats 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. Youve 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 dont think weve yet got the perfect integration of IT into the research university that is CIT, but I think weve 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, Im 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, Id urge the NSF to look at the DODs 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. Its 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 weve 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. Doolittles 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 anothers disciplines. Such interactions, which are highly desirable, can strain the traditional departmental boundaries.
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 weve got the ever-present driver of Moores law, we need to continually ask how to best educate our students in computational science?
Whats 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 theyre educated with.
What are some of those principles:
| Educate them in a science and help them to develop an intuition in it. As Ive 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. |
| Dont lose the fundamentals. We dont want the more advanced version of the grade school kids who dont 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, Ill end on that note, and would be happy to take questions.
|
|