â 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 GitHubRepository Stats: 6 stars âĸ 1 fork âĸ 80 commits âĸ GPL-3.0 license