The LLNL Computing directorate is in the business of making software; it’s right there in the name! Making that software though takes many shapes and there are a variety of approaches and considerations to be made, from the benign (Should I use version control? Which one? What tools are available to me?), to the opinionated (Where should I host the code? What language should I use? Should I release this code as open source? How do I manage collaborators to my project?), to the hotly debated (What Git workflow should I use? What open source license should I use?).
There are many approaches to software development that are team specific (agile vs waterfall, open source vs inner source vs limited distribution, etc) but there are also common (and unique) threads here at LLNL across projects, customers, and sponsors.
This talk will provide an overview of the landscape here at LLNL and show where to go to find more information. It will also specifically provide the annual update on our ongoing open source efforts, as teased at Bruce Hendrickson’s May 2019 Computing All Hands.
So, if you’re curious about how to start your next big software project and really get it going, this is the talk for you!
This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-
AC52-07NA27344. Lawrence Livermore National Security, LLC
Software Engineering 101:
I have some code! … Now what?
§ Computer Engineer
— June 2010 – June 2012, Engineering
— June 2012 – Nov 2015, Global Security
— Nov 2015 – Present, Livermore Computing
• Nov 2016 – Present, Cyber Assessment Coordinator
• Apr 2018 – Present, Computing AOISSO
§ ISCP: Software Sustainability and Outreach
Who Am I ?
All the Operating Systems!
All the Editors!
All the Languages!
Means All Package Managers!
Software Technologies lay the foundation for ECP simulations
Filesystems & I/O
Parallel Programming Models
Meshing / Finite Elements
What is version control?
Version Control Tools
Fear of Git
If that doesn't fix it, git.txt contains the
phone number of a friend of mine who
understands git. Just wait through a few
minutes of 'It's really pretty simple, just
think of branches as...' and eventually
you'll learn the commands that will fix
Good Commit Messages
Merge branch 'asdfasjkfdlas/alkdjf' into
LC GitLab (Pilot)
In the works!
Science & Technology Review – Jan/Feb 2018
“Our large collection of software is a
precious Laboratory asset, one that
benefits both Lawrence Livermore, and in
many cases, the public at large.”
- Bruce Hendrickson
Associate Director, Computation
2019 R&D 100 Award Winners
LLNL Open Source Presence
LLNL Open Source Engagement
LLNL Open Source Activities
LLNL Open Source Languages and Topics
— Focus on achieving competency in Sphinx+RtD
— Create a training curriculum
— Work with mentors who will advise, provide iterative feedback, and help integrate an
editorial process into the OSS development workflow
— Successfully build and update documentation via Sphinx+RtD for a real repo
— Publish “best practices” and “getting started” documentation on the OSS portal
— Establish a path forward for ongoing FY20 support, training of other editors, learning
additional platforms (e.g., Doxygen), etc.
Idea Days Funding ($9K) – Holly Auten
Integrating an Editorial Process into OSS Development
Holly is looking for a repo(s) with existing documentation to practice on!
Pull Requests Welcome!
New Open Source Policy & Guidelines (May 2019)
— eSoftware: https://esw.llnl.gov
• No more DVDs!
• Getting ready for phase 2 development
— Expedited Approvals
• Specific broad subject areas
• Not an “application” that could have IP value
• Not part of a CRADA or other IP agreement
• Sponsor provided blanket approval for OSS
– Currently: NNSA ASC & DOE Office of Science
• Approved open source license
– MIT, BSD-3, LGPL-2.1, GPL-2.0 are easiest
— Email to: [email protected]
— Provide details about the project:
• Unclassified? Export Controlled?
• Funding source (sponsor) OK with open source?
• Approved License?
• Requires a CLA?
• Conflict of Interest?
• Business need?
• Contributions are “incremental” ?
In the works!
This document was prepared as an account of work sponsored by an agency of the United States government. Neither the United
States government nor Lawrence Livermore National Security, LLC, nor any of their employees makes any warranty, expressed or
implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus,
product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific
commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or
imply its endorsement, recommendation, or favoring by the United States government or Lawrence Livermore National Security, LLC.
The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States government or
Lawrence Livermore National Security, LLC, and shall not be used for advertising or product endorsement purposes.
Leave things better than you found them.