1st Edition

Introduction to Scientific and Technical Computing

Edited By Frank T. Willmore, Eric Jankowski, Coray Colina Copyright 2017
    303 Pages 30 B/W Illustrations
    by CRC Press

    303 Pages
    by CRC Press

    Created to help scientists and engineers write computer code, this practical book addresses the important tools and techniques that are necessary for scientific computing, but which are not yet commonplace in science and engineering curricula. This book contains chapters summarizing the most important topics that computational researchers need to know about. It leverages the viewpoints of passionate experts involved with scientific computing courses around the globe and aims to be a starting point for new computational scientists and a reference for the experienced. Each contributed chapter focuses on a specific tool or skill, providing the content needed to provide a working knowledge of the topic in about one day. While many individual books on specific computing topics exist, none is explicitly focused on getting technical professionals and students up and running immediately across a variety of computational areas.

    Operating Systems Overview

    Eric Santiso

    Machine Numbers and the IEEE 754 Floating Point Standard

    Frank T. Willmore

    Developing with Git and Github

    Chris Ertel

    Introduction to Bash Scripting

    Eric Santiso

    Debugging with gdb

    Frank T. Willmore

    Makefiles, Libraries, and Linking

    Frank T. Willmore

    Linking and Interoperability

    Frank T. Willmore

    Build Management with CMake

    Ryan L. Marson and Eric Jankowski

    Getting Started with Python 3

    Brian C. Barnes and Michael S. Sellers

    Prototyping

    Charles Lena

    Introduction to High-Performance Computing Systems

    Todd Evans

    Introduction to Parallel Programming with MPI

    Jerome Vienne

    Introduction to OpenMP

    Yaakoub El Khamra

    Checkpointing Code for Restartability with HDF5

    Frank T. Willmore

    Libraries for Linear Algebra

    Victor Eijkhout

    Parallel Computing with Accelerators

    İnanç Şenocak and Haoqiang Jin

    Testing and Verification

    Paul Kwiatkowski

    Validation of Computational Models and Codes

    Christopher R. Iacovella, Christoph Klein, Janos Sallai, and Ahmed E. Ismail

    Software Licensing and Distribution

    Paul Saxe

    Biography

    Frank Willmore completed his PhD in chemical engineering in 2006 at the University of Texas under the direction of Isaac C Sanchez, studying the role of free volume in small molecule diffusion. After a brief foray into the construction sector, Frank returned to research and began postdoctoral work using GPUs for molecular simulation. In May of 2010, he joined the high performance computing team at the Texas Advanced Computing Center as a consultant focused on chemical engineering and materials science software applications and developed their first short course on CUDA programming for their Summer Supercomputing Institute. Frank received a National Research Council award to study free volume in materials at the National Institute of Standards and Technology for all of 2011. Frank remained at TACC until 2014 and has since pursued consulting projects, including a project with the Glotzer group at the University of Michigan, building analytical and visual extensions to the HOOMD software package. Eric Jankowski is an assistant professor of Materials Science and Engineering at Boise State University. His research group uses computer simulations to understand how the arrangements of molecules can be controlled through thermodynamic self-assembly. Eric was a Director’s Fellow at the National Renewable Energy Laboratory and a postdoctoral research associate at the University of Colorado, Boulder. He earned his PhD in chemical engineering in 2012 from the University of Michigan, Ann Arbor, working with Sharon Glotzer to develop efficient heuristics for predicting thermodynamically stable arrangements of small particles. ? Coray Colina is Professor in the Department of Chemistry at the University of Florida with an affiliate appointment in Materials Science and Nuclear Engineering. She obtained her PhD in Chemical Engineering at North Carolina State University working with Keith E. Gubbins and was a Postdoctoral Research Associate in the Department of Chemistry at the University of North Carolina at Chapel Hill, working with Lee Pedersen. She was previously a faculty member at Simón Bolívar University, Venezuela, and joined the Department of Materials Science and Engineering at The Pennsylvania State University as Associate Professor in 2007. Her group strives to understand and predict structure-property relations in functional materials, such as polymeric membranes, hydrogels, biomolecules, and alternative ionic liquids. They use a variety of simulation techniques to gain further understanding of these systems by providing unique insight into structural aspects and phenomena. Complementary to experimental investigations, their work is helping to analyze and interpret experimental results, as well as to predict performance of new materials to guide future experimental design efforts.

    "…a long overdue and badly needed resource for beginning students of scientific, technical, and high-performance computing. It provides within a single concise volume tutorials and primers in all of the fundamental elements required to become a competent scientific programmer. Its style is extremely accessible and user friendly and employs illuminating examples to illustrate the key concepts and tools. I only wish that this book had been available to me when I was first learning scientific computing—I can only imagine the time that it would have saved me, the good habits that it would have instilled, and the elevated level of competence that I would have developed!"
    –Andrew Ferguson, University of Illinois, Urbana-Champaign, USA

    "…touches topics that every practitioner in the field of scientific and technical computing has to learn at some point in his/her career. It provides an overview over software tools and coding infrastructure that form the basis of every computational research project. This book is a useful learning tool and reference for everybody serious about starting in computational research."
    –Michael Engel, Friedrich-Alexander-Universität, Erlangen-Nürnberg, Germany

    " a unique book that fills [a] gap in the existing scientific computing literature landscape. This book focuses on the necessary aspects of creating and maintaining a scientific code today."
    –Chris D. Lorenz, King’s College, London, UK

    "The material this book covers is a good summary of what I learned piece-by-piece over a decade of research. I wish this book had existed when I was a first-year (or fifth-year) graduate student. It could have saved me a lot of time and taught me how to create reliable and reproducible computational science far earlier."
    –Carolyn Phillips, Computation Institute, University of Chicago; Neurensic, Inc., Chicago, Illinois, USA

    "This book is a must-have for any physicist, chemist or engineer grad student, postdoc and academic wishing to use modern computers for their research…. the spellbook that unravels the mysteries of professional-style computation tools, making them accessible and useful to non-computer majors."
    –Erich A. Müller, Imperial College, London, UK