Parallel Computing Expert
Areas of Expertise:
Parallel Programming Evangelist. I am passionate about Parallel Programming and Parallel Computer Architecture. Fast computers! I have had the great fortune to help make key contributions to two of the world's fastest computers (#1 on the "Top500" lists many times) and many other supercomputers. I am working as an independent consultant on parallel computing, high performance computing (HPC, AI, ML, CPUs, FPGAs, GPUs, and accelerators of all kinds). I previously worked at Intel until 2016. During my 10,001 days at Intel, I contributed to many projects including the world's first TeraFLOP/s supercomputer (ASCI Red) and the world's first TeraFLOP/s microprocessor. Today, I continue to publish articles and do consulting in areas related to high performance computing, and applications that use high performance computing including AI/ML. I am always looking to improve the methods and tools for Parallel Programming through better models, understanding and training. I have authored/edited to create nine books (so far) reflecting this passion. I have also taught many courses, classes, tutorials, and workshops. I am familiar with many software developer markets from embedded to HPC.
"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."
"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."
"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."
"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."
"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."
"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.
"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."
"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."
"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."
"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."
"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."
© 2019, O’Reilly Media, Inc.
(707) 827-7019 (800) 889-8969
All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.