High Performance Computing algorithms distributed computing Linux GPU Computing OpenMP parallel computing