Primary Author
Phil Colella
University
Lawrence Berkeley National Laboratory
Abstract Title
Software Engineering for Scientific Computing
Abstract Author(s)
Phil Colella
Username
pcolella
First Name
Phil
Last Name
Colella
Program
csgf
Youtube ID
ngmqL48RG3c
Poster Number
0
Reviewer Approved
Yes
Abstract Type
presentation
Body
Typically, graduate students in science and engineering (with the exception of computer science) enter graduate school with limited software skills – mainly programming in interpreted environments, such as MatLab. While these environments are quite useful for small-scale problems, they are not the best platform for building large software systems, particularly for high-performance computers. In this talk, I will give an overview of a course that Brian Van Straalen and I have developed at Berkeley intended to provide the basic software skills required to work effectively at this level. The areas that we cover in this course include: (i) Introduction to C++ class design; (ii) algorithms and data structures; (iii) the “plumbing” for large software projects, e.g. build systems, revision control, and debugging; and (iv) a smattering of information on how the hardware works. A recurring theme in this course are the seven “motifs” (Colella, 2004) that arise in scientific and engineering simulation.