Damian Rouson: Head of the CLaSS
June 7, 2021
By Linda Vu
Contact: [email protected]
As the new leader of the Computational Research Division’s (CRD’s) Computer Languages & Systems Software (CLaSS) group, Damian Rouson’s ties to Berkeley Lab became official last month.
Although his career at the Lab is only about a month old, Rouson’s history with Berkeley Lab goes back nearly 20 years. In fact, he credits interactions at Berkeley Lab for inspiring him to write a popular programming book and start a successful consulting business.
“I’ve been interested in coming to work at Berkeley Lab for a while. Before I started my software consultancy, the Sourcery Institute, to train and advise scientists on scientific software, I worked at Sandia National Laboratory and the Naval Research Laboratory. The opportunity to lead CLaSS is exciting because it means that I can come back around to being a researcher myself,” said Rouson. “I’m thrilled to work with such a great staff, and I’m looking forward to writing proposals and collaborating with them.”
Rouson was first introduced to Berkeley Lab in 2005 when CRD staff scientist Tony Drummond invited him to speak about “Design Metrics in Quantum Turbulence Simulations: How Physics Influences Software Architecture.” After his talk, an audience member approached Rouson to discuss the idea of taking an “object-oriented design patterns” approach to software design.
“This concept of ‘object-oriented design patterns’ actually comes from building architecture, and is useful for resolving tension. I like to use the example of an awning to explain this. If it’s raining and you don’t want to get wet, you may want to open your umbrella indoors before stepping out into the rain. But, the open umbrella may impede your ability to fit through the door frame; if you step outside and open your umbrella, you’ll get wet—that’s the tension. The awning is the pattern that resolves this tension,” said Rouson. “When I published my book Scientific Software Design: The Object-Oriented Way in 2011, six of the 12 chapters were about design patterns. That’s how impactful that conversation was.”
A year after his book was published, NERSC’s Richard Gerber invited Rouson back to Berkeley Lab to teach a training course for the facility’s users. This was the second training course that he had ever taught based on the book.
“When Richard opened the registration for the course, he didn’t check it for a few days. When he did, over 90 people had signed up for the course, nearly double the room capacity. A Harvard professor flew in for the course, as did a professor from Brazil. That’s when I realized I was onto something,” said Rouson. “In 2013, a year after teaching the NERSC training, I left Sandia National Lab and went into training full-time. The training courses evolved into consulting and contracts for custom software development. I founded a non-profit the Sourcery Institute to train computational scientists and the business-side Sourcery Inc. to do the custom software development.”
Reflecting on his career trajectory, Rouson credits having the right people in his life at the right time for many of his opportunities and interests. He discovered a passion for computers at the age of 12 when his parents put him in a summer program that introduced him to the Fortran programming language.
This was 1979 at the Pinellas County Science Center in St. Petersburg, Florida, before most people had computers in their homes. He shared his newfound interest with his basketball coach, who had a Ph.D. in chemical engineering. The coach mentioned that Atari made a basic programming cartridge for its game set, and with that cartridge, Rouson continued learning to program on his own. By the time he finished high school, he was proficient in Fortran, BASIC, and machine-language programming.
When he arrived at Howard University as an undergraduate, Rouson decided to pursue his other interests in mechanical and aerospace engineering. He then went on to earn a Master’s degree and Ph.D. in mechanical engineering from Stanford University. Years later, Rouson was an assistant professor at the City University of New York when he rediscovered his passion for programming. He was working with some graduate students on a computational fluid dynamics code for modeling turbulent flows.
He gave a 15-minute presentation on this new software at a Society for Industrial and Applied Mathematics (SIAM) meeting and piqued the interest of NASA Jet Propulsion Laboratory’s Charles Norton, who was on the editorial board of the journal called Scientific Programming. Norton encouraged Rouson to publish a paper about his code in the new journal, and that eventually led to Rouson’s talk at Berkeley Lab.
“I jokingly refer to that SIAM talk as my ‘coming out party.’ When most researchers in my field give a conference talk, it’s usually about the results of the code, not the code itself. Ever since I was a teenager, I’ve had this dual passion for programming and mechanical engineering but I never envisioned a career path where I could pursue both. The talk at SIAM and meeting Charles showed me that it was possible to merge my interests,” said Rouson.
Now that he’s at Berkeley Lab, Rouson says he’s looking forward to spending more time writing code and learning the UPC++ parallel programming model. He plans to become proficient enough to teach tutorials on it. He’s also leading a Laboratory Directed Research and Development project that explores the use of machine learning to accelerate predictions of climate change’s regional impacts using Fortran 2018 and UPC++.