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¶
- Project Overview
- Problem statement
- Solution approach
-
Technical challenges
-
Implementation Details
- Architecture design
- Parallel strategies
-
Optimization techniques
-
Results and Analysis
- Performance measurements
- Scalability tests
-
Comparative analysis
-
Live Demo
- System setup
- Feature demonstration
- 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¶
- Scientific Computing
- N-body simulations
- Fluid dynamics
- Monte Carlo methods
-
Matrix computations
-
Data Processing
- Image/video processing
- Signal processing
- Data mining
-
Pattern recognition
-
Machine Learning
- Neural network training
- Parallel model inference
- Data preprocessing
-
Feature extraction
-
Graph Processing
- Path finding
- Graph analytics
- Network analysis
- 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:
- Email: ugur.coruh@erdogan.edu.tr
- Office Hours: By appointment
- Location: Engineering Faculty