This book will introduce techniques and tools for software design, development, testing, and performance analysis for use in computational science. The book will emphasize object-oriented programming (OOP), object-oriented design patterns, and parallel programming in modern Fortran, including mixed Fortran/C/C++. Extensive code examples will be incorporated into the text and will also be available on GitHub with portable, automated build scripts for students to compile and execute. All examples will work with free, open-source software that will be packaged in a companion virtual machine. Several video tutorials will also be posted to augment the book with lectures.
About the Author: Damian Rouson is a mechanical engineer with extensive experience in software design and development for multi-physics modeling, including classical, quantum, and magnetohydrodynamic turbulence and multiphase flow. He co-authored the textbook Scientific Software Design: The Object-Oriented Way (Cambridge University Press, 2011) and has been contracted to teach related courses at supercomputer centers and universities in the U.S. and Europe. He holds a B.S. from Howard University and an M.S. and Ph.D. from Stanford University, all in Mechanical Engineering. He is also a licensed Professional Engineer (P.E.) in the State of California. In February 2013, Dr. Rouson entered Sandia National Laboratory's Entrepreneurial Separation to Transfer Technology (ESST) program to launch Sourcery, Inc., a software consultancy founded by and for computational scientists, engineers, and mathematicians. In July 2015, Dr. Rouson founded the California public-benefit nonprofit corporation Sourcery Institute. In August 2015, the U.S. Internal Revenue Service approved Sourcery Institute's application for 501(c)(3) tax-exempt status for conducting research and education in computational science and engineering.
Salvatore Filippone has an MSc in computer engineering and a PhD in Mathematics, both from the University of Rome "Tor Vergata." He is the Lecturer in Software Engineering for Technical Computing at Cranfield University. Prior to joining Cranfield he held positions ith IBM Co., where he was a lead developer of the ESSL scientific software products, and at the University of Rome Tor Vergata, where he taught introductory programming and introductory numerical analysis to engineering undergraduate, and advanced computational methods to graduate students.
Sameer Shende is Director of the Performance Research Laboratory at the University of Oregon. He is also President and Director of ParaTools, Inc.