Experiences in Teaching a Specialty Multicore Computing Course
Research School of Computer Science, The Australian National University
The Australian National University, 2012
@article{strazdins2012experiences,
title={Experiences in Teaching a Specialty Multicore Computing Course},
author={Strazdins, Peter E.},
year={2012}
}
We detail the design and experiences in delivering a specialty multicore computing course whose materials are openly available. The course ambitiously covers three multicore programming paradigms: shared memory (OpenMP), device (CUDA) and message passing (RCCE), and involves significant practical work on their respective platforms: an UltraSPARC T2, Fermi GPU and the Single-Chip Cloud Computer. Specialized multicore architecture topics include chip multiprocessing, virtualization support, on-chip accelerators and networks, transactional memory and speculative execution. The mode of delivery emphasizes the relationship between programming performance and the underlying computer architecture, necessitating the need to provide suitable infrastructure in the form of instrumented test programs and the use of performance evaluation tools. Further infrastructure had to be created to facilitate the safe, convenient and efficient use by students on the GPU and Single-Chip Cloud Computer. The programming assignments, based on the theme of the LINPACK benchmark, also required significant infrastructure for reliably determining correctness and assisting debugging. While the course assumed as background knowledge an introductory computer systems and concurrency course, it was found that students could learn device programming in a short time, by building on their knowledge of shared memory programming, although more time is needed for learning message passing. We found that, provided students had a suitably strong computer systems background, they could successfully meet the course’s learning objectives, although the skill of correctly interpreting performance data remains difficult to learn when suitable performance analysis tools are not available.
January 20, 2012 by hgpu