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
下载文档到本地,方便使用
文档评分













