《面向千万亿次计算的算法与应用》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)巴德尔(Bader,D.A.)著;都志辉等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302177227
  • 页数:356 页
图书介绍:对于高性能计算来说,这是一个激动人心的时代,这个时代将会在一个新的规模和尺度上产生大量史无前例的新发现,这些发现将会对科学和社会带来切实的好处。本书可以让你对千万亿次应用和算法前沿性挑战性研究工作的第一次浪潮有一个概观,为目前和未来的千万亿次研究提供非常必要的基础。

第1章 千万亿次计算科学应用的性能特征 1

1.1 介绍 1

1.2 测试的各种体系结构 2

1.3 科学应用概述 4

1.4 GTC:Particle-in-Cell磁融解 5

1.5 ELBM3D:晶格玻耳兹曼流体动力学 9

1.6 Cactus:通用的相对天体物理学 11

1.7 PARATEC:材料科学的第一原理 14

1.8 HyperCLaw:双曲AMR气体动力学 17

1.9 总结与结论 20

1.10 致谢 21

参考文献 22

第2章 千万亿次的计算对NASA未来使命的影响 24

2.1 介绍 24

2.2 Columbia超级计算机 24

2.3 航空宇宙分析及计算 25

2.3.1 方法论 25

2.3.2 结果 26

2.3.3 NASA使用千万亿次计算的好处 27

2.4 推进子系统分析 28

2.4.1 方法 28

2.4.2 结果 28

2.4.3 千万亿次计算给NASA带来的益处 30

2.5 飓风预测 30

2.5.1 方法 31

2.5.2 结果 32

2.5.3 千万亿计算对NASA的益处 32

2.6 瓶颈 33

2.7 总结 34

参考文献 34

第3章 多物理模拟与千万亿次计算 36

3.1 引言 36

3.2 下一代超级计算机 36

3.3 适用于大规模并行机的编程模型 37

3.3.1 新型并行语言 38

3.3.2 MPI-2 38

3.3.3 协作式并行 38

3.3.4 协作式并行的应用实例 39

3.4 多尺度算法 40

3.4.1 并行的多重网格方法 40

3.4.2 ALE-AMR离散化 41

3.4.3 离散-连续统混合算法 42

3.5 目前及将来的应用 43

3.5.1 万亿次仿真的技术现状 43

3.5.2 通过协作并行进行多物理模拟 45

3.6 未来展望 46

3.7 致谢 46

参考文献 46

第4章 针对Uintah多物理程序代码的可扩展并行AMR算法研究 48

4.1 前言 48

4.2 自适应格网优化 49

4.3 Uintah程序框架 51

4.3.1 仿真组件 52

4.3.2 负载均衡器 52

4.3.3 调度器 52

4.4 格网重构器 53

4.5 提高性能 55

4.6 将来的工作 56

4.7 致谢 57

参考文献 57

第5章 使用Enzo对宇宙进化进行仿真 59

5.1 宇宙结构的形成 59

5.2 Enzo的编码 60

5.2.1 物理层建模和数值算法 60

5.2.2 自适应格网细化 61

5.2.3 实现 62

5.2.4 并行化 63

5.2.5 快速的邻居格网搜索 63

5.2.6 Enzo的I/O 64

5.3 在万亿次平台上的性能和可扩展性 65

5.3.1 单格网应用 65

5.3.2 AMR应用 65

5.3.3 并行扩展 67

5.4 将Enzo运行在万亿次计算机平台上 69

5.4.1 新的AMR数据结构 69

5.4.2 混合型并行 69

5.4.3 天体运动和宇宙射线之间的隐性关联 70

5.4.4 内部数据关系分析工具 70

5.5 致谢 71

参考文献 71

第6章 重大影响天气现象数值预测:千万亿次计算的重要动力 73

6.1 引言 73

6.2 计算方法和工具 75

6.2.1 区域性天气预测模型 75

6.2.2 千万亿系统中的内存和性能问题 75

6.2.3 分布式内存并行和消息传递 76

