HPC Training: Parallel Programming of High Performance Systems