SIAM Conference on Computational Science and Engineering (CSE17)

The CSE17 conference features a number of events related to software productivity and sustainability, as listed below.

Prerequisites

What is Reproducibility?

How to Improve Testing for CSE Software

What is CSE Software Testing?

What is Continuous Integration Testing?

What is Software Intellectual Property?

What Are Strategies for More Effective Teams?

Published November 12, 2017

Computational Science and Engineering (CSE) complement theory and experiment as a critical component of scientific discovery. CSE is indispensable for leading edge investigation and engineering design in a vast number of industrial sectors, including for example, aerospace, automotive, biological, chemical, and semiconductor technologies that all rely increasingly on advanced modeling and simulation. CSE also contributes to policy and decisions relating to human health, resources, transportation, and defense. Finally, in many new areas such as medicine, the life sciences, management and marketing (e.g. data- and stream mining), and finance, techniques and algorithms from CSE are of growing importance.

CSE is naturally interdisciplinary. Its goals concern understanding and analyzing complex systems, predicting their behavior, and optimizing processes and designs. CSE thus grows out of physical applications, while depending on computer architecture and software, and having at its core powerful algorithms. At the frontiers of CSE remain many open problems and challenges, including the verification, validation, and uncertainty quantification of computational models; the analysis and assimilation of large and complex data sets, including techniques for visualization and animation; and the design of flexible CSE software.

The SIAM CSE conference seeks to enable in-depth technical discussions on a wide variety of major computational efforts on large-scale problems in science and engineering, foster the interdisciplinary culture required to meet these large-scale challenges, and promote the training of the next generation of computational scientists.

Highlights: CSE17 Events on Productivity and Sustainability Topics

Tutorial: CSE Collaboration through Software: Improving Productivity and Sustainability

Venue: Invited tutorial at SIAM CSE17, Feb 28, 2017

Presenters: David Bernholdt (ORNL), Anshu Dubey (ANL), Mike Heroux (SNL), Alicia Klinvex (SNL), Lois Curfman McInnes (ANL)

Abstract: CSE software—crosscutting technology that connects advances in mathematics, computer science, and domain-specific science and engineering—is a foundation of sustained CSE collaboration and scientific progress. However, the need for increasingly broad functionality on ever more complex computer architectures creates daunting challenges for software development and sustainability.

This tutorial provides information on best practices in software engineering explicitly tailored for CSE. Goals are improving the productivity of those who develop CSE software and increasing the sustainability of software artifacts. We will discuss practices that are relevant for projects of all sizes, with emphasis on small teams (for example, a faculty member and collaborating students). Topics are:

  • Why Effective Software Practices Are Essential for CSE Projects
  • An Introduction to Software Licensing
  • Better (Small) Scientific Software Teams
  • Improving Reproducibility through Better Software Practices
  • Testing of HPC Scientific Software

Resources:

Minisymposium: How to Succeed with Open Source Software

Organizers: Brian M. Adams (SNL), Damon McDougall (University of Texas at Austin)

Abstract: The open source model holds great promise for CS&E software. Diverse contributions and peer reviews improve technical quality, distributed teams contribute developer horsepower, integration and testing in myriad environments improve software quality, and the open source code itself allows flexibility to tailor to new applications. Open source CS&E software fosters open, reproducible research and supports an open science process. Yet achieving truly collaborative and open software can be challenging. Representing exemplar software projects, the speakers in this session emphasize benefits and challenges of open source CS&E software, and advise on best practices to succeed in collaborative development.

Tutorial: Version Control with Git

Presenters: Randall LeVeque, University of Washington, USA; David I. Ketcheson, King Abdullah University of Science & Technology (KAUST), Saudi Arabia; Kyle T. Mandli, Columbia University

Abstract: The Git version control system is now widely used in the scientific computing community, not only for developing code (individually or collaboratively) but also for writing papers and grant proposals, sharing course materials with students and supporting group projects, and a host of other uses.

The first part of this tutorial will introduce the basic concepts of Git and show how easy it is to get started using version control for your own work, on your own computer, as a good way to back up your work, keep track of changes you've made, revert to an earlier version if needed, and improve your ability to reproduce your own earlier work.

The second part will cover more advanced concepts that are useful when using Git to collaborate with others, either privately or as part of an open source software community. We will cover branching, merging, forking, and the use of pull requests. We will also explore the tools available on GitHub, a popular collaboration site that hosts many open source projects.

It is recommended that participants first install Git on their own laptops (see https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and create a free account on GitHub (see https://github.com/).

Invited Presentation: Productive and Sustainable: More Effective CSE

Speaker: Mike Heroux, Sandia National Laboratories

Abstract: Computational Science and Engineering (CSE) is effective to the extent it contributes to overall scientific and engineering pursuits. Its contributions are most tangible when delivering concrete scientific and engineering results via modeling, simulation and analysis. At the same time, delivery of CSE results is impacted by how we develop and support the ecosystem that produced these results, including, in particular, software and people. While delivering results is the ultimate goal of our CSE efforts, the shortest path to results is often not the most productive and sustainable.

In this presentation we discuss elements that impact the effectiveness of CSE efforts, beyond just the direct activities to produce results. We discuss how processes, tools and a holistic view of efforts can lead to more effective CSE. We also discuss the importance of human factors in CSE activities, highlighting ways we can provide natural incentives toward more effective CSE.