This book addresses the challenge of provisioning of parallel hardware and software enabling high-performance parallel processing in the context of requirements dictated by big data systems. It gives description of parallel programming techniques that are necessary for efficient programs for multicore processors and parallel cluster systems.