pthreads, MPI, and CUDA programming assignments