Parallel programming on the CPU (OpenMP) and GPU (Nvidia CUDA)