Using Data Dependence Analysis and Loop Transformations to Teach Vectorization

2017 
Parallel computing has been around for more than 5 decades, and is nowadays present in virtually every modern architecture. However, we identified that computer science students are oftentimes introduced to parallelism from a completely theoretical standpoint without any practical instruction nor expected outcome. In this paper, we introduce students to data dependence analysis and loop transformations as a component of parallel computing. Then, using a repository of 2000+ loops, the students apply the transformations to gain understanding of how compilers take advantage of parallelism via vectorization. Our methodology is highly adaptable and was implemented with freshmen and graduate students. The only prerequisite is experience in C programming, but it can be extended to other compiled languages.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    14
    References
    1
    Citations
    NaN
    KQI
    []