Parallel programming is hard. Threads are in general, too low-level to be used safely. OpenMP and parallel processes provide safer alternatives. Parallel programming is also full of performance pitfuls which require a redesign of the code for parallelism. With multi-core processors prevalent today these are important topics.