Lorena A. Barba group

Boeing Distinguished Colloquium, University of Washington

Prof. Barba gave a Boeing Distinguished Colloquium at the Department of Applied Mathematics, University of Washington, Seattle. Her talk was titled "A Tale of Three Codes—How the sausage is made in computational research." 


Relating the story of three research codes we’re working on in my lab, I will illustrate the sometimes tortuous progress of computational research. Each case is different across several axes: programming language, research context, computing needs for execution (in terms of time and hardware). They share in the development standards and collaboration practices in our lab, and they each span many years of effort. One code (exaFMM) is a current re-write of a high-performance implementation of the fast multipole method in C++. My students and a post-doc have written at least six separate code bases for this algorithm, over several years, and we hope this one is the definitive one. This tale teaches of the inherent tension between a student’s goals (one-time use, performance, thesis results) and the goals of reusable, sustainable software. The second code (PyGBe) is a hybrid mix of Python, CUDA and a bit of C, and targets a specialized application of boundary element methods to biomolecular electrostatics. Over a few years, we painstakingly studied and extended it, while delving into a new area of science for us. This tale teaches of the big hurdles that come with interdisciplinary endeavors (like learning to read the literature and trying to publish as an outsider to a field). The third code (PetIBM) falls squarely in our discipline of computational fluid dynamics. We have been rigorously pursuing reproducible research in this field, fully embracing open-science, and piloting new tools like containers and cloud computing. This tale teaches of the exacting labor that is involved in developing software and workflows for reproducible research. The only reasonable way forward for science is to share and value research software.