Shared Workshop Google Document: http://goo.gl/aCr2XnThis workshop is concerned with identifying and applying appropriate software engineering (SE) tools and practices (e.g., code generators, static analyzers, validation + verification (V&V) practices, design approaches, and maintenance practices) to support and ease the development of Computational Science & Engineering (CSE) software for High Performance Computing (HPC). Specifically:
- CSE applications, which include, large parallel models/simulations of the physical world running on HPC systems.
- CSE applications that utilize HPC systems (e.g., GPUs computing, compute clusters, or supercomputers) to manage and/or manipulate large amounts of data.
- Risks due to the exploration of relatively unknown scientific/engineering phenomena;
- Constant change as new information is gathered;
- Data dependencies within the software;
- The need to identify the most appropriate parallelization strategy for CSE algorithms;
- The presence of complex communication among HPC nodes that could degrade performance;
- The need for fault tolerance and task migration mechanisms to mitigate the need to restart time-consuming computations due to software or hardware errors;
- Results are often unknown when exploring novel science or engineering areas and algorithms;
- Popular tools often do not work on the latest HPC architectures; they need to be tuned to handle many threads executing at the same time.>/li>
- Failure of components within running systems is expected due to system size;
- Long system lifespans necessitate porting across multiple platforms
In the 2013 edition of the workshop, the discussion focused around a number of interesting topics, including: bit-by-bit vs. scientific validation and reproducibility. In addition, the previous workshop in this area have focused discussions on topics that included
- The unique characteristics of CSE software that affect software development choices;
- The appropriate context dimensions to describe CSE software;
- The major software quality goals for CSE software;
- Crossing the communication chasm between SE and CSE;
- Effectively involving scientists in software development and training;
- Measuring the impact of SE on scientific productivity;
- SE tools and methods needed by the CSE community;and
- How to effectively test CSE software.
Last Updated on August 11, 2014 by Jeffrey Carver