Introduction to Parallel Computing with MPI and OpenMP