6.2.4 负载均衡 78

6.2.5 时间消耗和可扩展性 78

6.2.6 NWP系统中其他重要的组件 79

6.2.7 其他问题 80

6.3 NWP实际应用例子 81

6.3.1 大规模的天气预报 81

6.3.2 高分辨率的龙卷风仿真 82

6.3.3 通过观测现象对龙卷风进行预测 82

6.4 数值天气预报的挑战和需求 83

6.5 总结 84

6.6 致谢 84

参考文献 84

第7章 千万亿次气象科学应用的软件设计 87

7.1 介绍 87

7.2 气象科学 88

7.3 千万亿次计算机的体系结构 88

7.4 区域气象系统模型CCSM(Community Climate System Model) 90

7.4.1 当前CCSM概述 90

7.4.2 区域大气模型CAM(Community Atmosphere Model) 91

7.4.3 并行海洋程序POP(Parallel Ocean Program) 93

7.4.4 区域陆地模型 95

7.4.5 社区海洋冰川模型 96

7.4.6 模型的耦合 96

7.5 总结 97

7.6 致谢 98

参考文献 98

第8章 迈向分布式千万亿次计算 102

8.1 引言 102

8.2 网格计算 103

8.3 基于网格的千万亿次计算 104

8.4 虚拟银河 105

8.4.1 银河的多物理学模型 106

8.4.2 银河仿真的性能模型 108

8.4.3 千万亿次虚拟银河仿真 109

8.5 讨论与总结 110

参考文献 111

第9章 千万亿次计算时代的生物分子建模 115

9.1 引言 115

9.2 NAMD的设计 116

9.2.1 混合分解 116

9.2.2 动态负载平衡 117

9.3 面对千万亿次的挑战与所需的改进 117

9.3.1 目前的性能 118

9.3.2 在未来千万亿次机器上的性能 119

9.3.3 协处理器加速 119

9.4 生物分子应用 120

9.4.1 水通道蛋白 120

9.4.2 钾通道 121

9.4.3 病毒 122

9.4.4 核糖体 122

9.4.5 色素体 122

9.4.6 BAR域囊泡 123

9.5 总结 123

9.6 致谢 123

参考文献 124

第10章 用于分子动力学模拟的千万亿次计算机 126

10.1 介绍 126

10.2 MDGRAPE-3的硬件 127

10.3 MDGRAPE-3进行的计算 128

10.4 MDGRAPE-3的芯片 129

10.4.1 力计算流水线 129

10.4.2 粒子j的内存和控制单元 130

10.4.3 芯片说明 132

10.5 系统结构 133

10.6 MDGRAPE-3的软件 135

10.7 MDGRAPE-3的性能 138

10.8 总结和展望 140

10.9 致谢 141

参考文献 141

第11章 在千万亿次超级计算机上进行生物分子仿真 144

11.1 引言 144

11.2 机遇 146

11.2.1 研究更大生物分子系统的能力 146

11.2.2 研究更长时间范围的能力 147

11.2.3 混合量子与经典仿真 149

11.2.4 更精确的仿真 150

11.3 挑战 150

11.3.1 在大于100K数量的处理器上扩大生物分子模拟代码的规模 150

11.3.2 适应硬件的变化 152

11.3.3 容错性 154

11.3.4 包含可配置计算的多范型硬件 154

11.3.5 千万亿次计算带来的新的仿真方法 155

11.4 总结和展望 155

11.5 致谢 156

参考文献 156

第12章 处理大规模图的多线程算法 159

12.1 引言 159

12.1.1 图运算中的问题 160

12.1.2 分布式存储图运算的扩展局限性 160

12.2 Cray MTA-2平台 161

12.2.1 并行性表示 161

12.2.2 对细粒度同步的支持 162

12.3 案例分析:最短路径算法 162

12.3.1 初步分析 163

12.3.2 △-分步算法 164

12.3.3 Thorup算法 165

12.3.4 实验结果 167

12.4 案例分析:连通分量 170

