• Information For
    • Computational Molecular Sciences Community
    • Environmental System Science Community
    • Exascale Computing Community
    • Scientific Libraries Community
    • Software Engineering Community
    • Community of Supercomputer Facilities and their Users
  • Contribute to BSSw
  • Receive Our Email Digest
  • Contact BSSw
  • Information For
    Computational Molecular Sciences Community Environmental System Science Community Exascale Computing Community Scientific Libraries Community Software Engineering Community Community of Supercomputer Facilities and their Users
  • Contribute to BSSw
  • Receive Our Email Digest
  • Resources

    Better

    Planning

    • Software Process Improvement
    • Software Engineering
    • Requirements
    • Design
    • Software Interoperability

    Better

    Development

    • Documentation
    • Configuration and Builds
    • Revision Control
    • Release and Deployment
    • Issue Tracking
    • Programming Languages
    • Development Tools
    • Refactoring

    Better

    Performance

    • High-Performance Computing (HPC)
    • Performance at Leadership Computing Facilities
    • Performance Portability

    Better

    Reliability

    • Testing
    • Continuous Integration Testing
    • Reproducibility
    • Debugging

    Better

    Collaboration

    • Projects and Organizations
    • Strategies for More Effective Teams
    • Funding Sources and Programs
    • Software Publishing and Citation
    • Licensing
    • Discussion and Question Sites
    • Conferences and Workshops

    Better

    Skills

    • Online Learning
    • Personal Productivity and Sustainability

    View All Resources

    • Better Planning
    • Better Development
    • Better Performance
    • Better Reliability
    • Better Collaboration
    • Better Skills
    • View All Resources
  • Blog
  • Events
  • About
    • Team
    • Policies and Code of Conduct
    • BSSw Fellowship Program
  • Home
  • Blog
  • Spreading Ideas about Better Scientific...

Spreading Ideas about Better Scientific Software

Share on LinkedIn Share on Facebook Tweet Copied! Permalink

PublishedFeb 28, 2020
Author David E. Bernholdt
TOPICS
Better Planning
Software Engineering
Better Collaboration
Projects and Organizations

A recently released report describes how the IDEAS-ECP project, a part of the U.S. Exascale Computing Project (ECP), approaches its work of fostering and advancing software productivity and sustainability for extreme-scale computational science.

Scientific computing on HPC systems is not easy. Add the challenges of the increasing diversity and rapid pace of change in computer architectures that the community is currently facing, and it gets a good deal harder. And then when we, as a community, have managed to deal with that and get some good computational science done, the expectations just seem to ratchet up. The simulations need to include more physics (coupling), with higher fidelity, on larger systems, also increasingly incorporating data analytics. And because of these increased simulation challenges, we need to use the latest bleeding-edge hardware to reach the next level of scientific goals. This is the situation faced by many in the community, but it is particularly true within ECP.

The IDEAS Productivity project, of which I am a member, began in 2014 sponsored by a partnership between the Offices of Advanced Scientific Computing Research and Biological and Environmental Research within the U.S. Department of Energy Office of Science. The project expanded in 2017 with support from the ECP to help software developers address the challenges inherent in the exascale effort. The IDEAS-ECP team recently released a report that catalogs many of their contributions to date and describes their approach to helping ECP (and other) code teams improve software productivity and sustainability. While I encourage you to read the report, I'll summarize the IDEAS approach briefly here.

Curating methodologies to improve software practices of individuals and teams

Understanding best practices in software development is fundamental to being able to help improve them. We develop, customize, curate, and disseminate these best practices. While the software development industry has many best practices to offer, scientific software development differs in important ways, so such practices often have to be tailored to the needs of the high-performance computational science community. To aid this process, we are gathering and distilling the collective understanding of scientific software development teams.

Incrementally and iteratively upgrading software practices

One of the differences in scientific software development is that, by and large, research projects are funded to generate scientific results — often, for the sponsors, the software is just a byproduct. Consequently, scientific software teams spend most of their coding effort developing new capabilities to enable new science. Thus, efforts to improve software development processes in this community need to be incremental, easily integrated alongside the team's primary feature development efforts, and showing benefits fairly quickly. Recognizing this situation, we have developed a simple, lightweight process for Productivity and Sustainability Improvement Planning (PSIP), which can help teams set goals for software process improvements, implement them, and evaluate and track their success. The PSIP process has become a primary tool for our direct engagements with code teams. And the approach is equally applicable outside of the ECP context.

Establishing software communities

