Helping Automate Control System Software Revisions
Zach DiPasquale enjoys designing software applications. That’s why the 21-year-old is relishing his time at NIF as he plays a role in better automating software upgrades to the Integrated Computer Control System (ICCS), which runs the world’s largest and most energetic laser.
"It took me a couple of weeks to understand it," said DiPasquale, one of this year’s NIF & Photon Science summer scholars. "Figuring out the architecture of the system is a difficult task simply because there’s a lot going on."
Even in just a few weeks, the work of the fourth-year software engineering major from Rochester Institute of Technology in Rochester, New York, should pay dividends at NIF for years to come, said Mike Flegel, integration manager for the NIF control systems.
"Any time we can automate a process and take the human out of the loop, it’s always a benefit," Flegel said.
Flegel described ICCS as a "monstrous system" with 2.5 million lines of code that manages more than 60,000 control points "to make sure NIF fires on track, on target, with the right amount of energy so the experimentalists can get the data they’re looking for with regards to basic science, material science, fusion, and weapons research."
Software revisions go on constantly and the system is completely rebuilt nightly, Flegel said. More than 12,000 tests can be performed with automated tools, but more comprehensive, human-run tests can take hours or even days. Part of the testing environment involves hundreds of computers, Flegel said.
Continuous Integration
DiPasquale’s project is to introduce continuous integration, a process that lets developers frequently integrate new software into a shared test system that automatically verifies that each build functions properly before integrating it into the main system.
"You build, you test, you integrate and provide feedback to the developers, so they know when they put something into the system, all the builds and the tests that are run tell them whether or not their code was successful," Flegel said.
So DiPasquale’s task was "to build us a system that will allow that to happen," Flegel said. "This is an opportunity to automate my job so that I can move on to other projects. In software, that’s the goal."
It was a formidable undertaking for a student who didn’t know the Lab existed before he learned of the internship opportunity through the Rochester Institute of Technology.
"I didn’t know much about what they did, but did research about the Lab, found it pretty interesting, with a lot of interesting stuff going on," DiPasquale said. "I thought NIF was actually a really cool piece of technology."
The NIF summer project also fit his passion for designing software applications, which he said he enjoyed more than "just sitting down and programming."
He also had some experience with continuous integration at a previous job and through school, although this was the first time he’s developed a pipeline for the continuous integration process to feed software builds into the system, he said.
And NIF is one of the few places in the world where he could tackle a project involving more than 2.5 million lines of Java and Ada computer language programming.
"But I knew the principles and what was needed to be done in order to do the job, so I was prepared to come into it," he said.
Some Tough Questions
DiPasquale also had to present his work to a group of NIF’s top leaders and answer some tough questions.
The changes could have a big impact on the way NIF developers work, "so getting them to understand these changes and how it’s going to improve their workflows is an important part," he said. "I just kind of went with the flow and tried to do what I needed to do to get my ideas across. You have to be honest and say why you chose that idea and how it’s going to benefit in the long run."
The nature of software engineering prepared him to handle such challenges, he said.
"It’s part of software engineering," said DiPasquale, who began creating websites when he was in middle school. "You prepare for those challenges from the beginning. When they pop up, you have to absorb it, fix up your design, and continue forward."
Flegel said the project still needs fine tuning and other features need to be incorporated before there can be a technology handoff to integrate the system into daily operations, but he praised DiPasquale’s work.
"Personally, it’s helped me to work with Zach and understand our process better," Flegel said. And, he added, "We need this capability moving forward."