序
《高性能计算:现代系统与应用实践》中译版文字质量不高,句子存在语病,术语翻译杂乱,阅读体验极差。本笔记利用该书进行内容梳理,并借助原版进行细节理解。
笔记和摘录
1.1 高性能计算(超级计算)学科,基础概念、领域问题
高性能计算学科:旨在实现任何时间和技术条件下可能的最高计算能力的领域,包含这些技术、方法、应用的总和。
1.2 高性能计算应用领域
1.3 超级计算机结构
1.4 计算机性能△
- 性能的常见表述含糊不清,可能描述了时间、工作、系统大小和其他因素之间的关系。
- 峰值性能:超算硬件资源完成操作的理论最大速率,以flops为单位。峰值性能由时钟速率和体系结构决定,而两者都是器件密度的函数。
- 持续性能:系统在运行应用程序时达到的实际或真实性能。对工作负载变化非常敏感,对不同系统比较时运行等效的应用程序才有意义。
- Scaling反映通过扩大机器规模提高性能的能力。弱扩展:数据量与系统规模成比例增长,过去二三十年的主要手段。强扩展:只扩大系统规模,减少解决问题时间。
- 性能退化SLOW
- Starvation:并行的功能单元缺少负载或负载不均衡~程序员任务分配不均
- Latency:信息传输的耗时大量累积~各部门沟通不畅
- Overhead:与计算工作无关的资源管理工作浪费时间或策略低效~行政人员冗余或低能
- Waiting:对同一资源访问争用,陷入等待~显卡资源有限
Sources of performance degradation: starvation, latency, overhead, and contention. Starvation is when sufficient work is not available at any instance in time to support issuing instructions to all functional units every cycle. Latency is the time it takes for information to travel from one part of a system to another. Overhead is the amount of additional work beyond that which is actually required to perform the computation. Contention is when two or more requests are made at the same time and have to be serviced by the same single resource, either hardware or software, meaning that the requests can only proceed one at a time.--- 1.7 SUMMARY AND OUTCOMES OF CHAPTER 1
1.5 超级计算机简史-7个阶段
- 机械-计算器技术
- 真空管-冯诺依曼架构
- 晶体管-指令级并行
- 小规模集成电路-向量处理,流水线架构
- 大规模集成电路-单指令多数据阵列
- 超大规模集成电路-计算单元集群
- 多核petaflops,处于转换阶段
1.6 学习指南
每章节提供的三种信息:概念(理论,历史悠久、不会改变的想法)、知识(超算的信息,随时间发展)、技能(入门级工作所需)
1.8 练习
- 定义术语或扩展缩略词
- HPC:高性能计算(High Performance Computing)
- flops:每秒浮点计算次数(floating point operations per second),通常作为衡量系统峰值性能(超算硬件资源完成操作的理论最大速率)的衡量单位。当前超算最大速率已达1 Exaflops = 1 0 18 10^{18} 1018量级。
- Benchmark:基准测试程序,用于比较和评估不同系统计算能力的特定问题,如Linpack和HPL。
- Parallel processing:并行处理,同时执行多个任务的能力,涉及并行任务定义、执行准则、任务间同步和资源共享、计算资源分配。
- OpenMP
The OpenMP API supports multi-platform shared-memory parallel programming in C/C++ and Fortran. The OpenMP API defines a portable, scalable model with a simple and flexible interface for developing parallel applications on platforms from the desktop to the supercomputer.
- MPI
The MPI standard includes point-to-point message-passing, collective communications, group and communicator concepts, process topologies, environmental management, process creation and management, one-sided communications, extended collective operations, external interfaces, I/O, some miscellaneous topics, and multiple tool interfaces. Language bindings for C and Fortran are defined.
- TLB:一文读懂内存管理中TLB:地址转换后援缓冲器 - 知乎 (zhihu.com)
- SIMD:Single instruction multiple data单指令多数据,多个执行器的执行规则由同一个序列器控制,执行器执行相同操作但只对自己的数据块执行。
- VLSI:Very large scale integration,超大规模集成电路
- Commodity cluster:大量消费级子系统构成的集群
The commodity cluster is a form of high performance computer assembled from commercially manufactured subsystems, each of which serves its own market niche as a standalone product.
- ?Communicating sequential processors:含义不明,中文版译为“顺序处理器的通信” ,无此相关检索结果且有一种机翻的感觉,英文检索出的结果为process而非processor,此处将某网传课后题答案中的解释放在此处,待日后解决。
Communicating sequential processors – The dominant approach for distributed memory architectures. Message-passing computing is the example of this.
- 区分HPC和普通计算机的区别
规模带来的差异。从产品角度看,HPC的结构层次更多、层次体量更大,具有一些资源管理、协调功能。从程序员的角度看,差异在于HPC编程必须考虑并行性和分布式。 - 六种性能提高手段
hardware scaling, parallel algorithms, performance monitoring, work and data distribution, task granularity control, and other sometimes subtle means. — 1.4.6 PERFORMANCE IMPROVEMENT
- Beowulf计算机
- 策略:用大众消费级组件,实现最佳性价比
- Linux高性能计算集群 – Beowulf集群 (jointforce.com.cn)