Current Issue

This Article From Issue

March-April 2006

Volume 94, Number 2
Page 102

DOI: 10.1511/2006.58.102

To the Editors:

While I agree with Gregory V. Wilson (Macroscope, January-February 2006) about the importance of version control and modern software-development practices in scientific computing, it is clear to me that the particle physicist held out as an example in the article must have been a theorist, and moreover one who works largely on his own. I can assure you that extremely good examples of proper software-development processes and methods can easily be found within the same field, and for almost all projects are largely the rule, rather than the exception.

The number of technologies mastered and under control in particle-physics software development is very large, and it is no accident that the http servers and protocols that led, for example, to the development of the World Wide Web at CERN more than a decade ago, and that are now producing large-scale innovations in grid computing (as in the project I work on now), emerged from the experimental high-energy particle physics community. Even collaborative efforts in theoretical physics are benefiting from such developments.

In producing such capabilities, we generally contribute to the software- development paradigm, not just take from it. Most of the scientists in my field are at least competent in several modern programming languages and make full and frequent use of version control, advanced software debugging, validation and memory-leak checking techniques, and other methods referred to in the article.

I would like to thank Dr. Wilson for the article, but would also like to request that he not tar all scientists with the same brush in making his point. There are many examples of good software-development practices, even exemplary ones, in science.

Alan Sill
Texas Tech University

To the Editors:

Gregory V. Wilson has some excellent points regarding the state of scientific computing. At Penn State we have tried to address such issues by offering a graduate minor degree in High Performance Computing. The students can pursue an M.S. or Ph.D. degree in a traditional discipline and then learn about other important aspects of computational science while pursuing the minor. This approach works quite well, since the skills needed are very similar whether the students are studying business, science, engineering or other fields.

Lyle N. Long
The Pennsylvania State University

Dr. Wilson responds:

I agree with Dr. Sill that many scientific groups are doing things right, but in my experience, for each one of those there are many others that don't even realize that they are doing things wrong.  For example, of the 98 participants in my course this fall, fewer than 10 percent answered "yes" to the question, "Is the code you are working with kept under version control?" Based on almost 20 years in and around high-performance computing, I think that is an accurate indication of how far we have to go.

I also agree that degree programs like the one Dr. Long describes are essential to the healthy development of computational science. I hope that in coming years, such programs will put ever-increasing emphasis on how to produce software, and how to be confident that it's doing what it's supposed to. I also hope that journals will start insisting that computational scientists provide evidence that their work meets the same standards that we all now take for granted for experimental work.