This book introduces the principles of parallel programming using shared memory on Multicore machines.Employing a powerful parallel dialect of C (called ParC) as its basic language, it offers a firm basis for the art of creating efficient parallel programs.