• 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
  • 2019 BSSw Fellows Guide Developers through Each Stage of...

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

Share on LinkedIn Share on Facebook Tweet Copied! Permalink

2019 BSSw Fellows, 2020 BSSw Fellows and 2020 BSSw Honorable Mentions at the Exascale Computing Project Annual Meeting

PublishedJul 17, 2020
Author Hai Ah Nam, Rene Gassmoeller, Ignacio Laguna, Tanu Malik, and Kyle Niemeyer
TOPICS
Better Collaboration
Projects and Organizations

BSSw Fellowships provide resources and community support to those who foster and promote practices, processes, and tools to improve developer productivity and software sustainability of scientific codes.

During their tenure, 2019 BSSw Fellows have used their skills to create tutorials, webinars, and tools to guide developers through various stages of thee scientific sofware lifecycle. Here's more about what they have been up to.

Fellows guide us through the social challenges of scientific software projects.

Social skills matter for the development of user and developer communities.

BSSw Fellow Rene Gassmoeller created a series of guides and tutorials about managing the community around a scientific software project. Targeted at current and prospective software maintainers and community leaders, the tutorials teach this knowledge in small modules that are accessible to scientists. Thus, if you are currently leading or maintaining a scientific software project, or thinking about starting one, Rene's guides will help you navigate your scientific software project from inception to long-term sustaintability. Learn more at HPC Best Practices Webinar: Discovering and Addressing Social Challenges in the Evolution of Scientific Software Projects and Scientific Software Projects and their Communities.

 

Rene is an Assistant Project Scientist at The University of California, Davis's Earth and Planetary Sciences department.

Perspectives on the BSSw Fellowship Program: When I started interacting with scientific software outside of my personal code, I realized that scientists who develop software face similar challenges across disciplines, and that a lot of these challenges have not been adequately solved so far. But I also noticed how much I could learn from the strategies that other maintainers have already developed. The BSSw Fellowship Program has given me the opportunity to extend these interactions and to make connections into fields I do not usually interact with. I hope my fellowship project has raised the awareness of how social skills matter for the development of user and developer communities around scientific software, and has some positive impact by helping maintainers navigate the social challenges of scientific software.

Advice for new (prospective) BSSw Fellows: Plan on how to fit your fellowship project into your regular work! The BSSw Fellowship Program offers completely new perspectives and opportunities for collaborations, and you can gain valuable insights by connecting your discipline and background with the diverse community of BSSw.

Fellows improve the reliability of scientific software through analyzing and debugging floating-point software.

There is still much work to be done to make scientific applications more reliable in terms of correctness and numerical consistency.

BSSw Fellow Ignacio Laguna developed tutorials on tools to debug and improve the reliability of scientific applications, with emphasis on floating-point software defects that are difficult to debug. Scientific software relies heavily on floating-point arithmetic, which replaces real numbers by finite precision numbers. Approximations occur at all levels, and programmers must deal with exceptional cases and sometimes hard to debug scenarios. With larger and more complex systems, e.g., using accelerators that do not fully implement the IEEE 754 floating-point standard, the need for such tools is becoming increasingly important to ensure the reliability of future scientific software. The tutorials present tools that can be used today (as opposed to tools that are in the research phase) to help programmers detect and fix abnormal floating-point behavior in GPUs, isolate compiler optimizations that can perturb the program output and/or trade performance for accuracy, understand the sensitivity of floating-point operations in the code, and possibly other issues. Learn more at HPC Best Practices Webinar: Tools and Techniques for Floating-Point Analysis and Tutorial on Floating-Point Analysis Tools.

 

Ignacio is a Computer Scientist at The Center for Applied Scientific Computing at Lawrence Livermore National Laboratory.

Perspectives on the BSSw Fellowship Program: My goal is to develop tools that impact real users working on production applications. I want to help programmers make their code more reliable and more efficient, not only in current HPC systems, but also on future systems. I wanted to become a BSSw Fellow to the make the community more aware of the importance of software reliability, correctness, and numerical reproducibility in scientific software. As a result of my project, I have been able to connect to a larger community of developers and potential users for my tools. The tutorials I co-organized were presented in several venues and some of the tools gained more interest from the community. There is still a lot to be done to make scientific applications more reliable in terms of correctness and numerical consistency. However, the BSSw fellowship enabled the dissemination of new ideas and tools to improve the current situation.

Advice for new (prospective) BSSw Fellows: Plan as much as possible. My project was a tutorial. I learned good tutorials consume a significant amount of time in preparation and testing.

Fellows reduce technical debt in scientific software development using reproducible containers.

Technical debt is not necessarily bad, but unless paid off promptly it compounds, leading to increased costs, hidden debt, and irreproducible results, ultimately leading to abandoned ideas and reduced rates of innovation.

