hpc-lab-code/work/DELIVERY_CHECKLIST.md
2026-01-21 18:02:30 +08:00

6.7 KiB
Raw Permalink Blame History

项目交付清单

文件清单

源代码文件

  • gemm_serial.cpp - 串行版本实现
  • gemm_parallel.cpp - MPI-OpenMP混合并行版本
  • gemm_optimized.cpp - 优化版本

构建和测试脚本

  • build.sh - 编译脚本
  • quick_test.sh - 快速测试脚本
  • run_experiments.sh - 完整实验脚本
  • xmake.lua - xmake构建配置

数据分析工具

  • analyze_results.py - Python数据分析脚本

文档文件

  • README.md - 项目说明文档
  • QUICKSTART.md - 快速开始指南
  • 实验报告模板.md - 实验报告模板
  • PROJECT_SUMMARY.md - 项目总结
  • DELIVERY_CHECKLIST.md - 本文件

功能完成清单

程序功能

  • 串行矩阵乘法
  • MPI并行矩阵乘法
  • OpenMP并行矩阵乘法
  • MPI-OpenMP混合并行
  • 矩阵转置优化
  • 结果验证
  • 时间测量
  • 分块优化
  • 缓存优化

实验功能

  • 串行基准测试
  • MPI扩展性测试实验一
  • 混合并行扩展性测试(实验二)
  • MPI/OpenMP组合优化测试实验三
  • 自动数据收集
  • 加速比计算
  • 效率计算
  • CSV数据导出

分析功能

  • 数据读取和解析
  • 性能曲线绘制
  • 效率热图生成
  • 统计摘要输出
  • 多种可视化

测试验证清单

编译测试

  • 串行版本编译成功
  • 并行版本编译成功
  • 优化版本编译成功
  • 无编译警告

功能测试

  • 串行版本测试通过512×512
  • MPI单进程测试通过
  • MPI多进程测试通过4进程
  • 混合并行测试通过2×2
  • 优化版本测试通过4进程
  • 所有测试结果验证通过

性能测试

  • 串行版本性能正常
  • 并行版本有加速效果
  • 优化版本性能提升明显
  • 无内存泄漏
  • 无段错误

文档完整性清单

用户文档

  • 安装说明
  • 编译说明
  • 运行说明
  • 使用示例
  • 参数说明
  • 输出格式说明

技术文档

  • 算法描述
  • 实现细节
  • 性能分析
  • 优化策略
  • 代码注释

实验文档

  • 实验目的
  • 实验原理
  • 实验步骤
  • 数据收集方法
  • 分析方法
  • 报告模板

代码质量清单

代码规范

  • 一致的命名风格
  • 适当的注释
  • 清晰的结构
  • 模块化设计

错误处理

  • 参数验证
  • 内存分配检查
  • MPI错误检查
  • 结果验证

性能优化

  • 编译优化选项(-O3
  • 算法优化
  • 通信优化
  • 内存优化

实验要求对照清单

实验目的达成

  • 掌握MPI程序设计
  • 掌握OpenMP程序设计
  • 了解矩阵乘法并行化
  • 掌握性能分析方法

实验内容完成

  • 串行算法实现
  • 并行算法实现
  • 主从模型实现
  • 带状分块实现
  • OpenMP加速实现
  • 结果收集实现

实验数据收集

  • 不同矩阵规模数据
  • 不同MPI进程数数据
  • 不同OpenMP线程数数据
  • 加速比数据
  • 效率数据

性能评估参数

  • 加速比计算和记录
  • 效率计算和记录
  • 运行时间记录
  • 性能曲线绘制
  • 瓶颈分析

优化方案

  • 瓶颈识别
  • 优化策略提出
  • 优化版本实现
  • 效果对比

📋 使用说明

第一次使用

  1. 阅读文档

    • 先阅读 QUICKSTART.md
    • 再阅读 README.md
  2. 编译程序

    ./build.sh
    
  3. 快速测试

    ./quick_test.sh
    
  4. 运行实验

    ./run_experiments.sh
    
  5. 分析结果

    python3 analyze_results.py
    

撰写实验报告

  1. 使用模板

    • 复制 实验报告模板.md
    • 填入个人信息
  2. 填入数据

    • 从CSV文件复制数据
    • 填入报告表格
  3. 插入图表

    • 使用生成的PNG图片
    • 添加图表说明
  4. 撰写分析

    • 参考模板中的提示
    • 结合实际数据
    • 给出深入分析
  5. 总结心得

    • 总结学习收获
    • 提出改进建议

🎯 实验报告要点

必须包含的内容

  1. 实验环境

    • 硬件配置
    • 软件版本
  2. 实验数据

    • 原始数据表格
    • 性能曲线图
    • 加速比和效率
  3. 结果分析

    • 性能趋势分析
    • 瓶颈识别
    • 对比分析
  4. 优化方案

    • 问题描述
    • 优化方法
    • 效果对比
  5. 总结与心得

    • 实验结论
    • 学习收获
    • 改进建议

评分标准参考

  • 完整性30%:所有实验和数据齐全
  • 正确性30%:程序正确,数据准确
  • 分析深度20%:深入分析,见解独到
  • 优化效果10%:优化方案有效
  • 报告质量10%:结构清晰,表达准确

📞 获取帮助

遇到问题时的排查顺序

  1. 查看文档

    • README.md
    • QUICKSTART.md
    • 常见问题部分
  2. 检查环境

    • 编译器版本
    • MPI安装
    • Python包
  3. 运行测试

    • quick_test.sh
    • 查看错误信息
  4. 查看代码

    • 注释说明
    • 实现逻辑
  5. 寻求帮助

    • 助教
    • 老师
    • 同学

项目特色

  1. 完整实现:串行、并行、优化三个版本
  2. 自动化测试:一键运行所有实验
  3. 数据分析Python脚本自动分析
  4. 详细文档:从入门到精通的完整指南
  5. 报告模板:直接可用的报告框架

🎓 学习建议

  1. 循序渐进

    • 先理解串行算法
    • 再学习MPI并行
    • 最后掌握混合并行
  2. 动手实践

    • 修改参数观察效果
    • 尝试不同配置
    • 实现自己的优化
  3. 深入分析

    • 不仅记录数据
    • 要理解背后的原理
    • 思考改进方法
  4. 总结提升

    • 记录遇到的问题
    • 总结解决方法
    • 分享学习心得

📅 时间规划建议

第一周

  • 阅读文档,理解项目
  • 编译并运行程序
  • 完成快速测试

第二周

  • 运行完整实验
  • 收集实验数据
  • 分析实验结果

第三周

  • 撰写实验报告
  • 绘制性能图表
  • 完成优化方案

第四周

  • 审查和完善报告
  • 准备答辩材料
  • 提交最终报告

最终检查清单

提交前请确认:

  • 所有程序编译通过
  • 所有测试运行成功
  • 实验数据完整
  • 图表生成正确
  • 报告撰写完整
  • 格式符合要求
  • 无抄袭行为
  • 引用规范

项目状态 完成并可交付
最后更新2026年1月21日
版本v1.0