搜索

pdf文档 Modern C++ for Parallelism in High Performance Computing

91.16 KB 3 页 0 下载 73 浏览 0 评论 0 收藏
所属分类: 后端开发 / C++
语言 格式 评分
英语
.pdf
3
摘要
文档介绍了D2D基准测试,旨在探索在高性能计算中使用现代C++进行并行化的优雅表达和性能表现。通过不同并行化策略(如OpenMP、mdspan、Kokkos和Sycl)实现相同代码,并分析其性能结果。D2D基准测试使用2阶拉普拉斯算子进行 stencil操作,评估不同并行化策略的扩展性和效率。文档还讨论了 stencil操作的两个关键特征:完全并行化能力和带宽限制,并对不同并行模型的性能进行了比较分析。
AI总结
### 现代 C++ 在高性能计算中的并行性研究 #### 研究背景 本研究通过名为“D2D”的基准测试,探讨在高性能计算(HPC)领域中,现代 C++ 在表达性和性能方面的潜力。研究采用多种并行化策略实现同一代码,并对其性能进行分析和比较。 #### 研究意义 C++ 正在逐步取代传统上由 C 和 Fortran 主导的 HPC 和科学计算领域。借助现代 C++ 的特性(如范围算法、并行执行策略和多维数组 `mdspan`),研究旨在探索 C++ 在高性能计算中的适用性,特别是针对规则算法的并行化能力。 #### 核心内容 1. **并行化策略** - **OpenMP**:作为共享内存并行化的基线,支持 C 和 C++ 风格的实现。 - **现代 C++ 机制**:利用范围算法和 `mdspan` 进行二维索引。 - **Kokkos** 和 **SYCL**:基于 C++ 的高级并行化库,分别由 Trilinos 和 Khronos 开发。 2. **计算结构** - 使用“幂方法”算法,模拟科学计算中的典型操作(如矩阵特征值计算)。 - 包括数组缩放、范数计算和Stencil操作(如二阶拉普拉斯算子)。 3. **Stencil 操作特点** - **数据并行性**:所有输出独立,适合并行化。 - **带宽限制**:性能扩展可能因数据带宽受限,需考察不同并行模型的扩展性。 #### 研究进展 - **完成情况**:所有并行化策略已完成,并在多种 CPU 上测试。部分结果已展示,包括代码片段、性能图表和分析。 - **未来计划**: - 比较高性能处理器与普通桌面设备的性能差异。 - 测试 GPU 支持。 - 解决并行执行策略中的问题。 - 尝试安装 AdaptiveCPP 以测试不同编译器支持。 #### 支持材料 - 基准测试代码和结果可从 [GitHub](https://github.com/VictorEijkhout/diff2d_benchmark) 获取。 #### 作者信息 Victor Eijkhout 是得克萨斯高级计算中心的研究科学家,专注于数值算法和并行计算,著有《The Art of HPC》系列书籍。 --- ### 总结 本研究通过 D2D 基准测试,全面比较了 OpenMP、现代 C++、Kokkos 和 SYCL 等并行化策略在高性能计算中的表现,重点关注Stencil操作的并行化和性能扩展性。研究结果为科学计算中的并行化策略选择提供了重要参考,同时也揭示了现代 C++ 在高性能计算中的潜力和挑战。
P1
P2
P3
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.