My brother is a PhD candidate in a computational chemistry program. He occasionally asks me for help with some of the software he’s required to use. In the course of helping him, I’ve learned a few things about scientific software. The following are my observations:
- Scientists love Fortran. They love Fortran as much as a Linux systems programmer loves C and they will probably never leave it for the same reasons. There is apparently a lot of Fortran code out there and the effort to rewrite it would be immense. I’ve suggested to my brother to use wrappers in SciPy, a language with which he is more familiar, but the old guard insists on using Fortran.
I think scientists-who-use-software don’t really get how to write cross-platform code. One package he showed me used a Make file (yeah!) but required you to edit a bunch of text config files first to specify the architecture and some paths and then run make.
Despite these unfortunate realities, I feel that scientists are among the few who use computers for their full potential. It saddens me that the raw computational power in your smart phone is being used to so that you can click like on a post.
There was only so much help I could provide my brother because I really didn’t know anything about the software being used in massive clusters. So when Packt publishing offered me a chance to review Building a BeagleBone Black Super Cluster by Andreas Reichel, I was interested. My cluster operations knowledge is very limited, but I’m pretty familiar with the BeagleBone so I thought this book might be a good way to learn more.
I enjoyed reading Andreas’ approach to the topic. He brings a certain academic perspective to the BeagleBone which is a bit refreshing in a way. In the preface and his introduction he puts the BeagleBone in historical context of computing history which was enjoyable to read.
He then continues to describe how to build a small cluster of BeagleBones. He made a custom mount of ten BeagleBone blacks. The details on how to build the enclosure are complete including how to hack an ATX power supply to power everything. I thought the set up was particularly clever.
The rest of the book describes how to use open source scientific software to run on this cluster. The examples seem very complete including providing details on source code modifications that need to be performed before compiling. This confirms my impression of scientific software 🙂
The book is approachable by more than just academics. I think there is a growing citizen-scientist movement who would benefit from learning more about parallel computing, especially in the areas of simulation and modeling. There are the occasional Hackaday posts the mentions clusters if you are looking for applications. One post describes a 33 Raspberry Pi cluster and the other an eight-node clustered webserver.
Now if my brother asks for help, I still really won’t understand what he’s doing, but I’ll at least have some background on how the software tools should work.