Third International Workshop on Software Engineering for High Performance Computing Applications
Minneapolis, MS
Saturday, May 26, 2007
Co-located with ICSE 2007
Home Call for Papers Committee Resources Schedule
ATTENTION: Registration is now open through the ICSE website
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.
For more information contact Jeffrey Carver.
Last Updated on March 21, 2007 by Jeffrey Carver