12.4.1 传统PRAM算法 171

12.4.2 Kahan的多层次算法 171

12.4.3 性能比较 171

12.5 结论 172

12.6 致谢 173

参考文献 173

第13章 千万亿次计算中的灾难恢复算法研究 176

13.1 FT-MPI:一个实现容错功能的MPI 177

13.1.1 FT-MPI概述 177

13.1.2 FT-MPI:一个实现容错功能的MPI 177

13.1.3 FT-MPI的使用 178

13.2 应用级的无盘检查点技术 178

13.2.1 基于邻居的检查点方案 180

13.2.2 基于校验和的检查点方案 181

13.2.3 基于加权校验和的检查点方案 182

13.3 一种容错的递归方程求解器 184

13.3.1 有条件的共轭梯度算法 184

13.3.2 将容错机制添加到PCG算法中 184

13.4 实验评估 186

13.4.1 使用不同MPI实现的PCG算法的性能 187

13.4.2 设置检查点的性能开销 187

13.4.3 执行恢复操作的性能开销 189

13.4.4 恢复操作中的舍入错误所带来的数值影响 190

13.5 讨论 190

13.6 结论和未来工作 191

参考文献 191

第14章 TSUBAME的研制与未来发展 194

14.1 引言-2通向TSUBAME之路 194

14.2 TSUBAME的架构需求 195

14.3 TSUBAME一瞥 198

14.4 TSUBAME之旅——使世人皆能超级计算的性能和操作 202

14.5 结论和展望—TSUBAME 2.0 205

参考文献 207

第15章 通过SMP模块构造千万亿次的性能 209

15.1 引言 209

15.2 OpenMP编程体系结构 211

15.3 通过OpenMP实现的循环级并行 211

15.4 C++与OpenMP 212

15.4.1 迭代循环 212

15.4.2 ccNUMA的关键问题 213

15.4.3 并行化面向对象代码 213

15.4.4 线程安全性 214

15.5 应用OpenMP实现嵌套并行化 214

15.5.1 目前OpenMP规范中的嵌套并行化 214

15.5.2 FIRE的基于目录图像修复 215

15.5.3 多块CFD数据集中3D关键点的计算 215

15.5.4 TFS流体求解器 217

15.6 结论与展望 220

参考文献 220

第16章 千万亿次系统的性能及其复杂性分析 223

16.1 引言 223

16.2 千万亿次系统体系结构的发展趋势及其并发度 223

16.3 性能特征和基准测试的现状 224

16.3.1 基准测试创新 225

16.3.2 应用程序的性能特征 226

16.3.3 性能复杂性和性能效能的测量 226

16.4 APEX-MAP 226

16.4.1 APEX-Map的设计原则 227

16.4.2 并行编程范式与APEX-MAP的对比 227

16.5 性能复杂性特征描述 228

16.5.1 性能复杂度定义 229

16.5.2 性能模型选择&23 1

16.5.3 若干并行系统的性能复杂性分析 232

16.6 小结 234

参考文献 235

第17章 高度可扩展的性能分析工具 237

17.1 引言 237

17.2 性能分析概念回顾 238

17.3 Paradyn 238

17.4 SCALASCA 239

17.5 Vampir Next Generation 240

17.6 Periscope 240

17.6.1 体系结构 240

17.6.2 ASL性能属性描述 241

17.6.3 Periscope结点代理 241

17.6.4 性能属性搜索 243

17.6.5 Peirscope高层代理 243

17.6.6 代理通信基础构造 244

17.6.7 评价 245

17.7 工具对比和未来研究 247

参考文献 248

第18章 面向千万亿次计算规模的多级有限元求解器 251

18.1 引言 251

18.1.1 概述 251

18.1.2 千万亿次架构示例 251

18.2 设计范例 252

18.2.1 分层混合格网 252

18.2.2 ParExPDE 254

18.3 评估与比较 256

18.4 结论 259

参考文献 260

第19章 高效有限元代码开发的混合方法 262

