James Reinders

James Reinders

Parallel Computing Expert

Portland, Oregon

Areas of Expertise:

  • parallelism
  • parallel computing
  • TBB
  • Threading Building Blocks
  • Cilk
  • Cilk Plus
  • OpenMP
  • speaking
Parallel Programming Evangelist. James is involved in multiple engineering, research and educational efforts to increase use of parallel programming throughout the industry. He joined Intel Corporation in 1989, and has contributed to numerous projects including the world's first TeraFLOP/s supercomputer (ASCI Red) and the world's first TeraFLOP/s microprocessor (Intel® Xeon Phi™ coprocessor). James been an author on numerous technical books, including VTune™ Performance Analyzer Essentials (Intel Press, 2005), Intel® Threading Building Blocks (O'Reilly Media, 2007), Structured Parallel Programming (Morgan Kaufmann, 2012), Intel® Xeon Phi™ Coprocessor High Performance Programming (Morgan Kaufmann, 2013), and Multithreading for Visual Effects (A K Peters/CRC Press, 2014). James is working on a project to publish a book of programming examples featuring Intel Xeon Phi programming scheduled to be published in late 2014.

Intel Xeon Phi Coprocessor High-Performance Programming Intel Xeon Phi Coprocessor High-Performance Programming
by James Jeffers, James Reinders
February 2013
Ebook: $59.95

Intel Threading Building Blocks Intel Threading Building Blocks
by James Reinders
July 2007
Print: $39.99
Ebook: $31.99

"TBB hits the application developer's sweet spot with such advantages as uniprocessor performance, parallel scalability, C++ programming well beyond OpenMP, compatibility with OpenMP and hand threads, Intel Threading Tools support for performance and confidence, and openness to the software development community. TBB avoids several constraints surrounding the sweet spot: language extension risks, specific compiler dependences and hand-threading complexities. This book should make developers productive without a steep training curve, and the applications they produce should be of high quality and performance."
--David Kuck, Intel Fellow, founder of KAI and former director of the Center for Supercomputing Research and Development

"This book is not just a discussion of a C++ template library. It provides a lovely and in-depth overview of much of what we have learned about parallel computing in the last 25 years. It could be a great textbook for a course on parallel programming."
--Dennis Gannon, Science Director, Pervasive Technology Labs at Indiana University, former head of DARPA's High Performance Computing (HPC++) project, and steering committee member of the Global Grid Forum

"Intel's TBB is to parallel programming what STL was to plain C++. Generic programming with STL dramatically improved C++ programming productivity. TBB offers a generic parallel programming model that hides the complexity of concurrency control. It lowers the barrier to parallel code development, enabling efficient use of `killer' multi-cores."
--Lawrence Rauchwerger, Texas A&M University, Inventor of STAPL

"Future generations of chips will provide dozens or even hundreds of cores. Writing applications that benefit from the massive computational power offered by these chips is not going to be an easy task for mainstream programmers who are used to sequential algorithms rather than parallel ones. Intel's TBB is providing a big step forward into this long path, and what is better, all in the C++ framework."
--Eduard Ayguade, Barcelona Supercomputer Center, Technical University of Catalunya

"Multi-core systems have arrived. Parallel programming models are needed to enable the creation of programs that exploit them. A good deal of education is needed to help sequential programmers adapt to the requirements of this new technology. This book represents progress on both of these fronts. Threading Building Blocks (TBB) is a flexible, library-based approach to constructing parallel programs that can interoperate with other programming solutions. This book introduces TBB in a manner that makes it fun and easy to read. Moreover, it is packed full of information that will help beginners as well as experienced parallel programmers to apply TBB to their own programming problems."
--Barbara Chapman, CEO of cOMPunity, Professor of Computer Science at the University of Houston

"I enjoyed reading this book. It addresses the need for new ways for software developers to create the new generation of parallel programs. In the presence of one of the `largest disruptions that information technology has seen' (referring to the introduction of multi-core architectures), this was desperately needed. This book also fills an important need for instructional material, educating software engineers of the new opportunities and challenges. The library-based approach, taken by the Threading Building Blocks, could be a significant new step, as it complements approaches that rely on advanced compiler technology. "
--Rudolf Eigenmann, Purdue University, Professor of ECE and Interim Director of Computing Research Institute

"The arrival of the multi-core chip architecture has brought great challenges in parallel programming and there is a tremendous need to have good books that help and guide the users to cope with such challenges. This book on Intel Threading Building Blocks provides an excellent solution in this direction and is likely to be an important text to teach its readers on parallel programming for multi-cores. The book illustrates a unique path for readers to follow in using a C++-based parallel programming paradigm-a powerful and practical approach for parallel programming. It is carefully designed and written, and can be used both as a textbook for classroom training, or a cookbook for field engineers."
--Professor Guang R. Gao, University of Delaware

"This book was my first introduction to Intel Threading Building Blocks. Thanks to the easy-to-follow discussion of the features implemented and the reasons behind the choices made, the book makes clear that Intel's Threading Building Blocks are an excellent synthesis of some of the best current parallel programming ideas. The judicious choice of a small but powerful set of patterns and strategies makes the system easy to learn and use. I found the numerous code segments and complete parallel applications presented in the book of great help to understand the main features of the library and illustrate the different ways it can be used in the development of efficient parallel programs."
--David Padua, University of Illinois

"TBB promises to change how parallel programming is done in C++. This book will be extremely useful to any C++ programmer. With this book, James achieves two important goals: •Presents an excellent introduction to parallel programming, illustrating the most common parallel programming patterns and the forces governing their use. •Documents the Threading Building Blocks C++ library-a library that provides generic algorithms for these patterns. TBB incorporates many of the best ideas that researchers in object-oriented parallel computing developed in the last two decades."
--Marc Snir, Head of the Computer Science Department, University of Illinois at Urbana-Champaign

"We used to say make it right, then make it fast. We can't do that anymore. TBB lets us design for correctness and speed up front for Maya. This book shows you how to extract the most benefit from using TBB in your code."
--Martin Watt, Senior Software Engineer, Autodesk

"The Age of Serial Computing is over. With the advent of multi-core processors, parallel-computing technology that was once relegated to universities and research labs is now emerging as mainstream. Intel Threading Building Blocks updates and greatly expands the ‘work-stealing’ technology pioneered by the MIT Cilk system of 15 years ago, providing a modern industrial-strength C++ library for concurrent programming. Not only does this book offer an excellent introduction to the library, it furnishes novices and experts alike with a clear and accessible discussion of the complexities of concurrency.”"
--Charles E. Leiserson, MIT Computer Science and Artificial Intelligence Laboratory