Thursday 17 November 2016, 10:30am-12:00pm, Room 155-A
[SC16 program page]
Description: Software engineering (SWE) for computational science and engineering (CSE) is challenging, with more sophisticated, higher fidelity simulation of larger and more complex problems involving larger data volumes, more domains, and more researchers. Targeting high-end computers multiplies these challenges. We invest a great deal in creating these codes, but we rarely talk about that experience. Instead we focus on the results. Our goal is to raise awareness of SWE for CSE on supercomputers as a major challenge and to begin the development of an international “community of practice” to continue these important discussions outside of annual workshops and other “traditional” venues.
Testing of HPC Scientific Software
Monday 14 November 2016, 1:30pm-5:00pm, Room 255-D
[SC16 program page] [Promotional video]
Description: Testing at various granularities has recently acquired an urgency in high-performance scientific computing communities because of the need for refactoring caused by changing platform architectures. Projects that need to refactor are often lacking in the necessary expertise and resources to acquire such expertise. Testing is also critical for producing credible results and for code maintenance. The IDEAS (www.ideas-productivity.org) scientific software productivity project aims toward increasing software productivity and sustainability with participants from many projects that define the state of practice in software engineering in the HPC community. We offer a tutorial that distills the combined knowledge of IDEAS team members in the area of scientific software testing. The tutorial will be useful to all projects that recognize the importance of testing in general and will provide tremendous help to projects in need of refactoring their software in particular.
Sunday 13 November 2016, 2:000pm-5:00pm, Room 251-E
[SC16 program page]
Description: Researchers are increasingly using HPC, including GPGPUs and computing clusters, for computational science and engineering (CSE) applications. Unfortunately, when developing HPC software, developers must solve reliability, availability, and maintainability problems in extreme scales, understand domain specific constraints, deal with uncertainties inherent in scientific exploration, and develop algorithms that use computing resources efficiently. Software engineering (SE) researchers have developed tools and practices to support development tasks, including: validation and verification, design, requirements management, and maintenance. HPC CSE software requires appropriately tailored SE tools/methods. The SE-HPCCSE workshop addresses this need by bringing together members of the SE and HPC CSE communities to share perspectives, present findings from research and practice, and generate an agenda to improve tools and practices for developing HPC CSE software. This workshop builds on the success of the 2013-2015 editions.
Software Practices in Computational Science Communities – an Overview
Thursday 13 October 2016, 2:00pm-3:00pm PT
[webinar web page]
Anshu Dubey, Argonne National Laboratory
Scientific code developers typically adopt software processes derived from the mainstream (non-scientific) community when continuing without them becomes impractical. However, many software best practices need modification and/or customization, partly because the codes are used for research and exploration, and partly because of the combined funding and sociological challenges. This webinar will describe the lifecycle of scientific software and important ways in which it differs from other software development. We will provide a compilation of software engineering best practices that have generally been found to be useful by science communities, and how they are evolving as the needs of their communities grow.