Skip to content

CEN310 Parallel Programming

Week-15 (Final Project Review)

Spring Semester, 2024-2025


Project Review Day Schedule

Morning Session (09:00-12:00)

  • Project presentations (Group 1-4)
  • Performance analysis discussions
  • Q&A sessions

Lunch Break (12:00-13:00)

Afternoon Session (13:00-17:00)

  • Project presentations (Group 5-8)
  • Technical demonstrations
  • Final feedback

Final Project Requirements

1. Project Documentation

  • Comprehensive project report
  • Source code documentation
  • Performance analysis results
  • Implementation details
  • Future work proposals

2. Technical Implementation

  • Working parallel application
  • Multiple parallel programming models
  • Advanced optimization techniques
  • Error handling and robustness
  • Code quality and organization

Presentation Guidelines

Format

  • 30 minutes per group
  • 20 minutes presentation
  • 10 minutes Q&A

Content

  1. Project Overview
  2. Problem statement
  3. Solution approach
  4. Technical challenges

  5. Implementation Details

  6. Architecture design
  7. Parallel strategies
  8. Optimization techniques

  9. Results and Analysis

  10. Performance measurements
  11. Scalability tests
  12. Comparative analysis

  13. Live Demo

  14. System setup
  15. Feature demonstration
  16. Performance showcase

Performance Analysis Requirements

Metrics to Cover

  • Execution time
  • Speedup
  • Efficiency
  • Resource utilization
  • Scalability

Analysis Tools

# Performance measurement examples
$ nvprof ./cuda_program
$ mpirun -np 4 ./mpi_program
$ perf stat ./openmp_program

Project Structure Example

project/
├── src/
   ├── main.cpp
   ├── cuda/
      ├── kernel.cu
      └── gpu_utils.cuh
   ├── mpi/
      ├── communicator.cpp
      └── data_transfer.h
   └── openmp/
       ├── parallel_loops.cpp
       └── thread_utils.h
├── include/
   ├── common.h
   └── config.h
├── test/
   ├── unit_tests.cpp
   └── performance_tests.cpp
├── docs/
   ├── report.pdf
   └── presentation.pptx
├── data/
   ├── input/
   └── output/
├── scripts/
   ├── build.sh
   └── run_tests.sh
├── CMakeLists.txt
└── README.md

Evaluation Criteria

Technical Aspects (50%)

  • Implementation quality (15%)
  • Performance optimization (15%)
  • Code organization (10%)
  • Error handling (10%)

Documentation (25%)

  • Project report (10%)
  • Code documentation (10%)
  • Presentation quality (5%)

Results & Analysis (25%)

  • Performance results (10%)
  • Comparative analysis (10%)
  • Future improvements (5%)

Common Project Topics

  1. Scientific Computing
  2. N-body simulations
  3. Fluid dynamics
  4. Monte Carlo methods
  5. Matrix computations

  6. Data Processing

  7. Image/video processing
  8. Signal processing
  9. Data mining
  10. Pattern recognition

  11. Machine Learning

  12. Neural network training
  13. Parallel model inference
  14. Data preprocessing
  15. Feature extraction

  16. Graph Processing

  17. Path finding
  18. Graph analytics
  19. Network analysis
  20. Tree algorithms

Resources & References

Documentation

  • CUDA Programming Guide
  • OpenMP API Specification
  • MPI Standard Documentation
  • Performance Optimization Guides

Tools

  • Visual Studio
  • NVIDIA NSight
  • Intel VTune
  • Performance Profilers

Project Report Template

1. Introduction

  • Background
  • Objectives
  • Scope

2. Design

  • System architecture
  • Component design
  • Parallel strategies

3. Implementation

  • Development environment
  • Technical details
  • Optimization techniques

4. Results

  • Performance measurements
  • Analysis
  • Comparisons

5. Conclusion

  • Achievements
  • Challenges
  • Future work

Contact Information

For project-related queries:


Questions & Discussion