Updates
Deadlines
CFPart - SECSE08
CALL FOR PARTICIPATION
First International Workshop on Software Engineering for
Computational Science and Engineering
Leipzig, Germany
Co-located with ICSE 2008
http://www.cse.msstate.edu/~SECSE08
Overview
High performance computing systems are used to develop software for
wide variety
of domains including nuclear physics, crash simulation, satellite data
processing,
fluid dynamics, climate modeling, bioinformatics, and financial
modeling. The
TOP500 website lists the top 500 high performance computing systems
along with
their specifications and owners. The diversity of government,
scientific, and
commercial organizations present on this list illustrates the growing
prevalence
and impact of HPCS applications on modern society.
Recent initiatives in the HPCS community, such as the DARPA High
Productivity
Computing Systems program, recognize that dramatic increases in low-
level
benchmarks of processor speed and memory access times do not
necessarily translate
into high-level increases in actual development productivity. While
the machines
are getting faster, the developer effort required to fully exploit
these advances
can be prohibitive. There is an emerging movement within the HPC
community to
define new ways of measuring high performance computing systems, ways
which take
into account not only the low-level hardware components, but the
higher-level
productivity costs associated with producing usable HPC applications.
This movement
creates an opportunity for the software engineering community to apply
our
techniques and knowledge to a new and important application domain.
Furthermore, the design, implementation, development, and maintenance
of HPC
software systems can differ in significant ways from the systems and
development
processes more typically studied by the software engineering community:
- 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 HPC 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.
- "Usability" in the context of HPCS 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.
The organizing committee has put together an interesting program with
position papers that cut across a large portion of the relevant topic
space. This workshop will be highly interactive and encourage
discussion between software engineers and computational scientist (who
may not otherwise have the opportunity to meet and discuss relevant
issues).