Foreword

Learning from real examples can filter theoretical distractions and inject less glamorous realities. Real experiences and examples help us to see what matters the most.

In this book, I am pleased that Stephen shares tips from his interviews to understand how to really use tools and develop parallel code. The result is a book with value that is not apparent from simply browsing the table of contents.

For instance, I know data layout critically affects the ability to process data in parallel, but I like to be convinced by real examples. The topic of data layouts, such as the need to use “structures of arrays” instead of “arrays of structures” (SOA vs. AOS), is brought to the forefront by Stephen asking the provocative question, “If you were doing the project again, is there anything you would do differently?” in the “Parallel Track Fitting in the CERN Collider” interview (Chapter 15). In response, the interviewed developer highlights the importance of data models to getting effective parallel programs. “The World's First Sudoku ‘Thirty-Niner’” (Chapter 13) highlights that “much of the time taken was used in reworking the code so that there was less need to share data between the different running tasks.”

The ubiquitous nature of parallelism affects every aspect of programming today. I'm encouraged by Stephen's work, which walks through each aspect instead of just coding. Covering the issues of discovery, debugging, and tuning is critical to understanding the challenges of parallel programming. I hope this book is an inspiration to all who read it.

“Think Parallel.”

—James Reinders
Director, Parallel Evangelist, Intel
Portland, Oregon,
March 2012

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.189.188.121