HPC/PDC immunization in the introductory computer science sequence - Valentine, David (2014 Workshop on Education for High Performance Computing, 2014)
Immunization is the process in which we fortify our immune systems by injecting just enough of an active agent so as to cause the immune system to gear up with the appropriate antibodies. This paper discusses a successful practice of "HPC/PDC Immunization" at the CS1/CS2 level. We have found that simply exposing students to threaded versions of solutions they have already solved "fortifies" their technical expectations so they assume parallel programming will be a normal part of their educational experience. In particular we look for interesting Monte Carlo Simulation problems for students to solve conventionally. These problems already exist in the current introductory textbooks. They are CPU-bound and embarrassingly parallel. At the end of the semester, an "immunization lecture" is given, showing students that some simple-looking OpenMP pragma's can release their already working solution to run across all the available cores on their machines. Upon seeing a System Monitor report 100% of the available CPU cycles running their code, the students' "technical antibodies" are launched, and they will demand to be shown parallel programming in the later courses. This project is part of the CSinParallel.org corpus of parallel teaching materials.