19.1 简介 262

19.2 高级应用代码 263

19.3 代码生成 269

19.3.1 元编程 269

19.3.2 变分问题的实时编译 270

19.3.3 FFC 271

19.3.4 SyFi 273

19.4 有限元集成的统一框架 276

19.4.1 有限元集成 276

19.4.2 UFC接口 276

19.4.3 实现UFC接口 278

19.5 总结 278

19.6 致谢 279

参考文献 279

第20章 使用Charm++编写千万亿次应用程序 283

20.1 动机 283

20.2 Charm++和AMPI:编程模型 284

20.2.1 动态负载均衡 285

20.2.2 投影 285

20.2.3 其他特性概述 286

20.3 Charm++应用程序 287

20.3.1 NAMD 287

20.3.2 LeanCP 288

20.3.3 ChaNGa 290

20.3.4 其他应用 291

20.4 大型系统仿真 292

20.5 新型并行语言 293

20.6 总结 294

20.7 致谢 294

参考文献 294

第21章 基于注解的高产出率和性能移植性 298

21.1 引言 298

21.2 实现 298

21.2.1 总体设计 298

21.2.2 注解语法 299

21.2.3 系统扩展 300

21.2.4 代码生成模块 300

21.3 性能研究 306

21.3.1 STREAM基准测试 306

21.3.2 AXPY操作 307

21.4 相关工作 308

21.4.1 自调节的库和代码 308

21.4.2 编译器方法 309

21.4.3 性能相关的用户注解 310

21.5 总结与未来的方向 310

21.6 致谢 310

参考文献 311

第22章 高效能编程语言的局部性感知特性 313

22.1 引言 313

22.2 Chapel中关于数据并行化的基本概念 314

22.2.1 域 314

22.2.2 数组 316

22.3 数据分布 316

22.3.1 基本方法 316

22.3.2 “分布”接口 317

22.3.3 局部存储对象上的分配策略 319

22.4 实例与讨论 319

22.4.1 一个负载平衡块分布 319

22.4.2 一个稀疏数据分布 321

22.5 实现 324

22.5.1 编译器实现进展 324

22.5.2 分布实现策略 324

22.6 相关工作 326

22.7 结论和未来展望 326

22.8 致谢 327

参考文献 327

第23章 体系结构与程序设计方法对获得持续千万亿次计算性能的影响 329

23.1 引言 329

23.2 数值计算和计算机发展的历史简介 329

23.2.1 20世纪60年代 329

23.2.2 20世纪70年代 330

23.2.3 20世纪80年代 330

23.2.4 20世纪90年代 330

23.2.5 2000年及以后 331

23.3 体系结构 331

23.3.1 处理器发展 331

23.3.2 Cell Broad Engine处理器 333

23.3.3 ClearSpeed卡 333

23.3.4 类向量体系结构 334

23.3.5 能耗和成本因素 334

23.3.6 通信网络 335

23.3.7 通信协议和并行范式 335

23.4 超大型计算机的算法 335

23.4.1 大规模计算机 335

23.4.2 Linpack局限性 336

23.4.3 选择算法实现方法 338

23.5 其他技术的影响 340

参考文献 340

第24章 Cactus框架:从黑洞到伽玛射线脉冲 342

24.1 相对天体物理学目前的挑战和伽玛射线脉冲问题 342

24.2 Cactus框架 344

24.3 时空代码和流体动力学代码 345

24.3.1 Ccatie:时空进化 345

24.3.2 Whisky:广义相对论流体动力学 346

24.4 并行化的实现和格网细化 346

24.4.1 PUGH 347

24.4.2 使用Carpet实现自适应格网细化 347

24.4.3 I/O 348

24.5 当前机器的扩展性 348

24.5.1 浮点性能 349

24.5.2 I/O性能 350

24.6 在千万亿次计算上的发展 351

24.6.1 物理学:辐射传输 352

24.6.2 扩展性 352

24.6.3 工具 353

24.7 致谢 354

参考文献 354