Thank you for purchasing this MEAP and letting us share with you the exciting world of Parallel Computing! To unlock the power of today’s computing hardware, it’s necessary to harness the capabilities of parallel computing. We strive in this book to go beyond the mechanics of one or two languages and instead capture the full breadth of what is needed to get more from your computing hardware.
Parallelism has exploded in computer hardware, whether it be the largest systems in the world or your cell phone. But getting performance from this hardware requires a skilled parallel programmer. To help address this gap in skills, I’ve mentored many students and cofounded a 10-week annual summer workshop on parallel computing. Much of the material presented here has come from that workshop and from colleagues across the country and internationally.
Parallel programming can be daunting at first. It requires more than a cursory knowledge of hardware, the operating system, and software. In this book, we’re making the topic approachable and we share techniques that are usable by programmers with a limited amount of time.
While this book is targeted at the beginning to intermediate parallel programmer, it does require solid programming skills, preferably in C, C++, Fortran, Python, or similar language, and some basic understanding of hardware. It also helps to have some Linux or Unix skills and experience installing software.