Software development is often a story of teamwork and determination. It’s a tale of persistence through failure toward, ideally, success. At LLNL, this story plays out in countless daily iterations as software teams strive to advance the Lab’s national security mission. When it comes to supporting both stockpile stewardship and foundational science, the VisIt visualization tool is the backbone of LLNL’s computer simulation analysis and visualization capabilities.
A team from Computation’s Applications, Simulation, and Quality (ASQ) Division recently migrated VisIt from a patchwork of technologies to the open-source platform GitHub—an undertaking laced with complexity, obstacles, and surprise. Computer scientists Eric Brugger, Cyrus Harrison, Alister Maguire, and Mark Miller planned and implemented the migration. VisIt’s day-to-day team also includes ASQ developers Kathleen Biagas, Kevin Griffin, Matt Larsen, and Eddie Rusu.
VisIt is a scalable visualization and graphical analysis tool used at LLNL for data defined on complex two- and three-dimensional meshes. The tool has always been targeted to accommodate users on desktop machines or distributed, scalable computing systems. The feature set includes scalar, vector, and tensor field visualization; interactive animations; and qualitative and quantitative analysis functions. VisIt supports multiple platforms (Windows, MacOS, Linux) and interfaces (C++, Python, Java) as well as custom plugin creation.
A History of Change
VisIt was originally developed at LLNL in the early 2000s for the Department of Energy’s (DOE’s) Advanced Simulation and Computing Initiative. Following the first major feature update in 2002, VisIt joined the open-source community in 2008 using a combination of facilities operated under DOE’s Office of Science: LLNL, Oak Ridge National Laboratory (ORNL), and Lawrence Berkeley National Laboratory’s National Energy Research Scientific Computing Center (NERSC). LLNL’s Weapons Simulation and Computing Program funds VisIt development by Computation personnel.
“In the late 1990s, NERSC hosted most open code development for the Office of Science,” explains Miller. At the time, NERSC’s barrier to entry was lower than LLNL’s—contributors simply needed to fax an account request form—and the institution was better equipped for web service setup and open collaboration.
Harrison states, “Being open to other communities, such as users simulating tokamak fusion, has hardened our tool and enabled us to build features we wouldn’t have otherwise developed.” Miller adds, “In addition to developer contributions, VisIt also benefits from users who report issues or new use cases.” Over the following years, all VisIt development became licensed and freely available.
Eventually, the technologies supporting various development processes ran into challenges. The source code outgrew its home in ClearQuest, so the team migrated it to Subversion (SVN), to which NERSC hosted anonymous https access. However, Harrison says, “Branch development and merging became suboptimal with SVN. It could take an hour to create a branch. VisIt’s large code base was taxing on NERSC’s servers, and we saw performance issues.” As SVN started to show its age, so too did the Redmine issue tracker hosted at ORNL and the OpenOffice software used at LLNL for VisIt’s documentation. Cumulatively, these concerns provided enough motivation to migrate several of the tool’s services to the more advanced, well-established GitHub platform.
During this time, the Lab’s policies and capabilities for managing open-source software changed, too. A culture of collaboration inspires many project teams to seek feedback and ideas from the open-source community, and GitHub provides projects with greater visibility and more integrated development functionality. Currently, over 450 LLNL software repositories are available to the public. VisIt is one of the Lab’s longer-lived open-source tools, though its history with NERSC and ORNL make it a relative newcomer to GitHub.
Maintaining VisIt’s baseline health is crucial for users who 