Educational implementations of parallel and distributed computing with MPI, OpenMP, and CUDA.
- Root directory: MPI basics, collective operations, and serial/parallel algorithms (dot product, matrix operations, numerical methods)
- openmp/: Shared memory parallelism (parallel loops, reductions, iterative solvers)
- mpi/: Distributed memory examples
- assignment/: Advanced implementations (sorting, 1D/2D heat diffusion)
- hpc_project/: GPU acceleration with CUDA (multi-GPU matrix-vector multiplication)
MPI:
mpicc -o program program.c
mpirun -np <num_processes> ./programOpenMP:
gcc -fopenmp -o program program.c
./programCUDA:
nvcc -o program program.cu
./program- OpenMPI/MPICH (for MPI examples)
- GCC with OpenMP support
- NVIDIA CUDA Toolkit (for GPU code)
See notes.md for additional technical notes and hpc_project/project_data.md for performance benchmarks.