Teaching design & analysis of multi-core parallel algorithms using CUDA

  • Authors:
  • Quoc-Nam Tran

  • Affiliations:
  • Lamar University

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2010

Quantified Score

Hi-index 0.02

Visualization

Abstract

One of the dominant trends in microprocessor architecture in recent years is continually increasing chip-level parallelism. However, many undergraduate curriculums, especially at small schools, do not offer courses that focus on the design and analysis of multi-threaded algorithms for multi-core processors. The courses that are offered address the theoretical aspects of parallel system design, but often fail to provide students with the opportunity to develop and evaluate distributed applications in real-world environments. As a result, undergraduate students are not as prepared as they should be for graduate study or careers in industry. We fill these gaps by creating multi-threaded programming (MTP) materials which target multi-core processors for the junior-level in computer science. The MTP materials are used in the second half of the Design and Analysis of Algorithms course replacing the theoretical aspects of parallel system design using the PRAM model. In order to overcome the difficulty of teaching and learning multi-core programming, problem-based learning (PBL) is used to ease students' transition from the single-threaded programming model to MTP. The course is well-suited for both large and small schools, and will greatly contribute to CS education and preparation of CS students for graduate study or careers in industry.