Read about the 2020 BSSw Fellows and their contributions to the BSSw community!
Better Scientific Software (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.
Despite the challenges created by the COVID-19 pandemic that created obstacles toward traditional scientific interactions, our BSSw Fellows were able to rethink and be flexible on how to impact the community with their great energy and contributions.
The 2020 BSSw Fellows have used their skills to create tutorials, webinars, and tools to guide developers through various stages of the scientific software lifecycle. As shown above, they spoke about this work during the 2021 'Virtual' Annual Meeting of the Exascale Computing Project (ECP). Here's more about what they have been up to.
Advancing practices for effective software testing, an essential activity to build error-free and trustworthy software.
BSSw Fellow Nasir Eisty developed a hands-on tutorial entitled Automatic Testing in Scientific Software. The tutorial contains information on challenges, barriers, potential solutions, and unsolved problems faced while testing scientific software, along with hands-on exercises. The tutorial brings valuable practices to the scientific software community to help developers produce correct and reliable software. Learn more at:
HPC Best Practices Webinar: Testing and Code Review Practices in Research Software Development Testing Non-Deterministic Research Software Use of Software Metrics in Research Software Automatic Testing for Scientific Software Development, SIAM CSE21 Minisymposium: Better Scientific Software Fellowship
Nasir is an Assistant Professor in the Computer Science Department at Boise State University. He was a BSSw Fellow while a graduate student in the Software Engineering research lab in the Department of Computer Science at the University of Alabama under the supervision of Dr. Jeffery Carver. His research focuses on the development of software engineering techniques and tools to improve the quality and maintainability of research software.
Perspectives on the BSSw Fellowship Program: The BSSw Fellowship Program focuses on improving software engineering practices in scientific software. The fellowship has provided opportunities for me to interact with members of the ECP community and others at U.S. Department of Energy laboratories in a way that would not be possible otherwise. The fellowship even helped me get an opportunity to work at Los Alamos National Lab. Being a software engineering researcher for scientific software, I was very excited to receive this award in recognition of my work in promoting software quality activities in the scientific software development community. I have been in the academic job market during the past couple of years, where I have had numerous interactions with people asking me about the BSSw Fellowship Program. People were excited about it. The BSSw Fellowship Program has definitely helped me in my research and collaboration in different ways and has given me recognition. I would like to keep contributing to the community and make positive impacts by bringing valuable software engineering practices to the scientific software development lifecycle.
Advice for new (prospective) BSSw Fellows: Try to understand the goals and the bigger picture of the BSSw Fellowship Program. Do not wait to interact with the community if you see an opportunity to collaborate and contribute. When you apply, make sure to emphasize the positive impacts you would bring through the activity you are proposing.
Teaching approaches for agile scientific software development, with emphasis on outreach to underrepresented groups.
BSSw Fellow Damian Rouson developed and taught agile scientific software development tutorials in settings that reach underrepresented groups. The only prerequisites were familiarity with a Linux shell and a text editor. A related, novel aspect of the tutorials is the integration of a professional development activity using agile practices. Learn more at:
Increasing Productivity by Broadening Participation in Scientific Software Communities Remote Work Panel Series: How Does Remote Work Impact Creativity and Innovation? Introducing Agile Software Development to Underrepresented Groups, SIAM CSE21 Minisymposium: Better Scientific Software Fellowship
Damian is the group leader of the Computational Research Division’s Computer Languages & Systems Software group at Berkeley Lab. His fellowship work was conducted when he was a research engineer and member of the Advisory Board of Sustainable Horizons Institute. He has extensive experience in software design and development for multiphysics modeling, including classical, quantum, and magnetohydrodynamic turbulence and multiphase flow. Damian also is the founder and president of the Sourcery Institute.
Perspectives on the BSSw Fellowship Program: The BSSw Fellowship Program has provided the opportunity for me to expand my thinking about teaching software engineering in a way that reaches a much broader audience. My teaching activities in the decade prior to the fellowship focused almost exclusively on teaching software engineering in modern Fortran, a language that remains widely used in high-performance computing in fields that embraced computing early. Through the fellowship, I developed strategies for teaching agile software development without the software development: my collaborators Dr. Mary Ann Leung and Brad Richardson substituted Markdown/LaTeX document generation for software development. This enabled us to attract participants across computational science and engineering disciplines without requiring a background in any specific programming language. As one aim of the fellowship, we taught courses in settings with a large representation of people from otherwise underrepresented demographics in computational science and engineering. Coming full circle, the fellowship also benefited my primary audience: Brad and I have now used the materials developed under the fellowship in a course taught for computational scientists and engineers who use modern Fortran. As a fortunate follow-on to this work, Mary Ann has now won a BSSw fellowship for the current year.
Advice for new (prospective) BSSw Fellows: I encourage you to see the fellowship as an exciting opportunity to move in a new direction. Try something that stretches your wings and brings you into new territory that might be difficult to explore under other funding. Also, look for ways to collaborate with people who are new to your network and engage audiences that might traditionally have less access to the cutting-edge work you’re proposing.
Improving the correctness of numerical software and the effective use of mixed floating-point precision for better performance.
BSSw Fellow Cindy Rubio-González has organized events and developed educational materials on the correctness of numerical software and improving performance through effective use of mixed floating-point precision. Her materials include the use and evaluation of program-analysis techniques to improve the reliability and performance of numerical software. Learn more at:
HPC Best Practices Webinar: Scalable Precision Tuning of Numerical Software Improving the Reliability and Performance of Numerical Software, SIAM CSE21 Minisymposium: Better Scientific Software Fellowship
Cindy is an Associate Professor of Computer Science at the University of California, Davis. Her research spans the areas of programming languages, software engineering and high-performance computing, with a focus on program analysis for automated bug finding and program optimization. She is particularly interested in the reliability and performance of systems software and scientific applications. Cindy is a recipient of a DOE Early Career Award in 2019 and an NSF CAREER Award in 2018.
Perspectives on the BSSw Fellowship Program: One of my goals is to develop program-analysis and testing tools to improve the reliability and performance of scientific software. As part of this year’s BSSw Fellowship Program, I focused on disseminating techniques for automated mixed-precision tuning and software testing of numerical software. In particular, I focused on developing materials that can be used in the classroom or as separate educational modules for those interested in learning about existing efforts in the topics of precision tuning and software testing. The project is ongoing, and I hope that as we return to in-person activities, we will present these materials to a broader audience and continue to improve them. Being a BSSw Fellow has been an invaluable experience. First, the BSSw program puts emphasis on building a diverse community that encompasses all aspects of scientific software. I found this to be a very unique opportunity to connect, share and learn from others for whom my work can make a difference. Second, all BSSw Fellows and mentors are passionate about building better scientific software. I am honored to belong to this group, which has empowered me to continue my work on improving software reliability and performance. Finally, my project’s goal has allowed me, and will continue to let me teach others about tools that can have an impact on writing better scientific software, and also teach me about the real-world requirements that large-scale applications pose to analysis tools.
Advice for new (prospective) BSSw Fellows: One of the strengths of the BSSw Fellowship Program is providing the opportunity to strengthen your professional network. Unfortunately, because of the pandemic, there were not as many opportunities to meet in person and make visits this past year. However, I strongly recommend future BSSw Fellows to make as many connections and connect in person, if possible!
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. We will begin accepting applications for 2022 BSSw Fellowships during mid-August 2021. Register for the BSSw mailing list to receive information.
Author bio
Hai Ah Nam is coordinator of the BSSw Fellowship Program, a member of the IDEAS-ECP team, and a researcher in the Advanced Technologies Group at NERSC/LBNL. Her scientific career spans four DOE national laboratories (LLNL, ORNL, LANL, LBNL), where she has contributed to work in low-energy nuclear physics, computational physics, high performance computing, and research scientific software development. Hai Ah’s research interests include emerging technologies for the HPC ecosystem, with a focus on AI/ML capabilities. 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.