← Back to Home

NCKU Parallel Computing Course

OpenMP & CUDA Programming for High Performance Computing

OpenMP CUDA C/C++ Parallel Computing GPU Programming

Course Overview

This course covers fundamental concepts in parallel computing using OpenMP for shared-memory parallelism and CUDA for GPU computing. Students learn to develop efficient parallel algorithms and optimize code for high-performance computing environments.

Department: Mechanical Engineering

Institution: National Cheng-Kung University

Learning Objectives

  • Understand parallel computing fundamentals
  • Master OpenMP for shared-memory programming
  • Learn CUDA for GPU acceleration
  • Develop efficient parallel algorithms
  • Optimize code for performance

Course Content Structure

Foundation Topics (1-5)

  • 0_Simple_Hello_World: Basic C programming introduction
  • 1_Hello_World: Command line arguments and program structure
  • 2_Simple_Function: Function implementation and makefiles
  • 3_Stack_Arrays: Array operations and math library usage
  • 4_Heap_Arrays: Dynamic memory allocation with malloc
  • 5_Arrays_Functions: External function memory management
  • 6_Saving_Results: File I/O and data visualization with Python

OpenMP Parallel Programming (10-12)

  • 10_OMP_For_demo: OpenMP parallel for loops
  • 11_OMP_Dot_Product: Vector dot product parallelization
  • 12_OMP_Critical_Single: Critical sections and single execution

Advanced Topics

  • Memory Management: Stack vs heap allocation
  • Performance Analysis: Valgrind for memory leak detection
  • Data Visualization: Python/Matplotlib integration
  • Build Systems: Makefiles and compilation

Repository Information

All course materials, code examples, and exercises are available in the GitHub repository:

📚 View Course Repository on GitHub

Repository Stats: 6 stars â€ĸ 1 fork â€ĸ 80 commits â€ĸ GPL-3.0 license