| % preface.tex |
| |
| \chapter*{Preface} |
| |
| The purpose of this book is to help you understand how to program |
| shared-memory parallel machines without risking your sanity.\footnote{ |
| Or, perhaps more accurately, without much greater risk to your |
| sanity than that incurred by non-parallel programming. |
| Which, come to think of it, might not be saying all that much. |
| Either way, Appendix~\ref{cha:app:Important Questions} discusses |
| some important questions whose answers are less intuitive in |
| parallel programs than in sequential program.} |
| 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 cathedral. |
| Your mission, if you choose to accept, is to help make further progress |
| in the exciting field of parallel 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 presenting this engineering discipline, this book will examine |
| the specific development tasks peculiar to parallel 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 presenting the engineering |
| discipline underlying successful |
| parallel-programming projects will free a new generation of parallel hackers |
| from the need to slowly and painstakingly reinvent old wheels, instead |
| focusing their energy and creativity on new frontiers. |
| Although 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 experience |
| of parallel programming will bring you as much fun, excitement, and |
| challenge as it has provided the authors over the years. |