A key difficulty in developing usable software systems for iterative methods and large-scale linear system solvers is the need to interact with other parts of applications codes. At the same time, modern research applications have become by necessity multidisciplinary, requiring the expertise of several researchers to develop, use, and analyze results. Component systems are an important new software concept which have revolutionized the desktop computing world, and they have the potential to ease scientific computing software development while broadening its applicability. The usefulness of component systems for large-scale scientific computing will only be limited by the ability of the components to have an extensible set of interfaces. This would allow, for example, experts in finite-element discretization to develop their codes independently of experts in large-scale iterative solvers, as long as the resulting components have the ability to find or even dynamically negotiate interfaces between themselves.
One force behind the development of component architectures for scientific computing is the DOE ASCI project, and currently the DOE labs are developing the mechanisms for component interoperability. This workshop will briefly present the ASCI projects, showing why they are converging towards component frameworks. A prototype distributed component system for analyzing and solving large-scale sparse systems will be shown as an example of how such systems work, and their potentials which extend beyond ASCI problems.
This workshop will solicit discussion and ideas for the all-important issue of specifying component interfaces.
* Robert Clay
* Randall Bramley
* Lois Curfman McInnes