The Office of Advanced Scientific Computing’s Computer Science program is targeted at researchers who wish to utilize high-end computers at the cutting edge of science. It aims to make scientific computers as easy to use and effective as possible.
The Computer Science program develops software for the world’s most powerful machines, enabling application scientists – physicists, biologists and other specialists – to tackle questions and simulate experiments that would be too costly or difficult to perform in the lab. Without Computer Science-sponsored research, complex, inefficient computer systems could overwhelm scientists.
The program’s work fills a critical gap. The software industry is unlikely to commit to long-term research or to develop programming for the relatively few machines equipped with tens to hundreds of thousands of processors. Yet, these powerful computers and the applications that run on them are vital to maintaining the United States’ competitiveness in the world economy.
The ASCR Computer Science research program concentrates on five areas:
- Operating Systems and Tools - Designed to make software scalable – capable of running on increasing numbers of processors. The program develops operating systems that address the reliability and scalability needs of high-end systems – systems hundreds of times larger than in normal use by industrial users.
- Programming Models enable users to write parallel programs that express scientific programs for parallel machines. Three standard parallel processing programming models– Message Passing Interface (MPI), Global Arrays and Unified Parallel C – were developed with Computer Science support.
- Performance Analysis and Evaluation. With today’s powerful scientific computers, it is important to understand the relationship between hardware architecture and applications. Computer Science investigates how best to match the two and develops tools to evaluate how well applications run on high-performance machines. Dynamic Instrumentation, a powerful application for analyzing code performance that does not require application source code, is one example supported by the Computer Science program.
- Interoperability. The capacity to easily write a single application different computer languages in various phases of the program. It can affect how a code migrates from one system to another. One Computer Science-sponsored interoperability solution, the Common Component Architecture, is gaining acceptance as a standard for multidisciplinary high-performance computing.
- Visualization and Data Management. High-performance computing is generating huge amounts of data – often trillions or quadrillions of bytes. Visualization research provides innovative ways to view and analyze this mountain of information. Data management research, meanwhile, helps scientists quickly locate desired information. For example, the Computer Science program supported development of FastBit, an indexing program that answers queries of enormous data sets with amazing speed.
The challenges ahead are largely focused on the advent of petascale computing – computers capable of up to 1 quadrillion operations per second. Computer Science research will focus on scalable software and applications that can weather system reliability. Such efforts are pushing computer science into unknown realms of discovery.
|