High Performance Computing:  MPI, MP,  CUDA, OpenACC