A Proposed Model for Teaching Advanced Parallel Computing and Related Topics
Workshop: Workshop on Education for High Performance Computing (EduHPC)
Abstract: The heterogeneous, multi-core and many-core architecture of modern computers offers opportunities to solve critical problems in science and engineering as well as parallel programming challenges to those who wish to use them. This problem includes computer science programs but extends to a wide variety of STEM programs where computation has become an integral part of the research infrastructure. Students from science and engineering majors often have limited programming experience. Instructors from these fields are often not knowledgeable enough about the techniques used for efficient parallel computing to create and run these courses independently. Even in places where there is faculty expertise to teach the courses, they tend to be low in enrollment and thus are less likely to be offered. This leaves students who wish to learn the advanced concepts of parallel and large-scale computing to seek resources elsewhere or stumble on blindly in their field and pick things up as they go. Although some of the required content is available online as self-paced or MOOC style courses, those approaches are not effective in getting the majority of the target students the level of expertise they require. Both the Blue Waters and XSEDE projects have experimented with collaborative online courses that have proved to be an excellent model for resolving some of these problems. In this paper, we define the problems more fully and then describe our proposed collaborative model. We then conclude with a discussion about the challenges of implementing the model more permanently and at scale.