PICASso Program Overview
Science has traditionally been advanced by the two pillars of theory and experiment. It is increasingly clear that computer simulation can revolutionize many disciplines by providing a third pillar. Simulation provides an alternative or a guide to expensive or infeasible experiments, inspires new theories and directions, and can serve as a means for making fundamental discoveries that are critical to society (e.g. in medicine) and to our understanding of nature (e.g. in biology and astrophysics). The need, challenges, and opportunities are so pressing that the U.S. government is establishing massive efforts to advance scientific simulation via high-performance computing.
Dramatic advances in computer technology can make the potential a reality. A few years ago, we could not hope to simulate problems of the sizes and accuracies needed to resolve fine-resolution climate models or understand galaxy formation in depth. Today, the technologies to enable the revolution are in sight. In fact, more and more important practical problems are within close reach of exponentially increasing hardware capabilities. Unlocking the mysteries of nature still requires deeper understanding, but achievable simulations will deliver much-needed insights into these too.
At the same time, the advent of the electronic communication and services age has fostered an explosion of new services and applications to support both internet-based and mobile "computing". Many of these services are implemented on modern high-performance computers, often similar computers to those used for scientific and engineering computing. Developing new, scalable applications and server systems for them is increasingly important for the information society.
While hardware will continue its march, the challenge faced by applications is to harness its capabilities. Consider the needs for both scientific simulation and scalable services.
Unfortunately, the path to harnessing computer technology is not evolutionary. Dramatic changes are occurring at each stage of the computational pipeline (see poster). In scientific computing, the problems to be solved are not only larger in size but also model more complex and realistic phenomena, so sophisticated new algorithms are needed. Technological advances are no longer translated to performance by improvements in traditional vector supercomputers (which scientists had become leading experts in programming) but by radically different and more complex parallel architectures. These require new algorithmic and programming approaches and mind-sets. Finally, visualization is poised for a second revolution in its ability to provide insights: moving toward user-guided steering, massive, complex data sets, and immersive environments. Expertise in these areas lies in computer science, and the computational scientists of tomorrow must acquire expertise in the new methods to be effective. Many of the needs and challenges are similar across computational science disciplines, so learning from one another is very valuable too.
Fertilization in the other direction is equally important. New and dramatically better techniques and tools must be developed in all stages of the pipeline, from models and algorithms through parallel algorithms to parallel systems, programming environments and visualization. To date, most of this research is done in isolation in CS departments, using either toy problems or simplified abstractions of real applications. While much initial progress has been achieved with these, the inward focus of computer science is now losing steam: To make substantial advances, computer scientists must understand and drive their research with real applications, dealing with their full complexity and scale. The techniques and tools developed must be useful, usable, and scalable in unprecedented ways. This requires close collaboration with real users and a dramatic increase in realism in the problems addressed. Computational science has always been at the forefront of driving improvements in high-end computing, and will continue to be so in the future.
Finally, in addition to cross-understanding and close collaboration, we also need to develop and train a new breed of researcher who is truly interdisciplinary. Such people do research in the area between application and computer sciences, understanding both deeply enough to make contributions to both. They also serve as bridges between communities, bringing people together and interfacing their languages and research. This is increasingly critical in a world with ever more interdisciplinary scientific needs. In fact, it is the lack of such people that keeps disciplines in their shells even at universities and prevents valuable collaborations from happening. Prototypes of such researchers exist at various levels. However, there is now a pressing need to not only build the bridges but also make this a programmatic area of study.
This area is very new and therefore largely untrodden. New services are arising all the time for the internet, to support both individuals and communities as well as corporations, scientists and others. Already, scalable servers (multiprocessors or clusters of computers) are being used to host these services. As the number of users grows dramatically and increasingly complex services are developed, new methods, parallel algorithms and system software will be needed to develop and support the services effectively. There is also an increasing trend toward the use of mobile computers to access information of various forms. This requires sophisticated communication management, information management, and information transformation (to transform and distill information into appropriate forms for these types of devices). The infrastructure that provides these services to mobile clients is likely to consist of scalable servers as well. These internet, mobile and more traditional information service applications are likely to be the major drivers of system design, especially at the higher-volume moderate scale of the computational pyramid. Developing successful applications, services and systems is likely to require integrated research in applications and systems.