Next: Goals, Objectives and Areas Up: PROPOSAL: Institute for Complex Previous: PROPOSAL: Institute for Complex
Introduction
Over the last decade a major trend in basic science and engineering research has been the move toward large-scale multi-disciplinary efforts required to solve grand challenge problems 1. In application areas ranging from mapping both the human genome and the basic structure of matter to non-invasively imaging the internal functioning of the human body or the composition of the earth's subsurface, it is common for experts in fields as diverse as medicine, mathematics, physics, chemistry, geology, engineering, and computer science to be working closely on the same team toward common research objectives. Associated with this trend has been the need to synthesize large scale, complex software systems for managing, processing, and analyzing the extraordinary quantities of data produced by these investigations.
A multi-disciplinary team has been assembled to develop a multi-faceted approach to address the research barriers at hand. The resulting solutions push available computational resources to their limits. More importantly, the complexity of the software pushes designers, programmers, and users to their limits as well. Thus, one is constantly looking to faster, more efficient, novel algorithmic and even hardware-oriented methods for solving the individual pieces of the larger problem. Concomitantly, we need faster, more efficient methods of assembling the software and managing its complexity.
What's required is a new discipline that goes beyond software engineering. Software engineering works well when the application is well-understood. However, typical scientific software systems are developed for these grand challenge problems in a piecemeal fashion. It is all too often serendipity that brings researchers with powerful programming tools (efficient libraries, communications protocols, etc.) together with practitioners whose problems require these resources. The tools of the several disciplines must then be retrofitted without the benefit of advance planning.
We propose here to establish an Institute for Complex Scientific Software (ICSS) at Northeastern University to directly attack this problem in a unified fashion. A unified software approach has become an enabling technology for scientific discovery. It allows a scientist to pose a hypothesis, formulate a computational experiment in a custom computer language tailored to the scientific application, and quickly obtain results. The speed of the process is the key, allowing a scientist to rapidly gain intuition and modify hypotheses for successive computer experiments.
The Institute is unique in the way it would manage and put software systems together. Traditional software engineering models will continue to be used to decompose large-scale software into maintainable pieces. However, success in tackling a grand challenge typically requires the assembly of several (pre-exiting) large-scale software packages from different scientific teams, along with smaller amounts of ``glue code.'' This assembly process is different from the process of decomposition of large software. The Institute will extend the traditional models to create additional glue components and assemble the components to achieve the right functionality. This takes planning and effort to make it work. The payoff, however, is tremendous: the Institute will provide researchers with a plethora of existing component solutions with which to assemble a grand challenge application. Over time the Institute will develop and refine the means to make the components work together: tools for adaptation, tools for deployment, domain-specific little languages, scripts, etc.
Next: Goals, Objectives and Areas Up: PROPOSAL: Institute for Complex Previous: PROPOSAL: Institute for Complex David H. Lorenz 2002-03-25