Workshop: Teaching and Advising HPC at NTNU
Abstract: Since the world was forced into parallelism in the mid 2000s as we hit the Power Wall, Parallel and Distributed Computing (PDC) and High Performance Computing (HPC) in particular, is no longer a specialty seen at the US government labs and weather forecasting centers, but is now everywhere from embedded systems in smartphones that typically have one or more multicore processor and 3 or more GPUs, to laptops, workstations, large server and server farms to supercomputers. This has created a huge demand for technical talent with HPC skils. Big Data, AI, and associated Data Analytics has put even higher pressure on the demand.
In this short-paper/lightning talk, I will highlight some of my personal experiences in attracting students into my parallel computing class, my experience with advising 80+ graduate students (most of them master students), and current efforts and ideas for introducing HPC to first-year students. This includes why I believe in teaching MPI before OpenMP, threading or CUDA, why optimizing code/performance engineering is so important, the importance of group meeting and team building, and how and why parallel computing concepts should also be taught in the very first introduction to computers classed.
I will also mention the need to have good mentors early in the curriculum. Finally, I will highlight the need to have good mentors early in the curriculum and do out-reach to not only high school students, but also grade schools and middle schools.