This book focuses on the theoretical and practical aspects of parallel programming systems for todays high performance multicore processors and discusses the efficient implementation of key algorithms needed to implement parallel programming models. Such implementations need to take into account the specific architectural aspects of the underlying computer architecture and the features offered by the execution environment. This book briefly reviews key concepts of modern computer architecture f