Is Parallel Programming Hard, And, If So, What Can You Do About It? (2011-01-02 draft) - PDF
نویسندگان: Paul E. McKenney
خلاصه: Preface The purpose of this book is to help you under- stand how to program shared-memory parallel ma- chines without risking your sanity.1 By describing the algorithms and designs that have worked well in the past, we hope to help you avoid at least some of the pitfalls that have beset parallel projects. But you should think of this book as a foundation on which to build, rather than as a completed cathe- dral. You mission, if you choose to accept, is to help make further progress in the exciting field of paral- lel programming, progress that should in time render this book obsolete. Parallel programming is not as hard as it is reputed, and it is hoped that this book makes it even easier for you. This book follows a watershed shift in the parallel- programming field, from being primarily the domain of science, research, and grand-challenge projects to being primarily an engineering discipline. In pre- senting this engineering discipline, this book will ex- amine the specific development tasks peculiar to par- allel programming, and describe how they may be most effectively handled, and, in some surprisingly common special cases, automated. This book is written in the hope that present- ing the engineering discipline underlying successful parallel-programming projects will free a new gener- ation of parallel hackers from the need to slowly and painstakingly reinvent old wheels, instead focusing their energy and creativity on new frontiers. Al- though the book is intended primarily for self-study, it is likely to be more generally useful. It is hoped that this book will be useful to you, and that the ex- perience of parallel programming will bring you as much fun, excitement, and challenge as it has pro- vided the authors over the years.