NOTE: Eary Registration ends April 2!
An important type of software that has received little attention from software
engineering researchers is software developed for computational science and
engineering (CS&E) applications. This software is vital for the study of many
important topics from diverse application domains. A list of the
top 500 supercomputers , for which many CS&E
applications are written, provides an example of the diversity of government,
scientific, and commercial organizations that use CS&E and highlights its growing
prevalence and impact on modern society. As an example of the importance and
diversity of the types of problems addressed through CS&E, a recent article in the
Computing Research News listed topics being addressed with CS&E at Los Alamos
National Laboratory, including designing and maintain nuclear weapons, simulation
of the public infrastructure, climate change, HIV vaccines, defense against
radiological attacks, and astrophysics. In addition to these topics, other institutions
are using CS&E to study problems related to crash simulation, satellite data
processing, bioinformatics, and financial modeling. Because many of these
domains are complex and involve advanced scientific or engineering concepts,
much of the CS&E software is written by domain experts rather than by software
engineers. This proposal uses research and education to address the lack of
emphasis the software engineering community has placed on the development of CS&E software.
Furthermore, the design, implementation, development, and maintenance of CS&E
applications can differ in significant ways from the systems and development
processes more typically studied by the software engineering community:
The goal of this workshop is to facilitate the collaboration between software
engineering researchers and CS&E researchers/practitioners. This workshop provides
a forum for each side to present issues of relevance to CS&E software development.
By bringing together these different groups our goal is to support the building of
a common understanding of the issues involved in this complex process.
- The requirements often include conformance to sophisticated mathematical
models. Therefore, the requirements may take the form of an executable
model in a system such as Matlab, with the implementation involving
porting to proper platform.
- Often these projects are exploring unknown science making it difficult to
determine a concrete set of requirements a prioiri.
- The software development process, or "workflow" for CS&E application
development may differ profoundly from traditional software engineering
processes. For example, one scientific computing workflow, dubbed the
"lone researcher", involves a single scientist developing a system to
test a hypothesis. Once the system runs correctly once and returns its
results, the scientist has no further need of the system. This approach
contrasts with more typical software engineering lifecycle models, in
which the useful life of the software is expected to begin, not end,
after the first correct execution.
- CS&E applications often require more computing resources than are
available on a typical workstation. Existing solutions for providing more
computational resources (e.g., clusters, supercomputers, grids) can be
difficult to use, resulting in additional software engineering challenges.
- "Usability" in the context of CS&E application development may revolve
around optimization to the machine architecture so that computations
complete in a reasonable amount of time. The effort and resources involved
in such optimization may exceed initial development of the algorithm.
For more information contact Jeffrey Carver.
Last Updated on October 12, 2007 by Jeffrey Carver