Teaching Computational Scientists to Build and Package Open-Source Software

Presenter: Prentice Bisbal, Lead Software Engineer, Princeton Plasma Physics Laboratory

Date: February 6, 2019

Slides: https://uofi.box.com/s/b0nuzwif4dy874mx9qdlm809nerddqsw

Video: https://youtu.be/TWr9QQnkx_Y


High performance computing training and education typically emphasizes the first-principles of scientific programming, such as numerical algorithms and parallel programming techniques. However, many computational scientists need to know how to compile and link to applications built by others. Likewise, those who create the libraries and applications need to understand how to package their code it so that it is straightforward for others to use. In this webinar, we will go through the process of building and installing open-source software. The focus will be on packages that use a configure script generated by the GNU Autoconf utility, since most open-source packages provide such a script. I will summarize my observations on the most common difficulties computational scientists encounter when trying to build and install open-source software themselves, and how to address them. I will also discuss common deficiencies I have found in the packaging of open-source scientific packages will also be discussed, along with some suggestions for correcting them.

Target audience: The webinar is intended for researchers and developers who are interested in good techniques for developing open source software.
Prerequisites: No prerequisites.
Reference Materials

For those interested in learning how to package code for use by others:


Prentice Bisbal is a Lead Software Engineer at the Princeton Plasma Physics Laboratory (PPPL) in Princeton, NJ. He has been at PPPL since April of 2016. He has been a Unix/Linux System Administrator specializing in Scientific Computing since 1998. Most of that time has been in smaller academic research organizations where he has been responsible for all aspects of Scientific Computing system administration and user support. He has a BS in Chemical Engineering from Rutgers University. He became interested in Scientific Computing when studying process modeling as part of his undergraduate education. He estimates he has gone through the process of building open-source packages several thousand times.