When we give people the opportunity to step back from daily tasks, they can bring their creativity to bear on valuable work for the Lab.
Greg Becker, co-organizer
groups of developers work at tables and on laptops

Anything Goes at the Summer Hackathon

Monday, August 20, 2018

Another successful hackathon is in the books. The second of three annual events, the 2018 summer hackathon was held on August 9 and 10 at Lawrence Livermore National Laboratory’s (LLNL’s) High Performance Computing Innovation Center. Jeff Hittinger, director of LLNL’s Center for Applied Scientific Computing (CASC), was on hand to encourage participants to try new things.

“Hackathons are an important part of the computing ecosystem here. This is a great opportunity to broaden your skills,” Hittinger told the crowd. He noted that any given hackathon idea could have far-reaching impact as a mature project. For instance, the LLNL-developed notification system Nodeify began as a hackathon project in 2014 and has been used at the National Ignition Facility ever since.

Organizer duties rotate among the Computation directorate’s divisions. This hackathon was coordinated by Livermore Computing’s (LC’s) Greg Becker and Geoff Cleary along with CASC’s Abhinav Bhatele. All three have participated in past hackathons, but only Becker had organized one before. “I wanted to do what I could to ensure the success of another hackathon,” said Cleary. “The next level of participation is organization. We take our turns to keep it going.”

Cleary recently extended this community spirit to external collaborators during the “offseason.” Within LC, he leads a team that writes software for the high performance computing center’s long-term data archive. In this role, Cleary often works with developers from other national laboratories and IBM. At a multi-institutional meeting in Houston in June, he got everyone together for a one-day hackathon, inspired by Computation’s history of fruitful hacking sessions.

Figure 1. CASC director Jeff Hittinger (left) discusses hackathon logistics with co-organizer Abhinav Bhatele. (Photo by Zeke Morton. Click to enlarge.)

Revise the Routine

As dedicated and driven as LLNL employees are, Becker cautions that day-to-day work can sometimes feel like a metronome. A break in the routine often produces a positive outcome when returning to programmatic work. “It’s nice to invest in another project every now and then. When we give people the opportunity to step back from daily tasks, they can bring their creativity to bear on valuable work for the Lab,” noted Becker.

Computer scientist Joe Ciurej echoed the importance of leaving one’s office or machine room for the hackathon’s 24-hour period. “I tend to work alone or with one other person,” he said. “This was a good opportunity to work with a different group of people and find inspiration in what others are doing.”

Fellow computer scientist Tyler Jackson values having a forum for building camaraderie and learning from other people. He pointed out that Computation is a large organization, adding, “I attend hackathons to keep up on social connections outside my daily job while also working on something fun.”

New LLNL employee Yury Park took a break from onboarding activities to attend the hackathon. “I saw it as a chance to work on a new idea I had as well as meet with fellow software developers,” he said. Park’s hackathon project involved creating custom function methods for an existing app.

Figure 2. Frequent hackathon participants Gary Laguna (left) and Devon Bates concentrate on their team’s project. (Photo by Zeke Morton. Click to enlarge.)

Perfect the Program

The hackathon format allows participants to concentrate on a particular aspect of their programmatic work if they choose. Four-time hacker Stephen Jacobsohn brought colleagues Sireesha Krupadanam, Vinod Kumar, and Eric Schmar from the Weapons and Complex Integration (WCI) directorate to begin a multiphase project. Nicknamed WSOFT, the team serves as WCI’s in-house software development group.

Many areas of WCI operations rely on WSOFT for development, maintenance, and support of software applications. The team is embarking on integration of continuous integration/continuous deployment (CI/CD) across all WSOFT applications. “Much of our current framework, while solid and well tested, is older than some of the new developers on the team,” noted Jacobsohn.

At the hackathon, the WSOFT team started phase 1—deployment of Jenkins and integration with Maven and Atlassian. Jacobsohn explained, “Jenkins is at the heart of the CI/CD pipeline. Because this task is relatively large, we decided a series of phases was the best way to implement it.”

Jacobsohn intends to participate in the next hackathon and encourages others to do the same. He said, “I do my best to lead team-building exercises as well as spearhead our movement toward new technology. Many members of our team have fantastic ideas about how to improve our existing framework and the industry experience to implement such projects.”

Figure 3. Computer engineer Ian Lee often comes to a hackathon aiming to do “something with Python.” In his latest hackathon effort, Lee worked with Rigo Moreno-Delgado to package and internally productize an application called Livmoni, which helps developers and system administrators manage VMWare environments, such as those used in LC. (Photo by Zeke Morton. Click to enlarge.)

Hack the Hackathon

One group from the Applications, Simulations, and Quality division focused on hackathon data. Jackson and other developers who support LLNL’s Environmental Restoration Department (ERD) teamed up with Ciurej, who develops meshing for WCI simulation codes. Together they mined hackathon registration data going back to 2014.

The ERD team spent the last hackathon evaluating the adoption rate of their hackathon projects, discovering that most of their efforts influence ERD production code one way or another. “This time we thought it would be interesting to look at hackathons overall to help inform future events, like how much food to provide,” explained Jackson, noting that this project had a dual purpose. “We also wanted to try out the data visualization tool Tableau to see if it was right for our program.”

Hackathon participants register on an institutional Confluence page. The team scraped historical pages with a Python script, parsed the HTML data with Python as well, output the data to a .csv file, and processed the resulting text with Excel and Tableau. The resulting visualizations showed participation over time by Computation division, by season and year, and by most frequent attendees. The team also analyzed key words in registered project titles to find trends in hackathon topics.

Ultimately, the team concluded that Tableau makes data exploration easy but comes with a significant learning curve and “a new mental model.” They hope to start a Tableau user group at LLNL.

As the above projects illustrate, every idea is worth pursuing at a hackathon. Other hackers built a Puppeteer-based scraper, upgraded desktop data analysis software, and compared call trees between serial and parallel runs. One team created a virtual reality maze. In other words, anything goes.

Figure 4. One team analyzed four years of hackathon registration data to find trends in project topics. (Click to enlarge.)