To support the needs of exascale applications, the ECP ecosystem also includes a wide range of tools, libraries, programming models, and performance portablity frameworks that are being developed and enhanced for exascale. Based on experience in the original "IDEAS-Classic" project, we are helping ECP Software Technology teams design a collection of Software Development Kits (SDKs). Organized "horizontally" (i.e., slices of qualitatively similar functionality), SDKs promote software communities that can develop and implement common policies to ensure that the software components within an SDK provide the compatibility, testing, and wide deployment necessary to support the needs of the ECP applications, as described in a recent blog post.

Engaging in community outreach

In the IDEAS project, we've always recognized that we cannot change the world on our own. And that's why, from its inception, IDEAS has made community outreach a prominent feature of our approach. Our goal is to create a "virtuous cycle" in which widespread awareness of the importance of software quality and related issues within the HPC computational science and engineering community, including the Exascale Computing Project, in turn promotes sharing, discussion, and refinement of practices and resources for producing better scientific software for the benefit of the ECP as well as the broader community. Our contributions to the community take many forms. We work with people from like-minded organizations to create opportunities for technical discussions focused on the experience of software development, including minisymposia, thematic poster groups, and birds-of-a-feather sessions. We've been delivering tutorials on Better Scientific Software at major conferences and other venues for some years now. Since 2016, we've organized the Best Practices for HPC Software Developers webinar series. Recognizing that there's a lot of information on software practices "out there" already but that it can be hard to know what's useful for scientific software, we launched this web site (https://bssw.io). And we've also established the Better Scientific Software Fellowship Program to help grow the community of leaders in scientific software productivity and sustainability.

We are not alone

The IDEAS-ECP project participates in, and helps grow, a larger community of practice around the idea of high-quality. Many of these groups have been described in a recent paper and also featured in the BSSw blog, such as the US-RSE Association, MolSSI, and URSSI. We feel that this activity is important for a number of reasons. First and foremost, as with our own efforts to organize technical events around software development, the more people and organizations who are talking about scientific software development, the better it is for awareness within the larger community. Second, the members of this community have different audiences and different stakeholders and come at issues from a variety of approaches. Together, we are building a rich, diverse, and vibrant community.

Author bio

David E. Bernholdt is the Outreach Lead for the IDEAS-ECP project. He is a Distinguished R&D Staff Member and Group Leader at Oak Ridge National Laboratory (ORNL). He has leadership roles in multiple projects in the DOE Exascale Computing Project (ECP) and the Scientific Discovery through Advanced Computing (SciDAC) program. He also leads the Programming Environment and Tools area of the Oak Ridge Leadership Computing Facility (OLCF). His research interests center on making it easier and more productive to create and use computational science and engineering software on the largest high-performance computer systems.

Comment

More on Software Engineering and Projects and Organizations

Useful Practices for Software Engineering on Medium-Sized Distributed Scientific Projects

Published Feb 25, 2021

By Keith Beattie and Dan Gunter

When Not to Use Agile in Scientific Software Development

Published Feb 12, 2021

By Anshu Dubey

The RSE-HPC-2020 Workshop: Creating Community, Building Careers, Addressing Challenges

Published Oct 26, 2020

By Charles Ferenbaugh, Sandra Gesing, Simon Hettrick, and Daniel S. Katz

A Community of Practice around Peer Review for Long-Term Research Software Sustainability

Published Aug 28, 2020

By Karthik Ram, Carl Boettiger, Scott Chamberlain, Noam Ross, Maëlle Salmon, and Stefanie Butland

The Lazy Approach to Developing Scientific Research Software

Published Jun 16, 2020

By Carl Simon Adorf and Vyas Ramasubramani

Making Myself Better: What Craftspeople Can Teach Us about Software

Published May 25, 2020

By Wolfgang Bangerth

Working Remotely: The Spack Team

Published May 16, 2020

By Todd Gamblin and Elaine M. Raybourn

Research Software Engineer Stories

Published Apr 24, 2020

By Vanessasaurus

Maintainers Drive Software Sustainability

Published Apr 14, 2020

By Steven Smith

Scientific Software Projects and Their Communities

Published Mar 23, 2020

By Rene Gassmoeller

US Research Software Engineer (US-RSE) Association

Published Jan 15, 2020

By Ian Cosden, Chris Hill, Sandra Gesing, and Charles Ferenbaugh

Hello CSE World

Published Dec 05, 2019

By Heather Switzer, Elsa Gonsiorowski, PhD, and Mark C. Miller

Research Software Engineer: A New Career Track?

Published Jun 14, 2018

By Chris Richardson

Can You Teach an Old Code New Tricks?

Published Mar 26, 2018

By Charles Ferenbaugh

NSF-Sponsored 2021 BSSw Fellows

Published Mar 16, 2021

By Hai Ah Nam

Better Scientific Software: 2020 Highlights

Published Jan 07, 2021

By Rinku Gupta

Introducing the 2021 BSSw Fellows

Published Dec 16, 2020

By Hai Ah Nam

Applications Open for the 2021 BSSw Fellowship Program

Published Aug 19, 2020

By Hai Ah Nam

2019 BSSw Fellows Guide Developers through Each Stage of the Scientific Software Lifecycle

Published Jul 17, 2020

By Hai Ah Nam, Rene Gassmoeller, Ignacio Laguna, Tanu Malik, and Kyle Niemeyer

Better Scientific Software: 2019 Highlights

Published Jan 03, 2020

By Rinku Gupta

Introducing the 2020 BSSw Fellows

Published Dec 13, 2019

By Hai Ah Nam

Software Sustainability in the Molecular Sciences

Published Nov 14, 2019

By Theresa Windus and T. Daniel Crawford

Research Software Science: A Scientific Approach to Understanding and Improving How We Develop and Use Software for Research

Published Sep 25, 2019

By Mike Heroux

Data-driven Software Sustainability

Published Sep 18, 2019

By Daniel S. Katz

Applications Open for 2020 BSSw Fellowship Program ... Q&A Webinar on Sept 20, 2019

Published Sep 04, 2019

By Hai Ah Nam

Building Community through Software Policies

Published Aug 12, 2019

By Piotr Luszczek and Ulrike Meier Yang

2018 BSSw Fellows Tackle Scientific Productivity Challenges

Published Mar 28, 2019

By Hai Ah Nam

Accelerating Scientific Discovery with Reusable Software: Special issue of IEEE CiSE

Published Mar 19, 2019

By Scott Lathrop

Better Scientific Software: 2018 Highlights

Published Jan 04, 2019

By Lois Curfman McInnes, David E. Bernholdt, and Mike Heroux

Introducing the 2019 BSSw Fellows

Published Dec 11, 2018

By David E. Bernholdt, Mike Heroux, and Lois Curfman McInnes

SC18: Does That Stand for “Software Conference”?

Published Nov 08, 2018

By David E. Bernholdt

Building Connections and Community within an Institution

Published Oct 26, 2018

By Greg Watson and Elsa Gonsiorowski, PhD

Applications Open for 2019 BSSw Fellowship Program ... Q&A Webinar on Sept 21, 2018

Published Sep 10, 2018

By David E. Bernholdt, Mike Heroux, and Lois Curfman McInnes

URSSI: Conceptualizing a US Research Software Sustainability Institute

Published Jul 30, 2018

By Daniel S. Katz, Jeff Carver, Sandra Gesing, Karthik Ram, and Nic

Scaling Small Teams to a Team of Teams: Shared Consciousness

Published Apr 17, 2018

By Elaine M. Raybourn and David Moulton

BSSw Fellowship Activity: Promoting Software Citation

Published Mar 13, 2018

By Daniel S. Katz

Call for Papers ... Accelerating Scientific Discovery with Reusable Software

Published Feb 26, 2018

By Scott Lathrop

Introducing the 2018 BSSw Fellows

Published Feb 05, 2018

By David E. Bernholdt, Mike Heroux, and Lois Curfman McInnes

New FAQ List for BSSw Fellowship Program ... Applications Due by Jan 5, 2018

Published Dec 13, 2017

By Mike Heroux and Lois Curfman McInnes

Applications Open for New BSSw Fellowship Program ... Q&A Webinar on Dec 12, 2017

Published Dec 01, 2017

By Mike Heroux and Lois Curfman McInnes

BSSw Site Launch at SC17 ... Contribute to Better Scientific Software!

Published Nov 13, 2017

By David E. Bernholdt, Mike Heroux, and Lois Curfman McInnes

Pending BSSw Site Launch at SC17

Published Sep 27, 2017

By Lois Curfman McInnes

logo Better Scientific Software
  • BSSw Fellowship Program
  • Policies
  • Site Contributors
  • Contact BSSw
  • Receive Our Email Digest
  • Follow Our RSS Feed

Copyright © 2021 Better Scientific Software under MIT License

United States Department of Energy Office of Science National Nuclear Security Administration Exascale Computing Project