Teaching Multicore and Many-Core Programming at a Higher Level of Abstraction
Presentation
Overview
Overview
Description
Parallel and distributed computing is now a knowledge area in the ACM/IEEE Computer Science Curriculum 2013, with expectation that it will be required in all CS curricula. The general desire is to introduce the subject, or elements of it, earlier in undergraduate curriculum, as promoted by the NSF/IEEE-TCPP Curriculum Initiative on Parallel and Distributed Computing. However existing low level libraries, notably MPI, have a significant additional learning curve and lead to unstructured programming.
This project introduces an easier way to introduce parallel and distributed computing in the CS curriculum, especially the lower CS levels, by using a pattern (parallel) programming approach. In pattern programming, well established computational patterns guide the programmer into well structured programming designs. We will introduce our C-based tools (Paraguin and Suzaku) to implement patterns that allow students to create working parallel/distributed code very quickly without the complexities of MPI. This will enable students to transition readily to MPI later in their CS studies. The materials have been extensively tested in the classroom
and can be used in various educational settings.