Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Computing 101 - Software Engineering

Ian Lee
November 12, 2019

Computing 101 - Software Engineering

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!

Ian Lee

November 12, 2019
Tweet

More Decks by Ian Lee

Other Decks in Technology

Transcript

  1. LLNL-PRES-796969
    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?
    Computing 101
    Ian Lee
    [email protected]
    2019-11-12

    View Slide

  2. 2
    LLNL-PRES-796969
    § 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
    — GitHub.com/LLNL
    — software.llnl.gov
    — dev.llnl.gov
    § Atlassian.llnl.gov
    Who Am I ?

    View Slide

  3. 3
    LLNL-PRES-796969
    All the Operating Systems!

    View Slide

  4. 4
    LLNL-PRES-796969
    All the Editors!

    View Slide

  5. 5
    LLNL-PRES-796969
    All the Languages!

    View Slide

  6. 6
    LLNL-PRES-796969
    Means All Package Managers!

    View Slide

  7. 7
    LLNL-PRES-796969
    Software Technologies lay the foundation for ECP simulations
    OpenMPI
    MPICH
    Kokkos
    RAJA
    Spack
    Filesystems & I/O
    Resource Managers
    Parallel Programming Models
    MFEM
    CHOMBO
    Meshing / Finite Elements
    Scientific Visualization
    Packaging/Build
    Parallel Solvers

    View Slide

  8. 8
    LLNL-PRES-796969
    What is version control?
    http://smutch.github.io/VersionControlTutorial/

    View Slide

  9. 9
    LLNL-PRES-796969
    Version Control Tools
    GNU RCS

    View Slide

  10. 10
    LLNL-PRES-796969
    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
    everything.
    https://xkcd.com/1597/

    View Slide

  11. 11
    LLNL-PRES-796969
    Good Commit Messages
    Merge branch 'asdfasjkfdlas/alkdjf' into
    sdkjfls-final
    https://xkcd.com/1296/

    View Slide

  12. 12
    LLNL-PRES-796969

    View Slide

  13. 13
    LLNL-PRES-796969
    LC GitLab (Pilot)
    +
    In the works!

    View Slide

  14. 14
    LLNL-PRES-796969
    New Logo!

    View Slide

  15. 15
    LLNL-PRES-796969
    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
    https://str.llnl.gov/2018-01/comjan18

    View Slide

  16. 16
    LLNL-PRES-796969
    2019 R&D 100 Award Winners

    View Slide

  17. 17
    LLNL-PRES-796969
    https://software.llnl.gov

    View Slide

  18. 18
    LLNL-PRES-796969
    LLNL Open Source Presence
    https://software.llnl.gov/explore

    View Slide

  19. 19
    LLNL-PRES-796969
    LLNL Open Source Engagement
    https://software.llnl.gov/explore

    View Slide

  20. 20
    LLNL-PRES-796969
    LLNL Open Source Activities
    https://software.llnl.gov/explore

    View Slide

  21. 21
    LLNL-PRES-796969
    LLNL Open Source Languages and Topics
    https://software.llnl.gov/explore

    View Slide

  22. 22
    LLNL-PRES-796969
    § Approach:
    — 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
    § Goals:
    — 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!

    View Slide

  23. 23
    LLNL-PRES-796969
    https://twitter.com/LLNL_OpenSource

    View Slide

  24. 24
    LLNL-PRES-796969
    Pull Requests Welcome!
    https://dev.llnl.gov

    View Slide

  25. 25
    LLNL-PRES-796969
    New Open Source Policy & Guidelines (May 2019)
    § Releasing
    — 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
    § Contributing
    — 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” ?

    View Slide

  26. 26
    LLNL-PRES-796969
    In the works!
    https://llnl.slack.com

    View Slide

  27. Disclaimer
    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.
    Thank You!
    [email protected]

    View Slide