BSSw Fellow Tanu Malik developed activities to promote and disseminate the concept of technical debt among relevant communities. Experiments in systems research are challenging to reproduce; researchers have to choose between pursuing a fast-paced research agenda and developing well-organized, sufficiently-documented, and easily-reproducible systems. Like incurring fiscal debt, there are often tactical reasons to take on technical debt—such as deferring documentation, organization, refactoring, and unit tests when pursuing a new idea or meeting a conference deadline. Such debt is not necessarily bad, but unless paid off promptly, it compounds, leading to increased costs, hidden debt, and irreproducible results, ultimately leading to abandoned ideas and reduced rates of innovation. Her work focuses on dissemination of methods, tools, and environments in which experimentation and publication of results may accrue technical debt, but in which automated tools can be employed at any stage to pay off the debt, without passing it on to other involved parties.

 

Tanu is an Assistant Professor at DePaul University's School of Computing.

Perspectives on the BSSw Fellowship Program: The BSSw Fellowship is a prestigious fellowship sponsored by the Department of Energy, which primarily focuses on high-impact ideas for scientific software productivity. The fellowship aims to bring together researchers in this emerging area and is very attractive. The fellowship has provided me with opportunities to connect with people working in containers in high-performance computing (HPC), and researchers who regularly face and solve performance-related bugs. I have learned about several new tools that are rapidly becoming part of a scientist’s data life cycle and existing gaps. I would like to positively impact the community by improving the scientific life cycle through methods from our project.

Advice for new (prospective) BSSw Fellows: The BSSw Fellowship provides a tremendous opportunity to connect with a diverse and very technical community. It is very important to understand the problems faced and position your work within the context of the existing work. Engage, connect, and find productivity pain-points.

Fellows immerse you in software development best practices.

We all benefit from developing more trustworthy, reusable, and sustainable scientific software.

BSSw Fellow Kyle Niemeyer condensed and focused his 10-week course for Oregon State University graduate students on Software Development for Engineering Research into reusable bootcamp modules. The modules include hands-on lessons on version control, peer code review, open-source licensing and copyright, software and data citation, documentation, testing, parallel computing, and reproducible workflows. Kyle plans to deliver the workshop in the combustion and reacting-flows modeling community, and to make the modules openly available to the broader community. By educating researchers on both the importance of best practices, and then showing them in a hands-on fashion how to employ such tools, his efforts will help multiple research communities develop more trustworthy, reusable, and sustainable scientific software. Learn more at Research Software Development Modules and URSSI Winter School.

 

Kyle is an Assistant Professor at Oregon State University's School of Mechanical, Industrial, and Manufacturing Engineering.

Perspectives on the BSSw Fellowship Program: My goal was (is) to develop modules for helping train researchers in best practices for software development, picking up after introductory lessons created by groups such as the Carpentries. I wanted to become a BSSw Fellow to help support the development of resources for teaching practical software development skills to researchers, particularly graduate students. This work will necessarily continue and evolve past my fellowship period, but the fellowship has helped me develop these resources and better connect with folks in the scientific software community.

Advice for new (prospective) BSSw Fellows: Engage early and often with the BSSw/ECP team, and by extension researchers at the national laboratories. (Also, keep track of time. A year flies by quickly!)

Learn more about the BSSw Fellowship program

BSSw Fellows are selected annually based on an application process that includes the proposal of a funded activity that promotes better scientific software. See more about the BSSw Fellowship Program and work under way by the 2020 BSSw Fellows. We will begin accepting applications for 2021 BSSw Fellowships during mid-August 2020. Register for the BSSw mailing list to receive information.

About the Photo

Pictured above are members of the BSSw Fellows community who attended the 2020 Annual Meeting of the DOE Exascale Computing Project. Left to right: Tanu Malik, Damian Rouson, David Rogers, Nasir Eisty, Kyle Niemeyer, Cindy Rubio-Gonzales, Rene Gassmoeller, David Boehme, Ignacio Laguna, Sumana Harihareswara, and Ivo Jimenez.

Author bio

Hai Ah Nam is coordinator of the BSSw Fellowship Program, a member of the IDEAS-ECP team, and a computational physicist at Los Alamos National Laboratory. Her background includes computational low-energy nuclear physics, large-scale scientific computing, and high-performance computing. She is leading LANL's Center of Excellence activities, helping improve critical NNSA Advanced Simulation and Computing (ASC) codes for advanced HPC architectures. She is an advocate for developer productivity and software sustainability and has been one of the organizers of the DOE Performance, Portability and Productivity Annual Meetings since 2015.

Comment

More on Projects and Organizations

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

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

Applications Open for the 2021 BSSw Fellowship Program

Published Aug 19, 2020

By Hai Ah Nam

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

Scientific Software Projects and Their Communities

Published Mar 23, 2020

By Rene Gassmoeller

Spreading Ideas about Better Scientific Software

Published Feb 28, 2020

By David E. Bernholdt

US Research Software Engineer (US-RSE) Association

Published Jan 15, 2020

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

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

Research Software Engineer: A New Career Track?

Published Jun 14, 2018

By Chris Richardson

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 © 2020 Better Scientific Software under MIT License

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