Practices in Parallel Programming with Pthreads, MPI and OpenMP.