Nos últimos anos, há uma mudança gradual da computação sequencial para a computação paralela. Hoje em dia, quase todos os computadores são de processadores multinúcleos. Para explorar os núcleos disponíveis dos computadores modernos, a computação paralela torna-se necessária. O objectivo deste livro é fornecer detalhes do mecanismo de trabalho de diferentes estruturas de paralelização. No processo de observação das estruturas paralelas, poucas destas estruturas são também paralelizadas neste livro utilizando um conjunto de programas bem conhecidos para determinar a melhor forma de paralelizar um programa. Este livro introdutório foi concebido para programadores interessados em melhorar o desempenho do código paralelo de concepção diferente (utilizando técnicas diferentes), utilizando múltiplos processadores. O livro enfatiza conceitos populares de programação paralela e tenta descobrir a melhor técnica adequada de paralelização. Os pré-requisitos para a compreensão do conhecimento fornecido no livro são assumidos que o leitor deve ser bem introduzido com experiência de programação de um único processador e a capacidade de seguir exemplos simples de programação na linguagem de programação C.