Many of us assume that once we have written a new piece of software, presented it at conferences, published in peer-reviewed journals, and made the code open source, people will use it. All too often, however, the truth is the opposite. The software doesn’t get used -- or, worse, someone spends precious time reinventing the idea.
Ironically, this problem arises even within a single institution. Anyone who has spent time in a large organization can attest to the fact that finding out what other teams are working on can be difficult. For projects involving software development, this situation can often mean a missed opportunity, particularly when a project is in its startup phase and could benefit from existing expertise, code, or algorithms developed by other teams. This problem can be exacerbated by the security-conscious environments at the national laboratories.
Two DOE labs, Oak Ridge and Lawrence Livermore, have started events to help software developers overcome these difficulties and meet others working on high-performance software projects.
ORNL Software Expo
Oak Ridge National Laboratory is using Software Expos as one way to overcome some of the communication barriers within the institution. The initiative -- started in 2014 by Jay Jay Billings, leader of the Research Software Engineering group -- provides a venue where researchers can share experiences and discuss their projects.
The most recent of these expos, held in May 2018, featured three days of tutorials, hackathons, poster sessions, a keynote address, and Birds of a Feather sessions. This year's expo brought together a diverse group of scientific software developers, software engineers, and domain scientists from across the Laboratory, in a venue that encouraged discussion of ideas and issues, and allowed participants to showcase their accomplishments. For example, one panel focused on ways to promote software-related activities and communication within the Laboratory, and the poster session allowed attendees to delve more deeply into topics of particular interest. A wide variety of tutorials also allowed less-experienced participants enhance their skills across a broad range of topics. The event wrapped up with a four-hour session on Amazon Web Services to provide ORNL researchers with the opportunity to get first-hand experience in leveraging cloud services to increase developer productivity.
This type of event provides an excellent means of enhancing communication across the Laboratory. The Expo is small enough to feel personable, yet diverse enough to expose participants to a variety of projects that they may have known little about yet are relevant to their own work.
LLNL Developer Day
At Lawrence Livermore National Laboratory, Kyle Dickerson spearheaded the Developer Day initiative to bring software developers together. Begun in 2017, Developer Day was designed to reduce the duplication of effort between teams across the Laboratory working on similar projects.
This year’s Developer Day was held in August 2018. The morning featured a series of “lightning talks” -- three-minute overviews of projects from around the Lab -- and panel sessions, while the afternoon provided deeper insight into particular topics through a series of four "Deep Dive" sessions.
Developer Day aims to enable software developers at the Laboratory discover new methods and share solutions that will improve their day-to-day work. Developer Day also seeks to familiarize early-career staff and interns with the computational resources, strategies, and opportunities available at Lawrence Livermore.
"The success of Developer Day is measured by the connections that the participants make to each other," said Elsa Gonsiorowski, one of the organizers of this year's event.
Bridging the Great Divide
The examples from these two national laboratories provide a common message:
Events that highlight collaborative software projects, like the ORNL Software Expo and LLNL Developer Day, can break through communication barriers and build community within an institution.
We see this message as an encouragement to other institutions to consider planning similar events and approaches. Software development need not -- indeed should not -- be done in isolation. Sharing ideas and projects can help bridge the gap that may otherwise occur within an institution.
Gregory Watson is a Senior Research Scientist in the Research Software Engineering Group at Oak Ridge National Laboratory. He completed his Ph.D. in Computer Science in 2000 from Monash University. Dr. Watson's research interests include software engineering practices, development environments, programming tools, and modeling and simulation tools for high performance and scientific computing. He is founder of the Eclipse Parallel Tools Platform, and project leader of the Eclipse Science Top Level Project.
Elsa Gonsiorowski is an HPC I/O Specialist working at Lawrence Livermore National Laboratory. She graduated with her Ph.D. in Computer Science in 2016 from Rensselaer Polytechnic Institute. Elsa works on a number of open source, system software tools to support HPC users as they manage files across an increasingly complex storage hierarchy. She has a passion for useful documentation and CMake.