Speaker: Alexander Pletzer, GFDL (Formerly CPPG, PPPL)
Regardless of the programming language you are using and whether you are running MPI, OpenMP or serial codes, the challenges of writing "good" scientific codes will invoke at some level the need for robustness, performance and flexibility. This seminar will be about how to write code that can scale in complexity with an eye on performance. By walking through simple examples I will attempt to uncover the hidden costs associated with some programming practices that I have personally encountered, and try to answer common questions. Are Fortran COMMON blocks ok? Will I make my code modular by using Fortran modules? Shoud I opt for an object oriented or procedural programming style? What is thread safety and how can I make my code thread safe? How should I deal with multi-language interoperability?